Skip to main content
POST
/
pre-screening-create
Create or update a pre-screening position
curl --request POST \
  --url https://cool.jobmojito.com/functions/v1/pre-screening-create \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "update_position_def_set_id": "00000000-0000-0000-0000-000000000000",
  "position_name": "Customer Support Specialist",
  "position_location": "Remote",
  "position_country_code": "US",
  "position_description": "Handle inbound customer requests.",
  "position_description_long": "<string>",
  "mojito_language_code": "en",
  "merchant_id": "<string>",
  "assessment_rules": [
    {
      "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": "<unknown>",
  "candidate_expectations": "<string>",
  "visibility": "<string>",
  "kombo_parameters": {
    "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"
  },
  "interview_available_till": "<string>",
  "creation_parameters": "<unknown>"
}
'
{
  "created": true,
  "updated": true,
  "position_def_set_id": "<string>",
  "interview_pre_screening_id": "<string>"
}

Authorizations

Authorization
string
header
required

Supabase JWT access token, passed as 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
any | null

Assessment rules — an array of rule objects stored on the pre-screening definition.

Example:
[
{
"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
any | null

Form fields definition (any JSON shape) stored on the pre-screening definition.

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:
{
"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"
}
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.