Create or update a pre-screening position
Creates a new pre-screening position (and optionally activates it) or, when update_position_def_set_id is provided, updates an existing pre-screening position. Only merchant_owner, merchant, or admin users may call this.
Authorizations
Supabase JWT access token, passed as Authorization: Bearer <token>.
Body
When set to an existing position id, the request updates that pre-screening position instead of creating a new one. When absent/empty, a new pre-screening position is created and the create-only mandatory fields are required.
"00000000-0000-0000-0000-000000000000"
Position name. Required when creating (no update_position_def_set_id).
"Customer Support Specialist"
Interview/position location. Required when creating.
"Remote"
ISO country code; stored upper-cased. Required when creating.
"US"
Short position description.
"Handle inbound customer requests."
Long position description.
Mojito language code (one of the platform-languages.json codes). Required when creating.
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"
Target merchant id. Only honored for admin or sub-merchant users; otherwise the caller's own merchant is used.
Pre-screening type. Defaults to "resume" on create.
resume, form, resume_with_form When "active", the pre-screening position is activated after create/update.
draft, active Assessment rules — an array of rule objects stored on the pre-screening definition.
[
{
"id": "form_nationality",
"type": "required",
"action": "mark_for_review"
},
{
"id": "form_education",
"type": "required",
"action": "mark_for_review",
"education": "bachelors"
},
{
"id": "resume_match",
"resume_score_accept": 10,
"resume_score_reject": 0
}
]Form fields definition (any JSON shape) stored on the pre-screening definition.
Candidate expectations text.
Position visibility. Defaults to "merchant_invite" on create.
Kombo integration parameters (any JSON).
{
"kombo_job_id": "7QzbCBaxX6fa4BMXBRuD7Lwm",
"kombo_stage_id": "CVjhZwxbtcer5P15gakmEhsM",
"kombo_sync_all_results": true,
"kombo_selected_stage_id": null,
"kombo_sync_all_results_stage_id": "9c5VZXrcMRmyr5vr1nvZWXSX"
}Timestamp until which the interview is available.
Creation parameters, any JSON (create only).
Response
The pre-screening position was created or updated.
On create returns { created: true, position_def_set_id, interview_pre_screening_id }; on update returns { updated: true, position_def_set_id, interview_pre_screening_id }.
True when a new pre-screening position was created.
True when an existing pre-screening position was updated.
The position_def_set id created or updated.
The pre-screening definition id created or updated.