If you are recruiting / ops
You do not need an API key for day-to-day work.1
Create a job
Open Jobs → New job. Pick a hiring squad, write the description, and attach an assessment or pipeline when you want one after advance.
2
Application form & knockouts
On the job, use Questions for custom fields and Knockouts for hard L1 rules (for example work authorization). Failures never reach ranking.
3
Match requirements
On Screening, add must/should requirements. That score ranks the Candidates list. See Screening.
4
Publish
Publish when ready. Candidates apply from your careers URL. Review on the job’s Candidates tab (or Screened CVs).
5
Advance or reject
Advance sends them toward assessment / pipeline stages. Reject closes the application with an optional reason.
For engineers
Base path:/api/v1/public/. Auth: Bearer ct_live_… / ct_test_…. Mode follows the key.
Job {key} is slug or UUID. Create requires a hiring squad: send team_id (alias squad_id).
Jobs
List filters:
status, team_id / squad_id, cursor pagination.
draft → open → closed.
Applications
Create uses the same submit path as careers (
source=public_api). Provide job_id or job_slug, plus email and full_name.
ordering=-l3_score,-submitted_at). Pass ?ordering=submitted_at for chronological order. Filter with job_id / job_slug, status, team_id / squad_id.
Careers (anonymous, no API key): /api/v1/careers/{org_slug}/jobs/….
Webhooks
Subscribe tojob.created, job.published, job.closed, and application.* (submitted, knockout_failed, screened, held, unheld, advanced, rejected, withdrawn). Payloads: Webhook events.