Skip to content

Screening interview

POSThttps://api.curriculo.me/public/screening-interview
GEThttps://api.curriculo.me/public/screening-interview/{screening_id}
On this page

Send candidate email addresses, questions, job metadata and a callback URL. Curriculo emails each candidate a link to the interview, hosts the recording, and POSTs each answer to your callback_url as it comes in, with the transcript captured on the interview page (empty when none was captured). A failed address does not cancel the others.

Price: $0.02 per invite actually sent. Failed invites are not charged.

Call these endpoints directly with your Console key.

Request

application/json

FieldRequiredNotes
candidate_emailsYes1 to 50 plain email addresses.
questionsYes1 to 10 questions. The candidate answers them in order.
callback_urlYeshttps URL on your server. We POST each answer here. No user name, password or # fragment in the URL.
job_titleNoShown in the invite. Defaults to "Screening".
companyNoShown in the invite. Defaults to "the hiring team".
curl -X POST https://api.curriculo.me/public/screening-interview \
  -H 'Authorization: Bearer key_abc123_yoursecret' \
  -H 'Content-Type: application/json' \
  -d '{
    "candidate_emails": ["ada@example.com"],
    "questions": ["Tell us about a system you shipped."],
    "callback_url": "https://example.com/screening",
    "job_title": "Backend engineer"
  }'

Response

The call answers 202 with a screening_id, a callback_secret shown once, sent_count, and an invites list. Each invite is sent or failed. Store the callback_secret.

Callbacks

Each answer is one signed POST to your server. X-Curriculo-Signature is sha256= plus the lowercase hex HMAC-SHA256 of the raw body, keyed with the callback_secret from the 202 (used as-is). Verify it exactly as for background task callbacks.

{
  "screening_id": "...",
  "email": "ada@example.com",
  "question": "Tell us about a system you shipped.",
  "question_index": 0,
  "transcript": "I shipped the billing service.",
  "recording_url": "https://api.curriculo.me/api/v2/ats/media/v1/assets/...",
  "media_kind": "video",
  "duration_seconds": 142,
  "completed": false
}
  • question_index starts at 0.
  • completed stays false until that candidate has a final answer for every question.
  • The recording_url is a private Curriculo media link, meant for your ATS result page, where recruiters can watch the answer beside the transcript.

The callback URL is your backend URL, not a candidate page and not a recruiter dashboard. Curriculo sends signed, machine-readable results there; your product decides how recruiters see them.

Get a screening

curl https://api.curriculo.me/public/screening-interview/<screening_id> \
  -H 'Authorization: Bearer key_abc123_yoursecret'

Read a screening's results at any time. If an old recording link has expired, request the screening again to receive a fresh media URL.

Data handling

Screening interviews keep invites, candidate answers and recordings so your ATS can retrieve completed recordings and transcripts. See Data handling.

New to the Curriculo API? Start with the Quickstart.

Was this page helpful?

Updated