Create an interview for a candidate and return an access token URL
Creates (or resolves an existing) position and interview for a merchant, enrols the candidate, runs pre-screening, and returns a tokenised interview URL. Position fields are required only when position_def_set_id is not provided.
Authorizations
Supabase JWT access token, passed as Authorization: Bearer <token>.
Body
Candidate full name.
1"John"
Candidate email (used as auth identity).
1"peterson6@hello.com"
ISO country code of the candidate.
1"HR"
Candidate resume parsed text.
1"Curriculum Vitae ..."
Existing position_def_set id. When provided, the position is looked up instead of created, and position_name/position_location/position_country_code/mojito_language_code become optional.
"00000000-0000-0000-0000-000000000000"
External position code used to look up an existing position.
"JOB-123"
Interview template id to base the interview on. Defaults to the platform template when omitted.
"5d8ea38b-eec4-4866-aa6c-b2ea5bc6e45b"
Merchant id. Only honoured for admin / sub-merchant tokens; otherwise the token merchant is used.
"28106cba-1c27-4e53-b149-32113e5e8e31"
Position / job title. Required when position_def_set_id is not provided.
"Entry level coffee boy"
Position location. Required when position_def_set_id is not provided.
"remote"
ISO country code of the position. Required when position_def_set_id is not provided.
"SK"
Interview language code (one of the platform-languages.json codes). Required when position_def_set_id is not provided.
ar, bg, zh, hr, cs, da, nl, en, fil, fi, fr, de, el, hi, hu, id, it, ja, ko, ms, no, pl, pt, br, ro, ru, sk, es, sv, ta, th, tr, uk, vi "en"
Short position description.
Full / long position description.
External candidate id stored on the profile.
Candidate LinkedIn URL.
Whether a candidate video introduction is optional or required.
optional, required Number of allowed interview attempts (1-20).
1 <= x <= 203
Seniority level of the position. Auto-detected when omitted.
entry-level, intermediate, senior, managerial, director, executive How interview results are shown to the candidate. Defaults to minimal.
none, minimal, minimal_with_score, advanced, full, full_expand_scores Optional custom scoring overrides merged with platform defaults.
Reserved flag for enhanced candidate expectations generation.
Include an opening rapport question. Defaults to false.
Include a closing prompt. Defaults to true.
Show an instructional video before the interview. Defaults to false.
Custom text shown with the instructional video.
Custom welcome message for the interview.
Custom thank-you message shown after the interview.
Maximum interview duration used to scale generated questions.
Set true when the interview will be embedded as an iframe on an external page. Ensures an embed key exists and returns embed_id/embed_signing_key, used to authenticate/sign the iframe embed.
Response
Candidate enrolled. Decision status, ids, and a tokenised interview URL.
Result of creating (or resolving) the position and enrolling the candidate. Fields present depend on the decision branch.
Decision / lifecycle status for the candidate against this position.
ai_accept, recruiter_accept, recruiter_action, ai_reject, recruiter_reject, already-applied URL the candidate should open to continue.
Created/resolved position id.
Created/resolved interview definition set id.
Candidate profile_interview id.
Human-readable reason, present on reject / already-applied branches.
Embed id, present only when is_embedded=true.
Embed signing key, present only when is_embedded=true.