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>"
}
'
import requests

url = "https://cool.jobmojito.com/functions/v1/pre-screening-create"

payload = {
"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": None,
"kombo_sync_all_results_stage_id": "9c5VZXrcMRmyr5vr1nvZWXSX"
},
"interview_available_till": "<string>",
"creation_parameters": "<unknown>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
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>'
})
};

fetch('https://cool.jobmojito.com/functions/v1/pre-screening-create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://cool.jobmojito.com/functions/v1/pre-screening-create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'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>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://cool.jobmojito.com/functions/v1/pre-screening-create"

payload := strings.NewReader("{\n \"update_position_def_set_id\": \"00000000-0000-0000-0000-000000000000\",\n \"position_name\": \"Customer Support Specialist\",\n \"position_location\": \"Remote\",\n \"position_country_code\": \"US\",\n \"position_description\": \"Handle inbound customer requests.\",\n \"position_description_long\": \"<string>\",\n \"mojito_language_code\": \"en\",\n \"merchant_id\": \"<string>\",\n \"assessment_rules\": [\n {\n \"id\": \"form_nationality\",\n \"type\": \"required\",\n \"action\": \"mark_for_review\"\n },\n {\n \"id\": \"form_education\",\n \"type\": \"required\",\n \"action\": \"mark_for_review\",\n \"education\": \"bachelors\"\n },\n {\n \"id\": \"resume_match\",\n \"resume_score_accept\": 10,\n \"resume_score_reject\": 0\n }\n ],\n \"form_fields\": \"<unknown>\",\n \"candidate_expectations\": \"<string>\",\n \"visibility\": \"<string>\",\n \"kombo_parameters\": {\n \"kombo_job_id\": \"7QzbCBaxX6fa4BMXBRuD7Lwm\",\n \"kombo_stage_id\": \"CVjhZwxbtcer5P15gakmEhsM\",\n \"kombo_sync_all_results\": true,\n \"kombo_selected_stage_id\": null,\n \"kombo_sync_all_results_stage_id\": \"9c5VZXrcMRmyr5vr1nvZWXSX\"\n },\n \"interview_available_till\": \"<string>\",\n \"creation_parameters\": \"<unknown>\"\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://cool.jobmojito.com/functions/v1/pre-screening-create")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"update_position_def_set_id\": \"00000000-0000-0000-0000-000000000000\",\n \"position_name\": \"Customer Support Specialist\",\n \"position_location\": \"Remote\",\n \"position_country_code\": \"US\",\n \"position_description\": \"Handle inbound customer requests.\",\n \"position_description_long\": \"<string>\",\n \"mojito_language_code\": \"en\",\n \"merchant_id\": \"<string>\",\n \"assessment_rules\": [\n {\n \"id\": \"form_nationality\",\n \"type\": \"required\",\n \"action\": \"mark_for_review\"\n },\n {\n \"id\": \"form_education\",\n \"type\": \"required\",\n \"action\": \"mark_for_review\",\n \"education\": \"bachelors\"\n },\n {\n \"id\": \"resume_match\",\n \"resume_score_accept\": 10,\n \"resume_score_reject\": 0\n }\n ],\n \"form_fields\": \"<unknown>\",\n \"candidate_expectations\": \"<string>\",\n \"visibility\": \"<string>\",\n \"kombo_parameters\": {\n \"kombo_job_id\": \"7QzbCBaxX6fa4BMXBRuD7Lwm\",\n \"kombo_stage_id\": \"CVjhZwxbtcer5P15gakmEhsM\",\n \"kombo_sync_all_results\": true,\n \"kombo_selected_stage_id\": null,\n \"kombo_sync_all_results_stage_id\": \"9c5VZXrcMRmyr5vr1nvZWXSX\"\n },\n \"interview_available_till\": \"<string>\",\n \"creation_parameters\": \"<unknown>\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://cool.jobmojito.com/functions/v1/pre-screening-create")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"update_position_def_set_id\": \"00000000-0000-0000-0000-000000000000\",\n \"position_name\": \"Customer Support Specialist\",\n \"position_location\": \"Remote\",\n \"position_country_code\": \"US\",\n \"position_description\": \"Handle inbound customer requests.\",\n \"position_description_long\": \"<string>\",\n \"mojito_language_code\": \"en\",\n \"merchant_id\": \"<string>\",\n \"assessment_rules\": [\n {\n \"id\": \"form_nationality\",\n \"type\": \"required\",\n \"action\": \"mark_for_review\"\n },\n {\n \"id\": \"form_education\",\n \"type\": \"required\",\n \"action\": \"mark_for_review\",\n \"education\": \"bachelors\"\n },\n {\n \"id\": \"resume_match\",\n \"resume_score_accept\": 10,\n \"resume_score_reject\": 0\n }\n ],\n \"form_fields\": \"<unknown>\",\n \"candidate_expectations\": \"<string>\",\n \"visibility\": \"<string>\",\n \"kombo_parameters\": {\n \"kombo_job_id\": \"7QzbCBaxX6fa4BMXBRuD7Lwm\",\n \"kombo_stage_id\": \"CVjhZwxbtcer5P15gakmEhsM\",\n \"kombo_sync_all_results\": true,\n \"kombo_selected_stage_id\": null,\n \"kombo_sync_all_results_stage_id\": \"9c5VZXrcMRmyr5vr1nvZWXSX\"\n },\n \"interview_available_till\": \"<string>\",\n \"creation_parameters\": \"<unknown>\"\n}"

response = http.request(request)
puts response.read_body
{
  "created": true,
  "updated": true,
  "position_def_set_id": "<string>",
  "interview_pre_screening_id": "<string>"
}
{
"error": "Field is required.",
"name": "interview_result_id"
}
{
"error": "Field is required.",
"name": "interview_result_id"
}
{
"error": "Field is required.",
"name": "interview_result_id"
}
{
"error": "Field is required.",
"name": "interview_result_id"
}

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