curl --request POST \
--url https://cool.jobmojito.com/functions/v1/job-interview-create-from-array \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Project manager",
"location": "remote",
"interview_template_id": "46b98d37-1557-4391-beca-03037ead19f2",
"mojito_language_code": "en",
"description": "Project manager role",
"status": "active",
"type": "interview",
"visibility": "merchant_public",
"questions": [
{
"question": "<string>",
"id": "<string>",
"duration": 123,
"mojito_language_code": "en",
"label": "<string>",
"is_conditional": true,
"is_without_scoring": true,
"is_candidate_asking_recruiter": true,
"is_expert": true,
"is_multiple_choice": true,
"question_alternatives": [
"<string>"
],
"conditional_question_main_id": "<string>",
"knowledge_base_id": "<string>",
"external_id": "<string>",
"external_data": {},
"candidate_expectations_json": {
"weak": [
"<string>"
],
"moderate": [
"<string>"
],
"strong": [
"<string>"
]
}
}
],
"recording": "video_all",
"recording_full_session": "video_all",
"environment": "production",
"interview_type": "pre-screening-with-test-questions",
"seniority_level": "senior",
"result_view": "full",
"interview_conversation_speed": "normal",
"interview_tone": "professional",
"interview_attempts": 1,
"questions_random_subset": 123,
"max_followups": 2,
"code": "<string>",
"cover_image_url": "<string>",
"interview_department": "Engineering",
"interview_salary": "$80k - $100k",
"interview_available_till": "2026-12-31",
"recruiter_profile_id": "<string>",
"hiring_for_company": {
"name": "undisclosed"
},
"tags": [
"interview-practice",
"sales"
],
"required_pronunciation": false,
"result_enable_edit_transcript": true,
"pdf_export_auto_config": {
"mojito_language_code": "en",
"contact_details": true,
"ai_recruiter_assessment": true,
"ai_scoring_rubric": true,
"analytics": true,
"files": true,
"transcript": true,
"answer_recording": true,
"session_recording": true,
"group_by_question": true
},
"knowledge_base_store_id": "<string>",
"merchant_id": "<string>",
"description_long": "<string>",
"candidate_expectations": "<string>",
"candidate_expectations_json": {
"weak": [
"<string>"
],
"moderate": [
"<string>"
],
"strong": [
"<string>"
]
},
"custom_scoring": {},
"additional_context": {},
"instructional_video": true,
"instructional_video_custom_text": "<string>",
"disable_deduplication": true,
"welcome_message": "<string>",
"thank_you_message": "<string>",
"is_embedded": true
}
'import requests
url = "https://cool.jobmojito.com/functions/v1/job-interview-create-from-array"
payload = {
"name": "Project manager",
"location": "remote",
"interview_template_id": "46b98d37-1557-4391-beca-03037ead19f2",
"mojito_language_code": "en",
"description": "Project manager role",
"status": "active",
"type": "interview",
"visibility": "merchant_public",
"questions": [
{
"question": "<string>",
"id": "<string>",
"duration": 123,
"mojito_language_code": "en",
"label": "<string>",
"is_conditional": True,
"is_without_scoring": True,
"is_candidate_asking_recruiter": True,
"is_expert": True,
"is_multiple_choice": True,
"question_alternatives": ["<string>"],
"conditional_question_main_id": "<string>",
"knowledge_base_id": "<string>",
"external_id": "<string>",
"external_data": {},
"candidate_expectations_json": {
"weak": ["<string>"],
"moderate": ["<string>"],
"strong": ["<string>"]
}
}
],
"recording": "video_all",
"recording_full_session": "video_all",
"environment": "production",
"interview_type": "pre-screening-with-test-questions",
"seniority_level": "senior",
"result_view": "full",
"interview_conversation_speed": "normal",
"interview_tone": "professional",
"interview_attempts": 1,
"questions_random_subset": 123,
"max_followups": 2,
"code": "<string>",
"cover_image_url": "<string>",
"interview_department": "Engineering",
"interview_salary": "$80k - $100k",
"interview_available_till": "2026-12-31",
"recruiter_profile_id": "<string>",
"hiring_for_company": { "name": "undisclosed" },
"tags": ["interview-practice", "sales"],
"required_pronunciation": False,
"result_enable_edit_transcript": True,
"pdf_export_auto_config": {
"mojito_language_code": "en",
"contact_details": True,
"ai_recruiter_assessment": True,
"ai_scoring_rubric": True,
"analytics": True,
"files": True,
"transcript": True,
"answer_recording": True,
"session_recording": True,
"group_by_question": True
},
"knowledge_base_store_id": "<string>",
"merchant_id": "<string>",
"description_long": "<string>",
"candidate_expectations": "<string>",
"candidate_expectations_json": {
"weak": ["<string>"],
"moderate": ["<string>"],
"strong": ["<string>"]
},
"custom_scoring": {},
"additional_context": {},
"instructional_video": True,
"instructional_video_custom_text": "<string>",
"disable_deduplication": True,
"welcome_message": "<string>",
"thank_you_message": "<string>",
"is_embedded": True
}
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({
name: 'Project manager',
location: 'remote',
interview_template_id: '46b98d37-1557-4391-beca-03037ead19f2',
mojito_language_code: 'en',
description: 'Project manager role',
status: 'active',
type: 'interview',
visibility: 'merchant_public',
questions: [
{
question: '<string>',
id: '<string>',
duration: 123,
mojito_language_code: 'en',
label: '<string>',
is_conditional: true,
is_without_scoring: true,
is_candidate_asking_recruiter: true,
is_expert: true,
is_multiple_choice: true,
question_alternatives: ['<string>'],
conditional_question_main_id: '<string>',
knowledge_base_id: '<string>',
external_id: '<string>',
external_data: {},
candidate_expectations_json: {weak: ['<string>'], moderate: ['<string>'], strong: ['<string>']}
}
],
recording: 'video_all',
recording_full_session: 'video_all',
environment: 'production',
interview_type: 'pre-screening-with-test-questions',
seniority_level: 'senior',
result_view: 'full',
interview_conversation_speed: 'normal',
interview_tone: 'professional',
interview_attempts: 1,
questions_random_subset: 123,
max_followups: 2,
code: '<string>',
cover_image_url: '<string>',
interview_department: 'Engineering',
interview_salary: '$80k - $100k',
interview_available_till: '2026-12-31',
recruiter_profile_id: '<string>',
hiring_for_company: {name: 'undisclosed'},
tags: ['interview-practice', 'sales'],
required_pronunciation: false,
result_enable_edit_transcript: true,
pdf_export_auto_config: {
mojito_language_code: 'en',
contact_details: true,
ai_recruiter_assessment: true,
ai_scoring_rubric: true,
analytics: true,
files: true,
transcript: true,
answer_recording: true,
session_recording: true,
group_by_question: true
},
knowledge_base_store_id: '<string>',
merchant_id: '<string>',
description_long: '<string>',
candidate_expectations: '<string>',
candidate_expectations_json: {weak: ['<string>'], moderate: ['<string>'], strong: ['<string>']},
custom_scoring: {},
additional_context: {},
instructional_video: true,
instructional_video_custom_text: '<string>',
disable_deduplication: true,
welcome_message: '<string>',
thank_you_message: '<string>',
is_embedded: true
})
};
fetch('https://cool.jobmojito.com/functions/v1/job-interview-create-from-array', 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/job-interview-create-from-array",
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([
'name' => 'Project manager',
'location' => 'remote',
'interview_template_id' => '46b98d37-1557-4391-beca-03037ead19f2',
'mojito_language_code' => 'en',
'description' => 'Project manager role',
'status' => 'active',
'type' => 'interview',
'visibility' => 'merchant_public',
'questions' => [
[
'question' => '<string>',
'id' => '<string>',
'duration' => 123,
'mojito_language_code' => 'en',
'label' => '<string>',
'is_conditional' => true,
'is_without_scoring' => true,
'is_candidate_asking_recruiter' => true,
'is_expert' => true,
'is_multiple_choice' => true,
'question_alternatives' => [
'<string>'
],
'conditional_question_main_id' => '<string>',
'knowledge_base_id' => '<string>',
'external_id' => '<string>',
'external_data' => [
],
'candidate_expectations_json' => [
'weak' => [
'<string>'
],
'moderate' => [
'<string>'
],
'strong' => [
'<string>'
]
]
]
],
'recording' => 'video_all',
'recording_full_session' => 'video_all',
'environment' => 'production',
'interview_type' => 'pre-screening-with-test-questions',
'seniority_level' => 'senior',
'result_view' => 'full',
'interview_conversation_speed' => 'normal',
'interview_tone' => 'professional',
'interview_attempts' => 1,
'questions_random_subset' => 123,
'max_followups' => 2,
'code' => '<string>',
'cover_image_url' => '<string>',
'interview_department' => 'Engineering',
'interview_salary' => '$80k - $100k',
'interview_available_till' => '2026-12-31',
'recruiter_profile_id' => '<string>',
'hiring_for_company' => [
'name' => 'undisclosed'
],
'tags' => [
'interview-practice',
'sales'
],
'required_pronunciation' => false,
'result_enable_edit_transcript' => true,
'pdf_export_auto_config' => [
'mojito_language_code' => 'en',
'contact_details' => true,
'ai_recruiter_assessment' => true,
'ai_scoring_rubric' => true,
'analytics' => true,
'files' => true,
'transcript' => true,
'answer_recording' => true,
'session_recording' => true,
'group_by_question' => true
],
'knowledge_base_store_id' => '<string>',
'merchant_id' => '<string>',
'description_long' => '<string>',
'candidate_expectations' => '<string>',
'candidate_expectations_json' => [
'weak' => [
'<string>'
],
'moderate' => [
'<string>'
],
'strong' => [
'<string>'
]
],
'custom_scoring' => [
],
'additional_context' => [
],
'instructional_video' => true,
'instructional_video_custom_text' => '<string>',
'disable_deduplication' => true,
'welcome_message' => '<string>',
'thank_you_message' => '<string>',
'is_embedded' => true
]),
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/job-interview-create-from-array"
payload := strings.NewReader("{\n \"name\": \"Project manager\",\n \"location\": \"remote\",\n \"interview_template_id\": \"46b98d37-1557-4391-beca-03037ead19f2\",\n \"mojito_language_code\": \"en\",\n \"description\": \"Project manager role\",\n \"status\": \"active\",\n \"type\": \"interview\",\n \"visibility\": \"merchant_public\",\n \"questions\": [\n {\n \"question\": \"<string>\",\n \"id\": \"<string>\",\n \"duration\": 123,\n \"mojito_language_code\": \"en\",\n \"label\": \"<string>\",\n \"is_conditional\": true,\n \"is_without_scoring\": true,\n \"is_candidate_asking_recruiter\": true,\n \"is_expert\": true,\n \"is_multiple_choice\": true,\n \"question_alternatives\": [\n \"<string>\"\n ],\n \"conditional_question_main_id\": \"<string>\",\n \"knowledge_base_id\": \"<string>\",\n \"external_id\": \"<string>\",\n \"external_data\": {},\n \"candidate_expectations_json\": {\n \"weak\": [\n \"<string>\"\n ],\n \"moderate\": [\n \"<string>\"\n ],\n \"strong\": [\n \"<string>\"\n ]\n }\n }\n ],\n \"recording\": \"video_all\",\n \"recording_full_session\": \"video_all\",\n \"environment\": \"production\",\n \"interview_type\": \"pre-screening-with-test-questions\",\n \"seniority_level\": \"senior\",\n \"result_view\": \"full\",\n \"interview_conversation_speed\": \"normal\",\n \"interview_tone\": \"professional\",\n \"interview_attempts\": 1,\n \"questions_random_subset\": 123,\n \"max_followups\": 2,\n \"code\": \"<string>\",\n \"cover_image_url\": \"<string>\",\n \"interview_department\": \"Engineering\",\n \"interview_salary\": \"$80k - $100k\",\n \"interview_available_till\": \"2026-12-31\",\n \"recruiter_profile_id\": \"<string>\",\n \"hiring_for_company\": {\n \"name\": \"undisclosed\"\n },\n \"tags\": [\n \"interview-practice\",\n \"sales\"\n ],\n \"required_pronunciation\": false,\n \"result_enable_edit_transcript\": true,\n \"pdf_export_auto_config\": {\n \"mojito_language_code\": \"en\",\n \"contact_details\": true,\n \"ai_recruiter_assessment\": true,\n \"ai_scoring_rubric\": true,\n \"analytics\": true,\n \"files\": true,\n \"transcript\": true,\n \"answer_recording\": true,\n \"session_recording\": true,\n \"group_by_question\": true\n },\n \"knowledge_base_store_id\": \"<string>\",\n \"merchant_id\": \"<string>\",\n \"description_long\": \"<string>\",\n \"candidate_expectations\": \"<string>\",\n \"candidate_expectations_json\": {\n \"weak\": [\n \"<string>\"\n ],\n \"moderate\": [\n \"<string>\"\n ],\n \"strong\": [\n \"<string>\"\n ]\n },\n \"custom_scoring\": {},\n \"additional_context\": {},\n \"instructional_video\": true,\n \"instructional_video_custom_text\": \"<string>\",\n \"disable_deduplication\": true,\n \"welcome_message\": \"<string>\",\n \"thank_you_message\": \"<string>\",\n \"is_embedded\": true\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/job-interview-create-from-array")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Project manager\",\n \"location\": \"remote\",\n \"interview_template_id\": \"46b98d37-1557-4391-beca-03037ead19f2\",\n \"mojito_language_code\": \"en\",\n \"description\": \"Project manager role\",\n \"status\": \"active\",\n \"type\": \"interview\",\n \"visibility\": \"merchant_public\",\n \"questions\": [\n {\n \"question\": \"<string>\",\n \"id\": \"<string>\",\n \"duration\": 123,\n \"mojito_language_code\": \"en\",\n \"label\": \"<string>\",\n \"is_conditional\": true,\n \"is_without_scoring\": true,\n \"is_candidate_asking_recruiter\": true,\n \"is_expert\": true,\n \"is_multiple_choice\": true,\n \"question_alternatives\": [\n \"<string>\"\n ],\n \"conditional_question_main_id\": \"<string>\",\n \"knowledge_base_id\": \"<string>\",\n \"external_id\": \"<string>\",\n \"external_data\": {},\n \"candidate_expectations_json\": {\n \"weak\": [\n \"<string>\"\n ],\n \"moderate\": [\n \"<string>\"\n ],\n \"strong\": [\n \"<string>\"\n ]\n }\n }\n ],\n \"recording\": \"video_all\",\n \"recording_full_session\": \"video_all\",\n \"environment\": \"production\",\n \"interview_type\": \"pre-screening-with-test-questions\",\n \"seniority_level\": \"senior\",\n \"result_view\": \"full\",\n \"interview_conversation_speed\": \"normal\",\n \"interview_tone\": \"professional\",\n \"interview_attempts\": 1,\n \"questions_random_subset\": 123,\n \"max_followups\": 2,\n \"code\": \"<string>\",\n \"cover_image_url\": \"<string>\",\n \"interview_department\": \"Engineering\",\n \"interview_salary\": \"$80k - $100k\",\n \"interview_available_till\": \"2026-12-31\",\n \"recruiter_profile_id\": \"<string>\",\n \"hiring_for_company\": {\n \"name\": \"undisclosed\"\n },\n \"tags\": [\n \"interview-practice\",\n \"sales\"\n ],\n \"required_pronunciation\": false,\n \"result_enable_edit_transcript\": true,\n \"pdf_export_auto_config\": {\n \"mojito_language_code\": \"en\",\n \"contact_details\": true,\n \"ai_recruiter_assessment\": true,\n \"ai_scoring_rubric\": true,\n \"analytics\": true,\n \"files\": true,\n \"transcript\": true,\n \"answer_recording\": true,\n \"session_recording\": true,\n \"group_by_question\": true\n },\n \"knowledge_base_store_id\": \"<string>\",\n \"merchant_id\": \"<string>\",\n \"description_long\": \"<string>\",\n \"candidate_expectations\": \"<string>\",\n \"candidate_expectations_json\": {\n \"weak\": [\n \"<string>\"\n ],\n \"moderate\": [\n \"<string>\"\n ],\n \"strong\": [\n \"<string>\"\n ]\n },\n \"custom_scoring\": {},\n \"additional_context\": {},\n \"instructional_video\": true,\n \"instructional_video_custom_text\": \"<string>\",\n \"disable_deduplication\": true,\n \"welcome_message\": \"<string>\",\n \"thank_you_message\": \"<string>\",\n \"is_embedded\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://cool.jobmojito.com/functions/v1/job-interview-create-from-array")
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 \"name\": \"Project manager\",\n \"location\": \"remote\",\n \"interview_template_id\": \"46b98d37-1557-4391-beca-03037ead19f2\",\n \"mojito_language_code\": \"en\",\n \"description\": \"Project manager role\",\n \"status\": \"active\",\n \"type\": \"interview\",\n \"visibility\": \"merchant_public\",\n \"questions\": [\n {\n \"question\": \"<string>\",\n \"id\": \"<string>\",\n \"duration\": 123,\n \"mojito_language_code\": \"en\",\n \"label\": \"<string>\",\n \"is_conditional\": true,\n \"is_without_scoring\": true,\n \"is_candidate_asking_recruiter\": true,\n \"is_expert\": true,\n \"is_multiple_choice\": true,\n \"question_alternatives\": [\n \"<string>\"\n ],\n \"conditional_question_main_id\": \"<string>\",\n \"knowledge_base_id\": \"<string>\",\n \"external_id\": \"<string>\",\n \"external_data\": {},\n \"candidate_expectations_json\": {\n \"weak\": [\n \"<string>\"\n ],\n \"moderate\": [\n \"<string>\"\n ],\n \"strong\": [\n \"<string>\"\n ]\n }\n }\n ],\n \"recording\": \"video_all\",\n \"recording_full_session\": \"video_all\",\n \"environment\": \"production\",\n \"interview_type\": \"pre-screening-with-test-questions\",\n \"seniority_level\": \"senior\",\n \"result_view\": \"full\",\n \"interview_conversation_speed\": \"normal\",\n \"interview_tone\": \"professional\",\n \"interview_attempts\": 1,\n \"questions_random_subset\": 123,\n \"max_followups\": 2,\n \"code\": \"<string>\",\n \"cover_image_url\": \"<string>\",\n \"interview_department\": \"Engineering\",\n \"interview_salary\": \"$80k - $100k\",\n \"interview_available_till\": \"2026-12-31\",\n \"recruiter_profile_id\": \"<string>\",\n \"hiring_for_company\": {\n \"name\": \"undisclosed\"\n },\n \"tags\": [\n \"interview-practice\",\n \"sales\"\n ],\n \"required_pronunciation\": false,\n \"result_enable_edit_transcript\": true,\n \"pdf_export_auto_config\": {\n \"mojito_language_code\": \"en\",\n \"contact_details\": true,\n \"ai_recruiter_assessment\": true,\n \"ai_scoring_rubric\": true,\n \"analytics\": true,\n \"files\": true,\n \"transcript\": true,\n \"answer_recording\": true,\n \"session_recording\": true,\n \"group_by_question\": true\n },\n \"knowledge_base_store_id\": \"<string>\",\n \"merchant_id\": \"<string>\",\n \"description_long\": \"<string>\",\n \"candidate_expectations\": \"<string>\",\n \"candidate_expectations_json\": {\n \"weak\": [\n \"<string>\"\n ],\n \"moderate\": [\n \"<string>\"\n ],\n \"strong\": [\n \"<string>\"\n ]\n },\n \"custom_scoring\": {},\n \"additional_context\": {},\n \"instructional_video\": true,\n \"instructional_video_custom_text\": \"<string>\",\n \"disable_deduplication\": true,\n \"welcome_message\": \"<string>\",\n \"thank_you_message\": \"<string>\",\n \"is_embedded\": true\n}"
response = http.request(request)
puts response.read_body{
"interview_def_set_id": "<string>",
"embed_id": "<string>",
"embed_signing_key": "<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"
}Create an interview from an array of questions
Creates a new interview definition set from a caller-provided array of questions, builds its default and generated steps, optionally activates it, and optionally creates an embed key.
curl --request POST \
--url https://cool.jobmojito.com/functions/v1/job-interview-create-from-array \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Project manager",
"location": "remote",
"interview_template_id": "46b98d37-1557-4391-beca-03037ead19f2",
"mojito_language_code": "en",
"description": "Project manager role",
"status": "active",
"type": "interview",
"visibility": "merchant_public",
"questions": [
{
"question": "<string>",
"id": "<string>",
"duration": 123,
"mojito_language_code": "en",
"label": "<string>",
"is_conditional": true,
"is_without_scoring": true,
"is_candidate_asking_recruiter": true,
"is_expert": true,
"is_multiple_choice": true,
"question_alternatives": [
"<string>"
],
"conditional_question_main_id": "<string>",
"knowledge_base_id": "<string>",
"external_id": "<string>",
"external_data": {},
"candidate_expectations_json": {
"weak": [
"<string>"
],
"moderate": [
"<string>"
],
"strong": [
"<string>"
]
}
}
],
"recording": "video_all",
"recording_full_session": "video_all",
"environment": "production",
"interview_type": "pre-screening-with-test-questions",
"seniority_level": "senior",
"result_view": "full",
"interview_conversation_speed": "normal",
"interview_tone": "professional",
"interview_attempts": 1,
"questions_random_subset": 123,
"max_followups": 2,
"code": "<string>",
"cover_image_url": "<string>",
"interview_department": "Engineering",
"interview_salary": "$80k - $100k",
"interview_available_till": "2026-12-31",
"recruiter_profile_id": "<string>",
"hiring_for_company": {
"name": "undisclosed"
},
"tags": [
"interview-practice",
"sales"
],
"required_pronunciation": false,
"result_enable_edit_transcript": true,
"pdf_export_auto_config": {
"mojito_language_code": "en",
"contact_details": true,
"ai_recruiter_assessment": true,
"ai_scoring_rubric": true,
"analytics": true,
"files": true,
"transcript": true,
"answer_recording": true,
"session_recording": true,
"group_by_question": true
},
"knowledge_base_store_id": "<string>",
"merchant_id": "<string>",
"description_long": "<string>",
"candidate_expectations": "<string>",
"candidate_expectations_json": {
"weak": [
"<string>"
],
"moderate": [
"<string>"
],
"strong": [
"<string>"
]
},
"custom_scoring": {},
"additional_context": {},
"instructional_video": true,
"instructional_video_custom_text": "<string>",
"disable_deduplication": true,
"welcome_message": "<string>",
"thank_you_message": "<string>",
"is_embedded": true
}
'import requests
url = "https://cool.jobmojito.com/functions/v1/job-interview-create-from-array"
payload = {
"name": "Project manager",
"location": "remote",
"interview_template_id": "46b98d37-1557-4391-beca-03037ead19f2",
"mojito_language_code": "en",
"description": "Project manager role",
"status": "active",
"type": "interview",
"visibility": "merchant_public",
"questions": [
{
"question": "<string>",
"id": "<string>",
"duration": 123,
"mojito_language_code": "en",
"label": "<string>",
"is_conditional": True,
"is_without_scoring": True,
"is_candidate_asking_recruiter": True,
"is_expert": True,
"is_multiple_choice": True,
"question_alternatives": ["<string>"],
"conditional_question_main_id": "<string>",
"knowledge_base_id": "<string>",
"external_id": "<string>",
"external_data": {},
"candidate_expectations_json": {
"weak": ["<string>"],
"moderate": ["<string>"],
"strong": ["<string>"]
}
}
],
"recording": "video_all",
"recording_full_session": "video_all",
"environment": "production",
"interview_type": "pre-screening-with-test-questions",
"seniority_level": "senior",
"result_view": "full",
"interview_conversation_speed": "normal",
"interview_tone": "professional",
"interview_attempts": 1,
"questions_random_subset": 123,
"max_followups": 2,
"code": "<string>",
"cover_image_url": "<string>",
"interview_department": "Engineering",
"interview_salary": "$80k - $100k",
"interview_available_till": "2026-12-31",
"recruiter_profile_id": "<string>",
"hiring_for_company": { "name": "undisclosed" },
"tags": ["interview-practice", "sales"],
"required_pronunciation": False,
"result_enable_edit_transcript": True,
"pdf_export_auto_config": {
"mojito_language_code": "en",
"contact_details": True,
"ai_recruiter_assessment": True,
"ai_scoring_rubric": True,
"analytics": True,
"files": True,
"transcript": True,
"answer_recording": True,
"session_recording": True,
"group_by_question": True
},
"knowledge_base_store_id": "<string>",
"merchant_id": "<string>",
"description_long": "<string>",
"candidate_expectations": "<string>",
"candidate_expectations_json": {
"weak": ["<string>"],
"moderate": ["<string>"],
"strong": ["<string>"]
},
"custom_scoring": {},
"additional_context": {},
"instructional_video": True,
"instructional_video_custom_text": "<string>",
"disable_deduplication": True,
"welcome_message": "<string>",
"thank_you_message": "<string>",
"is_embedded": True
}
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({
name: 'Project manager',
location: 'remote',
interview_template_id: '46b98d37-1557-4391-beca-03037ead19f2',
mojito_language_code: 'en',
description: 'Project manager role',
status: 'active',
type: 'interview',
visibility: 'merchant_public',
questions: [
{
question: '<string>',
id: '<string>',
duration: 123,
mojito_language_code: 'en',
label: '<string>',
is_conditional: true,
is_without_scoring: true,
is_candidate_asking_recruiter: true,
is_expert: true,
is_multiple_choice: true,
question_alternatives: ['<string>'],
conditional_question_main_id: '<string>',
knowledge_base_id: '<string>',
external_id: '<string>',
external_data: {},
candidate_expectations_json: {weak: ['<string>'], moderate: ['<string>'], strong: ['<string>']}
}
],
recording: 'video_all',
recording_full_session: 'video_all',
environment: 'production',
interview_type: 'pre-screening-with-test-questions',
seniority_level: 'senior',
result_view: 'full',
interview_conversation_speed: 'normal',
interview_tone: 'professional',
interview_attempts: 1,
questions_random_subset: 123,
max_followups: 2,
code: '<string>',
cover_image_url: '<string>',
interview_department: 'Engineering',
interview_salary: '$80k - $100k',
interview_available_till: '2026-12-31',
recruiter_profile_id: '<string>',
hiring_for_company: {name: 'undisclosed'},
tags: ['interview-practice', 'sales'],
required_pronunciation: false,
result_enable_edit_transcript: true,
pdf_export_auto_config: {
mojito_language_code: 'en',
contact_details: true,
ai_recruiter_assessment: true,
ai_scoring_rubric: true,
analytics: true,
files: true,
transcript: true,
answer_recording: true,
session_recording: true,
group_by_question: true
},
knowledge_base_store_id: '<string>',
merchant_id: '<string>',
description_long: '<string>',
candidate_expectations: '<string>',
candidate_expectations_json: {weak: ['<string>'], moderate: ['<string>'], strong: ['<string>']},
custom_scoring: {},
additional_context: {},
instructional_video: true,
instructional_video_custom_text: '<string>',
disable_deduplication: true,
welcome_message: '<string>',
thank_you_message: '<string>',
is_embedded: true
})
};
fetch('https://cool.jobmojito.com/functions/v1/job-interview-create-from-array', 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/job-interview-create-from-array",
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([
'name' => 'Project manager',
'location' => 'remote',
'interview_template_id' => '46b98d37-1557-4391-beca-03037ead19f2',
'mojito_language_code' => 'en',
'description' => 'Project manager role',
'status' => 'active',
'type' => 'interview',
'visibility' => 'merchant_public',
'questions' => [
[
'question' => '<string>',
'id' => '<string>',
'duration' => 123,
'mojito_language_code' => 'en',
'label' => '<string>',
'is_conditional' => true,
'is_without_scoring' => true,
'is_candidate_asking_recruiter' => true,
'is_expert' => true,
'is_multiple_choice' => true,
'question_alternatives' => [
'<string>'
],
'conditional_question_main_id' => '<string>',
'knowledge_base_id' => '<string>',
'external_id' => '<string>',
'external_data' => [
],
'candidate_expectations_json' => [
'weak' => [
'<string>'
],
'moderate' => [
'<string>'
],
'strong' => [
'<string>'
]
]
]
],
'recording' => 'video_all',
'recording_full_session' => 'video_all',
'environment' => 'production',
'interview_type' => 'pre-screening-with-test-questions',
'seniority_level' => 'senior',
'result_view' => 'full',
'interview_conversation_speed' => 'normal',
'interview_tone' => 'professional',
'interview_attempts' => 1,
'questions_random_subset' => 123,
'max_followups' => 2,
'code' => '<string>',
'cover_image_url' => '<string>',
'interview_department' => 'Engineering',
'interview_salary' => '$80k - $100k',
'interview_available_till' => '2026-12-31',
'recruiter_profile_id' => '<string>',
'hiring_for_company' => [
'name' => 'undisclosed'
],
'tags' => [
'interview-practice',
'sales'
],
'required_pronunciation' => false,
'result_enable_edit_transcript' => true,
'pdf_export_auto_config' => [
'mojito_language_code' => 'en',
'contact_details' => true,
'ai_recruiter_assessment' => true,
'ai_scoring_rubric' => true,
'analytics' => true,
'files' => true,
'transcript' => true,
'answer_recording' => true,
'session_recording' => true,
'group_by_question' => true
],
'knowledge_base_store_id' => '<string>',
'merchant_id' => '<string>',
'description_long' => '<string>',
'candidate_expectations' => '<string>',
'candidate_expectations_json' => [
'weak' => [
'<string>'
],
'moderate' => [
'<string>'
],
'strong' => [
'<string>'
]
],
'custom_scoring' => [
],
'additional_context' => [
],
'instructional_video' => true,
'instructional_video_custom_text' => '<string>',
'disable_deduplication' => true,
'welcome_message' => '<string>',
'thank_you_message' => '<string>',
'is_embedded' => true
]),
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/job-interview-create-from-array"
payload := strings.NewReader("{\n \"name\": \"Project manager\",\n \"location\": \"remote\",\n \"interview_template_id\": \"46b98d37-1557-4391-beca-03037ead19f2\",\n \"mojito_language_code\": \"en\",\n \"description\": \"Project manager role\",\n \"status\": \"active\",\n \"type\": \"interview\",\n \"visibility\": \"merchant_public\",\n \"questions\": [\n {\n \"question\": \"<string>\",\n \"id\": \"<string>\",\n \"duration\": 123,\n \"mojito_language_code\": \"en\",\n \"label\": \"<string>\",\n \"is_conditional\": true,\n \"is_without_scoring\": true,\n \"is_candidate_asking_recruiter\": true,\n \"is_expert\": true,\n \"is_multiple_choice\": true,\n \"question_alternatives\": [\n \"<string>\"\n ],\n \"conditional_question_main_id\": \"<string>\",\n \"knowledge_base_id\": \"<string>\",\n \"external_id\": \"<string>\",\n \"external_data\": {},\n \"candidate_expectations_json\": {\n \"weak\": [\n \"<string>\"\n ],\n \"moderate\": [\n \"<string>\"\n ],\n \"strong\": [\n \"<string>\"\n ]\n }\n }\n ],\n \"recording\": \"video_all\",\n \"recording_full_session\": \"video_all\",\n \"environment\": \"production\",\n \"interview_type\": \"pre-screening-with-test-questions\",\n \"seniority_level\": \"senior\",\n \"result_view\": \"full\",\n \"interview_conversation_speed\": \"normal\",\n \"interview_tone\": \"professional\",\n \"interview_attempts\": 1,\n \"questions_random_subset\": 123,\n \"max_followups\": 2,\n \"code\": \"<string>\",\n \"cover_image_url\": \"<string>\",\n \"interview_department\": \"Engineering\",\n \"interview_salary\": \"$80k - $100k\",\n \"interview_available_till\": \"2026-12-31\",\n \"recruiter_profile_id\": \"<string>\",\n \"hiring_for_company\": {\n \"name\": \"undisclosed\"\n },\n \"tags\": [\n \"interview-practice\",\n \"sales\"\n ],\n \"required_pronunciation\": false,\n \"result_enable_edit_transcript\": true,\n \"pdf_export_auto_config\": {\n \"mojito_language_code\": \"en\",\n \"contact_details\": true,\n \"ai_recruiter_assessment\": true,\n \"ai_scoring_rubric\": true,\n \"analytics\": true,\n \"files\": true,\n \"transcript\": true,\n \"answer_recording\": true,\n \"session_recording\": true,\n \"group_by_question\": true\n },\n \"knowledge_base_store_id\": \"<string>\",\n \"merchant_id\": \"<string>\",\n \"description_long\": \"<string>\",\n \"candidate_expectations\": \"<string>\",\n \"candidate_expectations_json\": {\n \"weak\": [\n \"<string>\"\n ],\n \"moderate\": [\n \"<string>\"\n ],\n \"strong\": [\n \"<string>\"\n ]\n },\n \"custom_scoring\": {},\n \"additional_context\": {},\n \"instructional_video\": true,\n \"instructional_video_custom_text\": \"<string>\",\n \"disable_deduplication\": true,\n \"welcome_message\": \"<string>\",\n \"thank_you_message\": \"<string>\",\n \"is_embedded\": true\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/job-interview-create-from-array")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Project manager\",\n \"location\": \"remote\",\n \"interview_template_id\": \"46b98d37-1557-4391-beca-03037ead19f2\",\n \"mojito_language_code\": \"en\",\n \"description\": \"Project manager role\",\n \"status\": \"active\",\n \"type\": \"interview\",\n \"visibility\": \"merchant_public\",\n \"questions\": [\n {\n \"question\": \"<string>\",\n \"id\": \"<string>\",\n \"duration\": 123,\n \"mojito_language_code\": \"en\",\n \"label\": \"<string>\",\n \"is_conditional\": true,\n \"is_without_scoring\": true,\n \"is_candidate_asking_recruiter\": true,\n \"is_expert\": true,\n \"is_multiple_choice\": true,\n \"question_alternatives\": [\n \"<string>\"\n ],\n \"conditional_question_main_id\": \"<string>\",\n \"knowledge_base_id\": \"<string>\",\n \"external_id\": \"<string>\",\n \"external_data\": {},\n \"candidate_expectations_json\": {\n \"weak\": [\n \"<string>\"\n ],\n \"moderate\": [\n \"<string>\"\n ],\n \"strong\": [\n \"<string>\"\n ]\n }\n }\n ],\n \"recording\": \"video_all\",\n \"recording_full_session\": \"video_all\",\n \"environment\": \"production\",\n \"interview_type\": \"pre-screening-with-test-questions\",\n \"seniority_level\": \"senior\",\n \"result_view\": \"full\",\n \"interview_conversation_speed\": \"normal\",\n \"interview_tone\": \"professional\",\n \"interview_attempts\": 1,\n \"questions_random_subset\": 123,\n \"max_followups\": 2,\n \"code\": \"<string>\",\n \"cover_image_url\": \"<string>\",\n \"interview_department\": \"Engineering\",\n \"interview_salary\": \"$80k - $100k\",\n \"interview_available_till\": \"2026-12-31\",\n \"recruiter_profile_id\": \"<string>\",\n \"hiring_for_company\": {\n \"name\": \"undisclosed\"\n },\n \"tags\": [\n \"interview-practice\",\n \"sales\"\n ],\n \"required_pronunciation\": false,\n \"result_enable_edit_transcript\": true,\n \"pdf_export_auto_config\": {\n \"mojito_language_code\": \"en\",\n \"contact_details\": true,\n \"ai_recruiter_assessment\": true,\n \"ai_scoring_rubric\": true,\n \"analytics\": true,\n \"files\": true,\n \"transcript\": true,\n \"answer_recording\": true,\n \"session_recording\": true,\n \"group_by_question\": true\n },\n \"knowledge_base_store_id\": \"<string>\",\n \"merchant_id\": \"<string>\",\n \"description_long\": \"<string>\",\n \"candidate_expectations\": \"<string>\",\n \"candidate_expectations_json\": {\n \"weak\": [\n \"<string>\"\n ],\n \"moderate\": [\n \"<string>\"\n ],\n \"strong\": [\n \"<string>\"\n ]\n },\n \"custom_scoring\": {},\n \"additional_context\": {},\n \"instructional_video\": true,\n \"instructional_video_custom_text\": \"<string>\",\n \"disable_deduplication\": true,\n \"welcome_message\": \"<string>\",\n \"thank_you_message\": \"<string>\",\n \"is_embedded\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://cool.jobmojito.com/functions/v1/job-interview-create-from-array")
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 \"name\": \"Project manager\",\n \"location\": \"remote\",\n \"interview_template_id\": \"46b98d37-1557-4391-beca-03037ead19f2\",\n \"mojito_language_code\": \"en\",\n \"description\": \"Project manager role\",\n \"status\": \"active\",\n \"type\": \"interview\",\n \"visibility\": \"merchant_public\",\n \"questions\": [\n {\n \"question\": \"<string>\",\n \"id\": \"<string>\",\n \"duration\": 123,\n \"mojito_language_code\": \"en\",\n \"label\": \"<string>\",\n \"is_conditional\": true,\n \"is_without_scoring\": true,\n \"is_candidate_asking_recruiter\": true,\n \"is_expert\": true,\n \"is_multiple_choice\": true,\n \"question_alternatives\": [\n \"<string>\"\n ],\n \"conditional_question_main_id\": \"<string>\",\n \"knowledge_base_id\": \"<string>\",\n \"external_id\": \"<string>\",\n \"external_data\": {},\n \"candidate_expectations_json\": {\n \"weak\": [\n \"<string>\"\n ],\n \"moderate\": [\n \"<string>\"\n ],\n \"strong\": [\n \"<string>\"\n ]\n }\n }\n ],\n \"recording\": \"video_all\",\n \"recording_full_session\": \"video_all\",\n \"environment\": \"production\",\n \"interview_type\": \"pre-screening-with-test-questions\",\n \"seniority_level\": \"senior\",\n \"result_view\": \"full\",\n \"interview_conversation_speed\": \"normal\",\n \"interview_tone\": \"professional\",\n \"interview_attempts\": 1,\n \"questions_random_subset\": 123,\n \"max_followups\": 2,\n \"code\": \"<string>\",\n \"cover_image_url\": \"<string>\",\n \"interview_department\": \"Engineering\",\n \"interview_salary\": \"$80k - $100k\",\n \"interview_available_till\": \"2026-12-31\",\n \"recruiter_profile_id\": \"<string>\",\n \"hiring_for_company\": {\n \"name\": \"undisclosed\"\n },\n \"tags\": [\n \"interview-practice\",\n \"sales\"\n ],\n \"required_pronunciation\": false,\n \"result_enable_edit_transcript\": true,\n \"pdf_export_auto_config\": {\n \"mojito_language_code\": \"en\",\n \"contact_details\": true,\n \"ai_recruiter_assessment\": true,\n \"ai_scoring_rubric\": true,\n \"analytics\": true,\n \"files\": true,\n \"transcript\": true,\n \"answer_recording\": true,\n \"session_recording\": true,\n \"group_by_question\": true\n },\n \"knowledge_base_store_id\": \"<string>\",\n \"merchant_id\": \"<string>\",\n \"description_long\": \"<string>\",\n \"candidate_expectations\": \"<string>\",\n \"candidate_expectations_json\": {\n \"weak\": [\n \"<string>\"\n ],\n \"moderate\": [\n \"<string>\"\n ],\n \"strong\": [\n \"<string>\"\n ]\n },\n \"custom_scoring\": {},\n \"additional_context\": {},\n \"instructional_video\": true,\n \"instructional_video_custom_text\": \"<string>\",\n \"disable_deduplication\": true,\n \"welcome_message\": \"<string>\",\n \"thank_you_message\": \"<string>\",\n \"is_embedded\": true\n}"
response = http.request(request)
puts response.read_body{
"interview_def_set_id": "<string>",
"embed_id": "<string>",
"embed_signing_key": "<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"
}Authorizations
Supabase JWT — Authorization: Bearer <token>.
Body
Interview/position name.
1"Project manager"
Job location — a city/country, or remote. Required and must not be empty: when the job description gives no location, pass Not specified.
1"remote"
Id of the interview template to use. Must reference an existing interview_templates row.
1"46b98d37-1557-4391-beca-03037ead19f2"
Platform language code (one of the platform-languages.json codes); must also resolve to a supported language with an Azure speech mapping.
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"
Short interview description.
1"Project manager role"
Lifecycle status of the interview. Options — draft: Created but not published — not visible to candidates and cannot be run yet. Use to stage an interview before going live. | active: Published and live — candidates can run it..
draft, active "active"
Product type of the interview. Options — interview: Standard candidate interview for a role — answers are AI-scored and produce a hiring recommendation. | coaching: Practice/coaching session — candidate-facing feedback to help them improve; not a hiring evaluation. Only available on the coaching portal, NOT the interview portal. | assessment: Skills/knowledge assessment — evaluates competencies and is scored like an interview..
interview, coaching, assessment "interview"
Who can discover and access the interview. Options — merchant_public: Listed on the merchant's public interview list — anyone with the merchant link can find and start it. | merchant_invite: Invite-only — only candidates explicitly invited (by email/link) can access it; not listed anywhere. | merchant_unlisted: Reachable only via a direct link — not listed anywhere; share the link manually..
merchant_public, merchant_invite, merchant_unlisted "merchant_public"
Ordered list of interview questions to create as steps.
1Show child attributes
Show child attributes
Cheating/proctoring detection mode for candidate answers — this is NOT a full session recording. Video options also record the candidate. Omit/null to disable. Options — audio_first_5_answers: Audio-only cheating detection, first 5 answers only. | audio_all: Audio-only cheating detection on every answer. | video_all: Audio + video cheating detection on every answer (candidate is recorded for all answers). | video_first_5_answers: Audio + video cheating detection, first 5 answers only..
audio_first_5_answers, audio_all, video_all, video_first_5_answers "video_all"
Full interview-session recording (includes the avatar and voice) produced as a single file. Independent of recording. Omit/null to disable. Options — audio_all: Record the whole session audio (avatar + candidate voice) into a single file. Adds +0.2 credits. | video_all: Record the whole session video + audio (avatar + candidate) into a single file. Adds +0.4 credits..
audio_all, video_all "video_all"
Which of your webhook environments results from this interview are delivered to. Defaults to production. Options — production: Live hiring. Results reach the webhooks configured as production. This is the default when the field is omitted. | uat: User-acceptance testing - an isolated environment for pre-release verification. | development: Development/testing. Use for interviews created by a test or preview app so their results never reach the production webhook. | demo: Demonstrations and sales trials..
production, uat, development, demo "production"
Interview style — configures the AI avatar and the follow-up questions it generates during the interview. The base questions you supply are used as-is and are NOT affected by this setting. Options — pre-screening: Pre-screening — quick qualification check focusing on basic requirements and availability. | pre-screening-with-test-questions: Pre-screening with test questions — pre-screening plus practical questions to test relevant skills. | second-interview: Second round interview — deeper dive for candidates who passed initial screening. | remote-freelancer-verification: Remote worker verification — verify remote work capabilities and communication skills. | strength-based-interview: Strength-based interview — focus on what candidates enjoy and excel at to predict job satisfaction. | potential-based-interview: Potential-based interview — assess learning ability and growth potential rather than past experience. | process-verification-from-knowledge-base: Knowledge Base interview — generate questions from your knowledge base documents..
pre-screening, pre-screening-with-test-questions, second-interview, remote-freelancer-verification, strength-based-interview, potential-based-interview, process-verification-from-knowledge-base "pre-screening-with-test-questions"
Target seniority level for the role; auto-detected from the job description when omitted. Options — entry-level: Early-career or graduate roles. | intermediate: Some experience required. | senior: Experienced professional. | managerial: Team or department lead. | director: Director-level responsibility. | executive: C-suite or executive role..
entry-level, intermediate, senior, managerial, director, executive "senior"
Result screen shown to the candidate after finishing. With any value other than none, the candidate sees a results screen where they can provide feedback, record an intro video and edit the transcript, and must then submit the result; the value sets how much score/result detail is shown. Options — none: No results screen at all — the interview is submitted immediately when the candidate finishes (no feedback, intro video, transcript edit or manual submit step). | minimal: Minimal results layout, no score shown. | minimal_with_score: Minimal results layout including the overall score. | advanced: Advanced results layout with more detail. | full: Full results layout with all sections. | full_expand_scores: Full results with every score breakdown expanded..
none, minimal, minimal_with_score, advanced, full, full_expand_scores "full"
Conversation pace of the AI avatar. Omit/null keeps the template default pace. Options — slower: The avatar speaks more slowly — easier to follow for non-native speakers. | normal: Default speaking pace. | faster: The avatar speaks more quickly for a snappier conversation..
slower, normal, faster "normal"
Whether a candidate video introduction is optional or required.
optional, required Tone — configures the AI avatar's speaking style and the follow-up questions it generates; the base questions you supply are not affected. Case-insensitive; omit to default to relaxed. Options — relaxed: Friendly and conversational tone that helps candidates feel at ease. | simple: Plain language at CEFR A2 level — short sentences and simple words. | professional: Formal and business-like approach suitable for senior roles. | persuasive: Engaging style that encourages candidates to elaborate. | exact: Asks the questions exactly as provided, without rephrasing — for interviews built from your own questions (create_interview_from_questions) where the wording is a script..
relaxed, simple, professional, persuasive, exact "professional"
Allowed attempts, 1-20.
1
Fraction of questions to randomly ask, between 0.01 and 0.9.
Maximum number of AI follow-up questions. 0 disables follow-ups; presets are 0-3 (none/low/normal/high) and custom values start at 4; null uses the template default (Normal).
0 <= x <= 9992
Optional external code/reference.
Cover image URL.
Department the position belongs to.
"Engineering"
Salary range shown for the position.
"$80k - $100k"
ISO date/time after which the interview is no longer available to candidates. null keeps it always available.
"2026-12-31"
Profile id of the recruiter owning this interview. Must be a merchant/merchant_owner/admin profile of the same merchant.
Who the position is really for. Omit/null (or an object with name null/blank) when hiring for yourself; { name: 'undisclosed' } for an unnamed external client; or { name: '' } plus optional description/location/sector/company_size for a named client. Stored in creation_parameters.hiring_for_company.
Show child attributes
Show child attributes
{ "name": "undisclosed" }
Free-form tags stored on the interview. Tags are also the coaching-catalogue mapping key: a catalogue directory (see the catalogue-tag-create / catalogue-tag-update endpoints) lists a coaching or persona session when the session's tags contain EVERY tag in that directory's tags_interview_set_filter. Only active sessions with visibility public or merchant_public are listed.
["interview-practice", "sales"]
Require pronunciation assessment (restricts to pronunciation-capable languages). Defaults to false.
false
Allow editing the transcript on the result view. Defaults to true.
true
Auto-generate a candidate PDF report with these options once the interview completes. null disables auto-export.
Show child attributes
Show child attributes
Optional knowledge base store id; validated for existence.
Target merchant id (admins / sub-merchant only).
Long-form interview description. Rendered as Markdown on the candidate-facing position page, including chips, callouts, cards, columns and buttons — formatting guide: https://developer.jobmojito.com/cookbooks/format-content-with-markdown
Free-text candidate expectations.
Pre-generated candidate expectations, bucketed by requirement level (weak/moderate/strong); auto-generated when omitted for type=interview. Extra keys are preserved.
Show child attributes
Show child attributes
Custom scoring overrides merged with defaults.
Show child attributes
Show child attributes
Extra context forwarded to expectation generation.
Show child attributes
Show child attributes
Enable an instructional video before approval.
Custom text for the instructional video.
When true, skip step deduplication on insert.
Custom welcome message.
Custom thank-you message.
Set true when the interview will be embedded as an iframe on an external page. Creates an embed key and returns embed_id/embed_signing_key, used to authenticate/sign the iframe embed.
Response
Interview created.
The created interview definition set id, plus embed credentials when is_embedded=true.