# Routes and APIs (CMH)

For the **full** app route list see [Route atlas](/product/route-atlas). For every `/api/v1` mount see [API surface](/product/api-surface).

## Public proof

| Path | What it is | What it is not |
|------|------------|----------------|
| `/u/[slug]` | Learner CMH profile | Resume dump |
| `/credentials/[code]` | Skill credential | Course certificate |
| `/verify` | **Course** certificate verify | Skill credential |
| `/instructors/[id]` | Coach-first public instructor page | Course catalog only |

## Dashboard (selected)

**CMH learner:** `/dashboard/intake`, `/dashboard/coaching/hub`, `/dashboard/skills`, `/dashboard/practice`

**Legacy LMS (still present):** courses, assessments, mentorships, certificates

**Coach:** `/dashboard/coaching/availability`, clients, reviews, earnings

**Employer:** `/dashboard/talent` (+ pipeline, jobs, billing)

**Admin:** `/admin`, `/admin/career/tracks`, …

## Career API (`/api/v1/career`)

| Group | Examples |
|-------|----------|
| Public | `GET /tracks`, `GET /profiles/:slug`, `GET /credentials/verify/:code` |
| Admin | `/admin/tracks`, `/admin/skills`, match-override |
| Coach | `/coach-profile`, `/availability`, `/hub`, `/clients` |
| Learner | `/intake`, `/match`, work-samples, live-reviews, attestations, `/profile/publish` |
| Employer | `/employer/orgs`, `/talent`, `/jobs`, `/intros`, `/invoices` (+ pay) |

Auth extras: `POST /auth/register-employer`, `POST /auth/register-instructor`.

Implementation: `backend/src/routes/career-loop.routes.ts`, services under `backend/src/services/career-loop/`. Frontend hooks: `frontend/src/services/career-loop.service.ts`.
