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_education",
"type": "screening",
"action": "reject",
"education": "bachelors"
},
{
"id": "form_languages",
"type": "screening",
"action": "mark_for_review",
"languages": [
{
"code": "en",
"level": "advanced"
}
]
},
{
"id": "form_nationality",
"type": "required"
},
{
"id": "resume_match",
"resume_score_reject": 2,
"resume_score_accept": 7
},
{
"id": "resume_technical_experience",
"action": "mark_for_review",
"technical_experience_years": 3
}
],
"form_fields": [
{
"id": "form_education",
"mandatory": true
},
{
"id": "form_languages",
"mandatory": true
},
{
"id": "form_nationality",
"mandatory": true
},
{
"id": "custom_1772004521633",
"title": "Do you hold a valid work permit?",
"type": "required",
"field_type": "radio",
"options": [
"Yes",
"No"
]
}
],
"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_education",
"type": "screening",
"action": "reject",
"education": "bachelors"
},
{
"id": "form_languages",
"type": "screening",
"action": "mark_for_review",
"languages": [
{
"code": "en",
"level": "advanced"
}
]
},
{
"id": "form_nationality",
"type": "required"
},
{
"id": "resume_match",
"resume_score_reject": 2,
"resume_score_accept": 7
},
{
"id": "resume_technical_experience",
"action": "mark_for_review",
"technical_experience_years": 3
}
],
"form_fields": [
{
"id": "form_education",
"mandatory": True
},
{
"id": "form_languages",
"mandatory": True
},
{
"id": "form_nationality",
"mandatory": True
},
{
"id": "custom_1772004521633",
"title": "Do you hold a valid work permit?",
"type": "required",
"field_type": "radio",
"options": ["Yes", "No"]
}
],
"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_education',
type: 'screening',
action: 'reject',
education: 'bachelors'
},
{
id: 'form_languages',
type: 'screening',
action: 'mark_for_review',
languages: [{code: 'en', level: 'advanced'}]
},
{id: 'form_nationality', type: 'required'},
{id: 'resume_match', resume_score_reject: 2, resume_score_accept: 7},
{
id: 'resume_technical_experience',
action: 'mark_for_review',
technical_experience_years: 3
}
],
form_fields: [
{id: 'form_education', mandatory: true},
{id: 'form_languages', mandatory: true},
{id: 'form_nationality', mandatory: true},
{
id: 'custom_1772004521633',
title: 'Do you hold a valid work permit?',
type: 'required',
field_type: 'radio',
options: ['Yes', 'No']
}
],
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_education',
'type' => 'screening',
'action' => 'reject',
'education' => 'bachelors'
],
[
'id' => 'form_languages',
'type' => 'screening',
'action' => 'mark_for_review',
'languages' => [
[
'code' => 'en',
'level' => 'advanced'
]
]
],
[
'id' => 'form_nationality',
'type' => 'required'
],
[
'id' => 'resume_match',
'resume_score_reject' => 2,
'resume_score_accept' => 7
],
[
'id' => 'resume_technical_experience',
'action' => 'mark_for_review',
'technical_experience_years' => 3
]
],
'form_fields' => [
[
'id' => 'form_education',
'mandatory' => true
],
[
'id' => 'form_languages',
'mandatory' => true
],
[
'id' => 'form_nationality',
'mandatory' => true
],
[
'id' => 'custom_1772004521633',
'title' => 'Do you hold a valid work permit?',
'type' => 'required',
'field_type' => 'radio',
'options' => [
'Yes',
'No'
]
]
],
'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_education\",\n \"type\": \"screening\",\n \"action\": \"reject\",\n \"education\": \"bachelors\"\n },\n {\n \"id\": \"form_languages\",\n \"type\": \"screening\",\n \"action\": \"mark_for_review\",\n \"languages\": [\n {\n \"code\": \"en\",\n \"level\": \"advanced\"\n }\n ]\n },\n {\n \"id\": \"form_nationality\",\n \"type\": \"required\"\n },\n {\n \"id\": \"resume_match\",\n \"resume_score_reject\": 2,\n \"resume_score_accept\": 7\n },\n {\n \"id\": \"resume_technical_experience\",\n \"action\": \"mark_for_review\",\n \"technical_experience_years\": 3\n }\n ],\n \"form_fields\": [\n {\n \"id\": \"form_education\",\n \"mandatory\": true\n },\n {\n \"id\": \"form_languages\",\n \"mandatory\": true\n },\n {\n \"id\": \"form_nationality\",\n \"mandatory\": true\n },\n {\n \"id\": \"custom_1772004521633\",\n \"title\": \"Do you hold a valid work permit?\",\n \"type\": \"required\",\n \"field_type\": \"radio\",\n \"options\": [\n \"Yes\",\n \"No\"\n ]\n }\n ],\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_education\",\n \"type\": \"screening\",\n \"action\": \"reject\",\n \"education\": \"bachelors\"\n },\n {\n \"id\": \"form_languages\",\n \"type\": \"screening\",\n \"action\": \"mark_for_review\",\n \"languages\": [\n {\n \"code\": \"en\",\n \"level\": \"advanced\"\n }\n ]\n },\n {\n \"id\": \"form_nationality\",\n \"type\": \"required\"\n },\n {\n \"id\": \"resume_match\",\n \"resume_score_reject\": 2,\n \"resume_score_accept\": 7\n },\n {\n \"id\": \"resume_technical_experience\",\n \"action\": \"mark_for_review\",\n \"technical_experience_years\": 3\n }\n ],\n \"form_fields\": [\n {\n \"id\": \"form_education\",\n \"mandatory\": true\n },\n {\n \"id\": \"form_languages\",\n \"mandatory\": true\n },\n {\n \"id\": \"form_nationality\",\n \"mandatory\": true\n },\n {\n \"id\": \"custom_1772004521633\",\n \"title\": \"Do you hold a valid work permit?\",\n \"type\": \"required\",\n \"field_type\": \"radio\",\n \"options\": [\n \"Yes\",\n \"No\"\n ]\n }\n ],\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_education\",\n \"type\": \"screening\",\n \"action\": \"reject\",\n \"education\": \"bachelors\"\n },\n {\n \"id\": \"form_languages\",\n \"type\": \"screening\",\n \"action\": \"mark_for_review\",\n \"languages\": [\n {\n \"code\": \"en\",\n \"level\": \"advanced\"\n }\n ]\n },\n {\n \"id\": \"form_nationality\",\n \"type\": \"required\"\n },\n {\n \"id\": \"resume_match\",\n \"resume_score_reject\": 2,\n \"resume_score_accept\": 7\n },\n {\n \"id\": \"resume_technical_experience\",\n \"action\": \"mark_for_review\",\n \"technical_experience_years\": 3\n }\n ],\n \"form_fields\": [\n {\n \"id\": \"form_education\",\n \"mandatory\": true\n },\n {\n \"id\": \"form_languages\",\n \"mandatory\": true\n },\n {\n \"id\": \"form_nationality\",\n \"mandatory\": true\n },\n {\n \"id\": \"custom_1772004521633\",\n \"title\": \"Do you hold a valid work permit?\",\n \"type\": \"required\",\n \"field_type\": \"radio\",\n \"options\": [\n \"Yes\",\n \"No\"\n ]\n }\n ],\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"
}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.
The screening behaviour is driven by two related arrays:
assessment_rules— the rules enforced on each candidate. Only rules withtype: "screening"(plusresume_match/resume_technical_experience) actually pass/reject; other entries just declare collected fields.form_fields— the candidate-facing form (standard field references and custom fields).
For form and resume_with_form types, enable a standard field in BOTH arrays: add the rule to assessment_rules and a matching { id, mandatory } entry to form_fields. resume-only positions use assessment_rules (resume_* rules) and ignore form_fields. Both arrays are replaced wholesale on update — send the complete array, not a delta.
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_education",
"type": "screening",
"action": "reject",
"education": "bachelors"
},
{
"id": "form_languages",
"type": "screening",
"action": "mark_for_review",
"languages": [
{
"code": "en",
"level": "advanced"
}
]
},
{
"id": "form_nationality",
"type": "required"
},
{
"id": "resume_match",
"resume_score_reject": 2,
"resume_score_accept": 7
},
{
"id": "resume_technical_experience",
"action": "mark_for_review",
"technical_experience_years": 3
}
],
"form_fields": [
{
"id": "form_education",
"mandatory": true
},
{
"id": "form_languages",
"mandatory": true
},
{
"id": "form_nationality",
"mandatory": true
},
{
"id": "custom_1772004521633",
"title": "Do you hold a valid work permit?",
"type": "required",
"field_type": "radio",
"options": [
"Yes",
"No"
]
}
],
"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_education",
"type": "screening",
"action": "reject",
"education": "bachelors"
},
{
"id": "form_languages",
"type": "screening",
"action": "mark_for_review",
"languages": [
{
"code": "en",
"level": "advanced"
}
]
},
{
"id": "form_nationality",
"type": "required"
},
{
"id": "resume_match",
"resume_score_reject": 2,
"resume_score_accept": 7
},
{
"id": "resume_technical_experience",
"action": "mark_for_review",
"technical_experience_years": 3
}
],
"form_fields": [
{
"id": "form_education",
"mandatory": True
},
{
"id": "form_languages",
"mandatory": True
},
{
"id": "form_nationality",
"mandatory": True
},
{
"id": "custom_1772004521633",
"title": "Do you hold a valid work permit?",
"type": "required",
"field_type": "radio",
"options": ["Yes", "No"]
}
],
"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_education',
type: 'screening',
action: 'reject',
education: 'bachelors'
},
{
id: 'form_languages',
type: 'screening',
action: 'mark_for_review',
languages: [{code: 'en', level: 'advanced'}]
},
{id: 'form_nationality', type: 'required'},
{id: 'resume_match', resume_score_reject: 2, resume_score_accept: 7},
{
id: 'resume_technical_experience',
action: 'mark_for_review',
technical_experience_years: 3
}
],
form_fields: [
{id: 'form_education', mandatory: true},
{id: 'form_languages', mandatory: true},
{id: 'form_nationality', mandatory: true},
{
id: 'custom_1772004521633',
title: 'Do you hold a valid work permit?',
type: 'required',
field_type: 'radio',
options: ['Yes', 'No']
}
],
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_education',
'type' => 'screening',
'action' => 'reject',
'education' => 'bachelors'
],
[
'id' => 'form_languages',
'type' => 'screening',
'action' => 'mark_for_review',
'languages' => [
[
'code' => 'en',
'level' => 'advanced'
]
]
],
[
'id' => 'form_nationality',
'type' => 'required'
],
[
'id' => 'resume_match',
'resume_score_reject' => 2,
'resume_score_accept' => 7
],
[
'id' => 'resume_technical_experience',
'action' => 'mark_for_review',
'technical_experience_years' => 3
]
],
'form_fields' => [
[
'id' => 'form_education',
'mandatory' => true
],
[
'id' => 'form_languages',
'mandatory' => true
],
[
'id' => 'form_nationality',
'mandatory' => true
],
[
'id' => 'custom_1772004521633',
'title' => 'Do you hold a valid work permit?',
'type' => 'required',
'field_type' => 'radio',
'options' => [
'Yes',
'No'
]
]
],
'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_education\",\n \"type\": \"screening\",\n \"action\": \"reject\",\n \"education\": \"bachelors\"\n },\n {\n \"id\": \"form_languages\",\n \"type\": \"screening\",\n \"action\": \"mark_for_review\",\n \"languages\": [\n {\n \"code\": \"en\",\n \"level\": \"advanced\"\n }\n ]\n },\n {\n \"id\": \"form_nationality\",\n \"type\": \"required\"\n },\n {\n \"id\": \"resume_match\",\n \"resume_score_reject\": 2,\n \"resume_score_accept\": 7\n },\n {\n \"id\": \"resume_technical_experience\",\n \"action\": \"mark_for_review\",\n \"technical_experience_years\": 3\n }\n ],\n \"form_fields\": [\n {\n \"id\": \"form_education\",\n \"mandatory\": true\n },\n {\n \"id\": \"form_languages\",\n \"mandatory\": true\n },\n {\n \"id\": \"form_nationality\",\n \"mandatory\": true\n },\n {\n \"id\": \"custom_1772004521633\",\n \"title\": \"Do you hold a valid work permit?\",\n \"type\": \"required\",\n \"field_type\": \"radio\",\n \"options\": [\n \"Yes\",\n \"No\"\n ]\n }\n ],\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_education\",\n \"type\": \"screening\",\n \"action\": \"reject\",\n \"education\": \"bachelors\"\n },\n {\n \"id\": \"form_languages\",\n \"type\": \"screening\",\n \"action\": \"mark_for_review\",\n \"languages\": [\n {\n \"code\": \"en\",\n \"level\": \"advanced\"\n }\n ]\n },\n {\n \"id\": \"form_nationality\",\n \"type\": \"required\"\n },\n {\n \"id\": \"resume_match\",\n \"resume_score_reject\": 2,\n \"resume_score_accept\": 7\n },\n {\n \"id\": \"resume_technical_experience\",\n \"action\": \"mark_for_review\",\n \"technical_experience_years\": 3\n }\n ],\n \"form_fields\": [\n {\n \"id\": \"form_education\",\n \"mandatory\": true\n },\n {\n \"id\": \"form_languages\",\n \"mandatory\": true\n },\n {\n \"id\": \"form_nationality\",\n \"mandatory\": true\n },\n {\n \"id\": \"custom_1772004521633\",\n \"title\": \"Do you hold a valid work permit?\",\n \"type\": \"required\",\n \"field_type\": \"radio\",\n \"options\": [\n \"Yes\",\n \"No\"\n ]\n }\n ],\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_education\",\n \"type\": \"screening\",\n \"action\": \"reject\",\n \"education\": \"bachelors\"\n },\n {\n \"id\": \"form_languages\",\n \"type\": \"screening\",\n \"action\": \"mark_for_review\",\n \"languages\": [\n {\n \"code\": \"en\",\n \"level\": \"advanced\"\n }\n ]\n },\n {\n \"id\": \"form_nationality\",\n \"type\": \"required\"\n },\n {\n \"id\": \"resume_match\",\n \"resume_score_reject\": 2,\n \"resume_score_accept\": 7\n },\n {\n \"id\": \"resume_technical_experience\",\n \"action\": \"mark_for_review\",\n \"technical_experience_years\": 3\n }\n ],\n \"form_fields\": [\n {\n \"id\": \"form_education\",\n \"mandatory\": true\n },\n {\n \"id\": \"form_languages\",\n \"mandatory\": true\n },\n {\n \"id\": \"form_nationality\",\n \"mandatory\": true\n },\n {\n \"id\": \"custom_1772004521633\",\n \"title\": \"Do you hold a valid work permit?\",\n \"type\": \"required\",\n \"field_type\": \"radio\",\n \"options\": [\n \"Yes\",\n \"No\"\n ]\n }\n ],\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
Supabase JWT — 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 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.
Show child attributes
Show child attributes
[
{
"id": "form_education",
"type": "screening",
"action": "reject",
"education": "bachelors"
},
{
"id": "form_languages",
"type": "screening",
"action": "mark_for_review",
"languages": [{ "code": "en", "level": "advanced" }]
},
{
"id": "form_nationality",
"type": "required"
},
{
"id": "resume_match",
"resume_score_reject": 2,
"resume_score_accept": 7
},
{
"id": "resume_technical_experience",
"action": "mark_for_review",
"technical_experience_years": 3
}
]
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.
Show child attributes
Show child attributes
[
{ "id": "form_education", "mandatory": true },
{ "id": "form_languages", "mandatory": true },
{
"id": "form_nationality",
"mandatory": true
},
{
"id": "custom_1772004521633",
"title": "Do you hold a valid work permit?",
"type": "required",
"field_type": "radio",
"options": ["Yes", "No"]
}
]
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.