Skip to main content
Jobs are openings your org publishes on careers (and via API). Applications are people who apply. Screening ranks them before you invite to an assessment. Assessment-only hiring still works without Jobs.

If you are recruiting / ops

You do not need an API key for day-to-day work.
1

Create a job

Open JobsNew 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.
Publish / close:
Statuses: draftopenclosed.

Applications

Create uses the same submit path as careers (source=public_api). Provide job_id or job_slug, plus email and full_name.
List defaults to L3 match rank when screening exists (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 to job.created, job.published, job.closed, and application.* (submitted, knockout_failed, screened, held, unheld, advanced, rejected, withdrawn). Payloads: Webhook events.

Next

Screening · Candidate profiles · Scopes · API changelog 1.8.0
Last modified on September 5, 2026