Skip to main content
POST
Create or update a pre-screening position

Authorizations

Authorization
string
header
required

Supabase JWT — Authorization: Bearer <token>.

Body

application/json
update_position_def_set_id
string | null

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.

Example:

"00000000-0000-0000-0000-000000000000"

position_name
string | null

Position name. Required when creating (no update_position_def_set_id).

Example:

"Customer Support Specialist"

position_location
string | null

Interview/position location. Required when creating.

Example:

"Remote"

position_country_code
string | null

ISO country code; stored upper-cased. Required when creating.

Example:

"US"

position_description
string | null

Short position description.

Example:

"Handle inbound customer requests."

position_description_long
string | null

Long position description.

mojito_language_code
enum<string> | null

Mojito language code (one of the platform-languages.json codes). Required when creating.

Available options:
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
Example:

"en"

merchant_id
string | null

Target merchant id. Only honored for admin or sub-merchant users; otherwise the caller's own merchant is used.

type
enum<string> | null

Pre-screening type. Defaults to "resume" on create.

Available options:
resume,
form,
resume_with_form
status
enum<string> | null

When "active", the pre-screening position is activated after create/update.

Available options:
draft,
active
assessment_rules
object[] | null

Ordered array of assessment rules. Only rules with type: "screening" (plus resume_match / resume_technical_experience) are enforced; other entries just declare which fields the form collects. Keep in sync with form_fields: a standard form field enabled here should have a matching { id, mandatory } entry in form_fields.

Example:
form_fields
object[] | null

Array describing the candidate form: standard field references ({ id, mandatory }) and/or custom fields ({ id: "custom_…", title, field_type, … }). For form and resume_with_form types at least one entry is required.

Example:
candidate_expectations
string | null

Candidate expectations text.

visibility
string | null

Position visibility. Defaults to "merchant_invite" on create.

kombo_parameters
any | null

Kombo integration parameters (any JSON).

Example:
interview_available_till
string | null

Timestamp until which the interview is available.

creation_parameters
any | null

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 }.

created
boolean

True when a new pre-screening position was created.

updated
boolean

True when an existing pre-screening position was updated.

position_def_set_id
string | null

The position_def_set id created or updated.

interview_pre_screening_id
string | null

The pre-screening definition id created or updated.