A versioned REST API for jobs, candidates, applications, interviews, offers and webhooks. Authenticate with an organisation-scoped API key passed as a bearer token. Keys are created in Settings, carry per-resource scopes, and can be restricted by IP.
45 endpoints across 11 resource groups. The machine-readable specification is at /api/v1/openapi.json. A Model Context Protocol server is also available at /api/mcp for AI agent clients.
POST/api/mobile/auth/login— Mobile sign-inPOST/api/mobile/auth/refresh— Refresh mobile sessionGET/api/mobile/me— Get mobile user and organizationsGET/api/v1/me— Verify a keyGET/api/v1/jobs— List jobsPOST/api/v1/jobs— Create a jobGET/api/v1/jobs/{id}— Get a jobPATCH/api/v1/jobs/{id}— Update a jobDELETE/api/v1/jobs/{id}— Delete a jobPOST/api/v1/jobs/{id}/archive— Archive (or restore) a jobGET/api/v1/candidates— List candidatesPOST/api/v1/candidates— Create (or link) a candidateGET/api/v1/candidates/{id}— Get a candidatePATCH/api/v1/candidates/{id}— Update a source-owned candidateDELETE/api/v1/candidates/{id}— Remove from talent poolPOST/api/v1/candidates/ingest— Ingest a CV in one callGET/api/v1/candidates/ingest/{ingest_id}— Get the status of an async ingestGET/api/v1/candidates/{id}/documents— List documentsPOST/api/v1/candidates/{id}/documents— Register a document and get a signed upload URLGET/api/v1/candidates/{id}/documents/{doc_id}— Get a signed download URL for a documentGET/api/v1/candidates/{id}/tags— List a candidate's tagsPOST/api/v1/candidates/{id}/tags— Add a tagDELETE/api/v1/candidates/{id}/tags/{tag_id}— Remove a tagGET/api/v1/tags— List distinct tags in useGET/api/v1/applications— List applicationsPOST/api/v1/applications— Create an applicationGET/api/v1/applications/{id}— Get an applicationPATCH/api/v1/applications/{id}— Update an application (move stage, score, notes)GET/api/v1/applications/{id}/notes— List notes on the candidate behind this applicationPOST/api/v1/applications/{id}/notes— Add a noteGET/api/v1/interviews— List interviewsPOST/api/v1/interviews— Schedule an interviewGET/api/v1/interviews/{id}— Get an interviewPATCH/api/v1/interviews/{id}— Update an interviewPOST/api/v1/interviews/{id}/cancel— Cancel an interviewGET/api/v1/offers— List offersPOST/api/v1/offers— Create an offerGET/api/v1/offers/{id}— Get an offerPATCH/api/v1/offers/{id}— Update an offerGET/api/v1/members— List org membersGET/api/v1/webhooks— List webhook endpointsPOST/api/v1/webhooks— Create a webhook endpointGET/api/v1/webhooks/{id}— Get a webhook endpointDELETE/api/v1/webhooks/{id}— Delete a webhook endpointPOST/api/v1/webhooks/{id}/test— Send a test ping event