{
"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"
}
Interviews
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. job-interview-create with questions does exactly the same. For owners, recruiters and admins; hiring managers (read-only accounts) and other tokens get 403.
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.
Product type of the interview. Options — interview: Standard candidate interview for a role — answers are AI-scored as input for the reviewer's decision. | 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.
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.
Cheating/proctoring detection mode for candidate answers — this is NOT a full session recording. Video options also record the candidate. Omit, null or none 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. | none: No cheating detection.
Full interview-session recording (includes the avatar and voice) produced as a single file. Independent of recording. Omit, null or none 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. | none: No full-session recording.
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.
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. | knockout-screening: Knock-out screening — a short (about 5 minute) check of the role's must-haves with closed questions; ends early, politely, when a must-have is clearly not met. On creation it defaults custom_scoring.early_stop to true (where the avatar supports early stop) and max_followups to 1 unless you send them.
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.
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.
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. | fluent: Talking pace: the avatar answers 300 ms after the candidate stops speaking. A pause mid-sentence also ends their turn.
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 where the wording is a script.
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).
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.
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 merchant_public (or the platform's own public) are listed.
Pre-generated candidate expectations, bucketed by requirement level (weak/moderate/strong); auto-generated when omitted for type=interview. Extra keys are preserved.
Custom microphone-test instruction for a recorded (offline avatar) interview, spoken by the avatar and shown on screen before the first question. Omitted uses the default prompt in the interview language.
Example:
"Before we start, let's check your microphone. Say \"Hello, I'm ready.\""
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.
Which countries the interview / position is open to on the candidate portal, judged by the IP address the candidate opens it from (an unknown location only passes when countries_allowed / countries_allowed_eu are empty). From a closed country it is left out of the portal listings, and a direct link shows "not available in your region". Invited candidates (personal invitation links) and candidates who already started keep access; API and MCP calls themselves are never restricted. Null = not used, every country.
SMS / WhatsApp notifications to the candidate, sent alongside the e-mails: "reminders" = with both e-mail reminders (day 1 and day 3); "last_reminder" = only with the final day-3 reminder; "all" = invitation, both reminders and the pre-screening-accepted step. null switches them off. WhatsApp is tried first, SMS when the number is not on WhatsApp. Available on paid plans (Starter and above) and needs a phone number on the candidate.
Available options:
reminders,
last_reminder,
all
Response
Interview created.
The created interview definition set id, plus embed credentials when is_embedded=true.
Embed signing key, present only when is_embedded=true.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"JobMojito Developer / Agent","description":"AI Interview and assessment conversational platform documentation","colors":{"primary":"#639C42","light":"#ACCC37","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/jobmojito/DU7xAw61G9kqV1zG/images/jobmojito-light.svg?fit=max\u0026auto=format\u0026n=DU7xAw61G9kqV1zG\u0026q=85\u0026s=6c00cb5f3104ffb6325dacc0818bba69","dark":"https://mintcdn.com/jobmojito/DU7xAw61G9kqV1zG/images/jobmojito-dark.svg?fit=max\u0026auto=format\u0026n=DU7xAw61G9kqV1zG\u0026q=85\u0026s=a05ab0ca109d7a225b08ccac00f9c486","href":"https://jobmojito.com"},"favicon":{"light":"https://mintcdn.com/jobmojito/DU7xAw61G9kqV1zG/images/favicon-light.svg?fit=max\u0026auto=format\u0026n=DU7xAw61G9kqV1zG\u0026q=85\u0026s=f300813ab120824238a790b6905dceee","dark":"https://mintcdn.com/jobmojito/DU7xAw61G9kqV1zG/images/favicon-dark.svg?fit=max\u0026auto=format\u0026n=DU7xAw61G9kqV1zG\u0026q=85\u0026s=2104ff9e7b9fd23fbe5954886c0aafbe"},"navbar":{"links":[{"href":"https://jobmojito.com/support","label":"Support"},{"href":"https://jobmojito.com","label":"Homepage"},{"href":"https://app.jobmojito.com","label":"App"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.mintlify.com"}},"footer":{"socials":{"linkedin":"https://linkedin.com/company/jobmojito"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"toc"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"jobmojito","hasAudioNarration":false,"actualSubdomain":"jobmojito","customDomains":["developer.jobmojito.com"],"gitSource":{"type":"github","owner":"mintlify-community","repo":"docs-jobmojito-fee23398","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6af1dfb6ee06d45cdd87d014","clientVersion":"0.0.4124","searchFilterCounts":[{"language":"default","tag":"API Reference","count":82},{"language":"default","tag":"Admin","count":19},{"language":"default","tag":"Cookbooks","count":17},{"language":"default","tag":"Webhooks","count":14},{"language":"default","tag":"MCP","count":13},{"language":"default","tag":"Candidates","count":12},{"language":"default","tag":"Interviews","count":10},{"language":"default","tag":"Connect","count":8},{"language":"default","tag":"Reports","count":7},{"language":"default","tag":"Results","count":7}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/interviews/create-an-interview-from-an-array-of-questions","slug":"/api-reference/interviews/create-an-interview-from-an-array-of-questions","pageMetadata":{"title":"Create an interview from an array of questions","description":"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. job-interview-create with `questions` does exactly the same. For owners, recruiters and admins; hiring managers (read-only accounts) and other tokens get 403.","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-create-from-array","href":"/api-reference/interviews/create-an-interview-from-an-array-of-questions","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"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. job-interview-create with \", _jsx(_components.code, {\n children: \"questions\"\n }), \" does exactly the same. For owners, recruiters and admins; hiring managers (read-only accounts) and other tokens get 403.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create an interview from an array of questions","description":"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. job-interview-create with `questions` does exactly the same. For owners, recruiters and admins; hiring managers (read-only accounts) and other tokens get 403.","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-create-from-array","href":"/api-reference/interviews/create-an-interview-from-an-array-of-questions","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Interviews"],"summary":"Create an interview from an array of questions","description":"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. job-interview-create with `questions` does exactly the same. For owners, recruiters and admins; hiring managers (read-only accounts) and other tokens get 403.","security":["c69d1a08-cfe6-481e-96bd-022dc73d250e"],"requestBody":"cd4737f5-0e23-467c-b4a5-67cae3cebe32","responses":{"200":"8c9a50e0-3876-4642-8983-054b99cf71a1","401":"3d402db3-17e0-4937-ab04-1e2dc099afba","403":"cc795b78-556d-4e4a-9405-25ba5ce730dd","422":"9c08f47a-a1e2-4a4f-8b73-f1783c7f6cf2","500":"c48a07c2-c4bb-4e07-ac98-19ee31362109"},"method":"post","type":"path","servers":["454fcb62-7052-4847-a728-ecf5ade065a6"],"path":"/job-interview-create-from-array","baseUrlOptions":["https://cool.jobmojito.com/functions/v1"],"title":"Create an interview from an array of questions","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Interview/position name.","example":"Project manager","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"location":{"type":"string","minLength":1,"description":"Job location — a city/country, or `remote`. Required and must not be empty: when the job description gives no location, pass `Not specified`.","example":"remote","isRequired":true,"uniqueKey":"location","typeLabel":"string"},"interview_template_id":{"type":"string","minLength":1,"description":"Id of the interview template to use. An id from merchant-avatar-list.","example":"46b98d37-1557-4391-beca-03037ead19f2","isRequired":true,"uniqueKey":"interview_template_id","typeLabel":"string"},"mojito_language_code":{"type":"string","enum":["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"],"description":"Platform language code (one of the listed codes); must also resolve to a supported language with an Azure speech mapping.","example":"en","isRequired":true,"uniqueKey":"mojito_language_code","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"description":"Short interview description.","example":"Project manager role","isRequired":true,"uniqueKey":"description","typeLabel":"string"},"status":{"type":"string","enum":["draft","active"],"description":"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.","example":"active","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"type":{"type":"string","enum":["interview","coaching","assessment"],"description":"Product type of the interview. Options — `interview`: Standard candidate interview for a role — answers are AI-scored as input for the reviewer's decision. | `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.","example":"interview","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"visibility":{"type":"string","enum":["merchant_public","merchant_invite","merchant_unlisted"],"description":"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.","example":"merchant_public","isRequired":true,"uniqueKey":"visibility","typeLabel":"enum\u003cstring>"},"questions":{"type":"array","items":{"type":"object","properties":{"question":{"type":"string","description":"The question text shown to the candidate.","isRequired":true,"uniqueKey":"questions.items.[INDEX].question","typeLabel":"string"},"id":{"type":"string","description":"Identifier for this question. job-interview-get returns the question's real id here; send it back to job-interview-update so an unchanged question keeps its existing record (and with it its answer rules and any rendered avatar video). Also the handle another question references via conditional_question_main_id. On job-interview-create-from-array it is a caller-local value, only needed for those references.","uniqueKey":"questions.items.[INDEX].id","typeLabel":"string"},"duration":{"oneOf":[{"type":"number","description":"Answer duration in seconds for this question.","uniqueKey":"questions.items.[INDEX].duration.oneOf.0","typeLabel":"number"},{"type":"null","description":"Answer duration in seconds for this question.","uniqueKey":"questions.items.[INDEX].duration.oneOf.1","typeLabel":"null"}],"uniqueKey":"questions.items.[INDEX].duration","typeLabel":"number | null"},"mojito_language_code":{"oneOf":[{"type":"string","enum":["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"],"description":"Per-question language override (one of the listed codes). Inherits the interview language when omitted.","example":"en","uniqueKey":"questions.items.[INDEX].mojito_language_code.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["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"],"description":"Per-question language override (one of the listed codes). Inherits the interview language when omitted.","example":"en","uniqueKey":"questions.items.[INDEX].mojito_language_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"questions.items.[INDEX].mojito_language_code","typeLabel":"enum\u003cstring> | null"},"label":{"oneOf":[{"type":"string","description":"Optional label/tag stored on the question.","uniqueKey":"questions.items.[INDEX].label.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional label/tag stored on the question.","uniqueKey":"questions.items.[INDEX].label.oneOf.1","typeLabel":"null"}],"uniqueKey":"questions.items.[INDEX].label","typeLabel":"string | null"},"is_conditional":{"oneOf":[{"type":"boolean","description":"A yes/no question that decides which follow-ups are asked (view 'with listening conditional'). Its follow-ups point at it with conditional_question_main_id.","uniqueKey":"questions.items.[INDEX].is_conditional.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"A yes/no question that decides which follow-ups are asked (view 'with listening conditional'). Its follow-ups point at it with conditional_question_main_id.","uniqueKey":"questions.items.[INDEX].is_conditional.oneOf.1","typeLabel":"null"}],"uniqueKey":"questions.items.[INDEX].is_conditional","typeLabel":"boolean | null"},"is_without_scoring":{"oneOf":[{"type":"boolean","description":"Question is asked but not scored (view 'without scoring').","uniqueKey":"questions.items.[INDEX].is_without_scoring.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Question is asked but not scored (view 'without scoring').","uniqueKey":"questions.items.[INDEX].is_without_scoring.oneOf.1","typeLabel":"null"}],"uniqueKey":"questions.items.[INDEX].is_without_scoring","typeLabel":"boolean | null"},"is_candidate_asking_recruiter":{"oneOf":[{"type":"boolean","description":"Candidate-asks-recruiter prompt (view 'candidate asking recruiter').","uniqueKey":"questions.items.[INDEX].is_candidate_asking_recruiter.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Candidate-asks-recruiter prompt (view 'candidate asking recruiter').","uniqueKey":"questions.items.[INDEX].is_candidate_asking_recruiter.oneOf.1","typeLabel":"null"}],"uniqueKey":"questions.items.[INDEX].is_candidate_asking_recruiter","typeLabel":"boolean | null"},"is_expert":{"oneOf":[{"type":"boolean","description":"Expert listening question (view 'with listening expert').","uniqueKey":"questions.items.[INDEX].is_expert.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Expert listening question (view 'with listening expert').","uniqueKey":"questions.items.[INDEX].is_expert.oneOf.1","typeLabel":"null"}],"uniqueKey":"questions.items.[INDEX].is_expert","typeLabel":"boolean | null"},"is_multiple_choice":{"oneOf":[{"type":"boolean","description":"Multiple-choice question (view 'multiple choice').","uniqueKey":"questions.items.[INDEX].is_multiple_choice.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Multiple-choice question (view 'multiple choice').","uniqueKey":"questions.items.[INDEX].is_multiple_choice.oneOf.1","typeLabel":"null"}],"uniqueKey":"questions.items.[INDEX].is_multiple_choice","typeLabel":"boolean | null"},"question_alternatives":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"questions.items.[INDEX].question_alternatives.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Alternative phrasings for the question.","uniqueKey":"questions.items.[INDEX].question_alternatives.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"Alternative phrasings for the question.","uniqueKey":"questions.items.[INDEX].question_alternatives.oneOf.1","typeLabel":"null"}],"uniqueKey":"questions.items.[INDEX].question_alternatives","typeLabel":"string[] | null"},"conditional_question_main_id":{"oneOf":[{"type":"string","description":"For a follow-up question, the id (the \"id\" field above) of the yes/no question (is_conditional) in this same array that decides whether it is asked. The yes/no question must appear earlier in the array. Use conditional_question_answer to choose the answer that shows it.","uniqueKey":"questions.items.[INDEX].conditional_question_main_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"For a follow-up question, the id (the \"id\" field above) of the yes/no question (is_conditional) in this same array that decides whether it is asked. The yes/no question must appear earlier in the array. Use conditional_question_answer to choose the answer that shows it.","uniqueKey":"questions.items.[INDEX].conditional_question_main_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"questions.items.[INDEX].conditional_question_main_id","typeLabel":"string | null"},"conditional_question_answer":{"oneOf":[{"type":"boolean","description":"With conditional_question_main_id: the answer to the yes/no question that shows this follow-up. `true` (the default) asks it after a yes, `false` after a no, so each answer can lead to its own follow-ups. Ignored on a question without conditional_question_main_id.","example":false,"uniqueKey":"questions.items.[INDEX].conditional_question_answer.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"With conditional_question_main_id: the answer to the yes/no question that shows this follow-up. `true` (the default) asks it after a yes, `false` after a no, so each answer can lead to its own follow-ups. Ignored on a question without conditional_question_main_id.","example":false,"uniqueKey":"questions.items.[INDEX].conditional_question_answer.oneOf.1","typeLabel":"null"}],"uniqueKey":"questions.items.[INDEX].conditional_question_answer","typeLabel":"boolean | null"},"is_skippable":{"oneOf":[{"type":"boolean","description":"The candidate may skip this question: the recorded (offline avatar) interview shows a Skip button on it, and a skipped question is saved without an answer. Defaults to false.","example":false,"uniqueKey":"questions.items.[INDEX].is_skippable.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"The candidate may skip this question: the recorded (offline avatar) interview shows a Skip button on it, and a skipped question is saved without an answer. Defaults to false.","example":false,"uniqueKey":"questions.items.[INDEX].is_skippable.oneOf.1","typeLabel":"null"}],"uniqueKey":"questions.items.[INDEX].is_skippable","typeLabel":"boolean | null"},"knowledge_base_id":{"oneOf":[{"type":"string","description":"Knowledge-base store id (uuid) the question draws context from.","uniqueKey":"questions.items.[INDEX].knowledge_base_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Knowledge-base store id (uuid) the question draws context from.","uniqueKey":"questions.items.[INDEX].knowledge_base_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"questions.items.[INDEX].knowledge_base_id","typeLabel":"string | null"},"external_id":{"oneOf":[{"type":"string","description":"External identifier stored on the question. job-interview-update matches on this first, so an ATS that owns stable ids can send its own array and have the diff line up without round-tripping our ids.","uniqueKey":"questions.items.[INDEX].external_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"External identifier stored on the question. job-interview-update matches on this first, so an ATS that owns stable ids can send its own array and have the diff line up without round-tripping our ids.","uniqueKey":"questions.items.[INDEX].external_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"questions.items.[INDEX].external_id","typeLabel":"string | null"},"external_data":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"questions.items.[INDEX].external_data.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"questions.items.[INDEX].external_data.oneOf.0.additionalProperties","typeLabel":"null"},"description":"Arbitrary JSON metadata stored on the question.","uniqueKey":"questions.items.[INDEX].external_data.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"questions.items.[INDEX].external_data.oneOf.1.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"questions.items.[INDEX].external_data.oneOf.1.additionalProperties","typeLabel":"null"},"description":"Arbitrary JSON metadata stored on the question.","uniqueKey":"questions.items.[INDEX].external_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"questions.items.[INDEX].external_data","typeLabel":"object | null"},"candidate_expectations_json":{"oneOf":[{"type":"object","properties":{"weak":{"type":"array","items":{"type":"string","uniqueKey":"questions.items.[INDEX].candidate_expectations_json.oneOf.0.weak.items.[INDEX]","typeLabel":"string"},"description":"Baseline requirements every viable candidate should meet (table stakes).","uniqueKey":"questions.items.[INDEX].candidate_expectations_json.oneOf.0.weak","typeLabel":"string[]"},"moderate":{"type":"array","items":{"type":"string","uniqueKey":"questions.items.[INDEX].candidate_expectations_json.oneOf.0.moderate.items.[INDEX]","typeLabel":"string"},"description":"Requirements expected of a solid, competent candidate.","uniqueKey":"questions.items.[INDEX].candidate_expectations_json.oneOf.0.moderate","typeLabel":"string[]"},"strong":{"type":"array","items":{"type":"string","uniqueKey":"questions.items.[INDEX].candidate_expectations_json.oneOf.0.strong.items.[INDEX]","typeLabel":"string"},"description":"High-bar requirements only standout candidates clear.","uniqueKey":"questions.items.[INDEX].candidate_expectations_json.oneOf.0.strong","typeLabel":"string[]"}},"description":"Per-question candidate expectations, bucketed by requirement level (weak/moderate/strong). Extra keys are preserved.","uniqueKey":"questions.items.[INDEX].candidate_expectations_json.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"weak":{"type":"array","items":{"type":"string"},"description":"Baseline requirements every viable candidate should meet (table stakes)."},"moderate":{"type":"array","items":{"type":"string"},"description":"Requirements expected of a solid, competent candidate."},"strong":{"type":"array","items":{"type":"string"},"description":"High-bar requirements only standout candidates clear."}},"description":"Per-question candidate expectations, bucketed by requirement level (weak/moderate/strong). Extra keys are preserved.","uniqueKey":"questions.items.[INDEX].candidate_expectations_json.oneOf.1","typeLabel":"null"}],"uniqueKey":"questions.items.[INDEX].candidate_expectations_json","typeLabel":"object | null"}},"required":["question"],"additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"questions.items.[INDEX].additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"questions.items.[INDEX].additionalProperties","typeLabel":"null"},"uniqueKey":"questions.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"Ordered list of interview questions to create as steps.","isRequired":true,"uniqueKey":"questions","typeLabel":"object[]"},"recording":{"oneOf":[{"type":"string","enum":["audio_first_5_answers","audio_all","video_all","video_first_5_answers","none"],"description":"Cheating/proctoring detection mode for candidate answers — this is NOT a full session recording. Video options also record the candidate. Omit, null or `none` 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. | `none`: No cheating detection.","example":"video_all","uniqueKey":"recording.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["audio_first_5_answers","audio_all","video_all","video_first_5_answers","none"],"description":"Cheating/proctoring detection mode for candidate answers — this is NOT a full session recording. Video options also record the candidate. Omit, null or `none` 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. | `none`: No cheating detection.","example":"video_all","uniqueKey":"recording.oneOf.1","typeLabel":"null"}],"uniqueKey":"recording","typeLabel":"enum\u003cstring> | null"},"recording_full_session":{"oneOf":[{"type":"string","enum":["audio_all","video_all","none"],"description":"Full interview-session recording (includes the avatar and voice) produced as a single file. Independent of `recording`. Omit, null or `none` 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. | `none`: No full-session recording.","example":"video_all","uniqueKey":"recording_full_session.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["audio_all","video_all","none"],"description":"Full interview-session recording (includes the avatar and voice) produced as a single file. Independent of `recording`. Omit, null or `none` 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. | `none`: No full-session recording.","example":"video_all","uniqueKey":"recording_full_session.oneOf.1","typeLabel":"null"}],"uniqueKey":"recording_full_session","typeLabel":"enum\u003cstring> | null"},"environment":{"type":"string","enum":["production","uat","development","demo"],"description":"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.","example":"production","uniqueKey":"environment","typeLabel":"enum\u003cstring>"},"interview_type":{"oneOf":[{"type":"string","enum":["pre-screening","pre-screening-with-test-questions","second-interview","remote-freelancer-verification","strength-based-interview","potential-based-interview","process-verification-from-knowledge-base","knockout-screening"],"description":"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. | `knockout-screening`: Knock-out screening — a short (about 5 minute) check of the role's must-haves with closed questions; ends early, politely, when a must-have is clearly not met. On creation it defaults custom_scoring.early_stop to true (where the avatar supports early stop) and max_followups to 1 unless you send them.","example":"pre-screening-with-test-questions","uniqueKey":"interview_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["pre-screening","pre-screening-with-test-questions","second-interview","remote-freelancer-verification","strength-based-interview","potential-based-interview","process-verification-from-knowledge-base","knockout-screening"],"description":"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. | `knockout-screening`: Knock-out screening — a short (about 5 minute) check of the role's must-haves with closed questions; ends early, politely, when a must-have is clearly not met. On creation it defaults custom_scoring.early_stop to true (where the avatar supports early stop) and max_followups to 1 unless you send them.","example":"pre-screening-with-test-questions","uniqueKey":"interview_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"interview_type","typeLabel":"enum\u003cstring> | null"},"seniority_level":{"oneOf":[{"type":"string","enum":["entry-level","intermediate","senior","managerial","director","executive"],"description":"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.","example":"senior","uniqueKey":"seniority_level.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["entry-level","intermediate","senior","managerial","director","executive"],"description":"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.","example":"senior","uniqueKey":"seniority_level.oneOf.1","typeLabel":"null"}],"uniqueKey":"seniority_level","typeLabel":"enum\u003cstring> | null"},"result_view":{"oneOf":[{"type":"string","enum":["none","minimal","minimal_with_score","advanced","full","full_expand_scores"],"description":"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.","example":"full","uniqueKey":"result_view.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["none","minimal","minimal_with_score","advanced","full","full_expand_scores"],"description":"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.","example":"full","uniqueKey":"result_view.oneOf.1","typeLabel":"null"}],"uniqueKey":"result_view","typeLabel":"enum\u003cstring> | null"},"interview_conversation_speed":{"oneOf":[{"type":"string","enum":["slower","normal","faster","fluent"],"description":"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. | `fluent`: Talking pace: the avatar answers 300 ms after the candidate stops speaking. A pause mid-sentence also ends their turn.","example":"normal","uniqueKey":"interview_conversation_speed.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["slower","normal","faster","fluent"],"description":"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. | `fluent`: Talking pace: the avatar answers 300 ms after the candidate stops speaking. A pause mid-sentence also ends their turn.","example":"normal","uniqueKey":"interview_conversation_speed.oneOf.1","typeLabel":"null"}],"uniqueKey":"interview_conversation_speed","typeLabel":"enum\u003cstring> | null"},"candidate_video_introduction":{"oneOf":[{"type":"string","enum":["optional","required"],"description":"Whether a candidate video introduction is optional or required.","uniqueKey":"candidate_video_introduction.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["optional","required"],"description":"Whether a candidate video introduction is optional or required.","uniqueKey":"candidate_video_introduction.oneOf.1","typeLabel":"null"}],"uniqueKey":"candidate_video_introduction","typeLabel":"enum\u003cstring> | null"},"interview_tone":{"oneOf":[{"type":"string","enum":["relaxed","simple","professional","persuasive","exact"],"description":"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 where the wording is a script.","example":"professional","uniqueKey":"interview_tone.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["relaxed","simple","professional","persuasive","exact"],"description":"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 where the wording is a script.","example":"professional","uniqueKey":"interview_tone.oneOf.1","typeLabel":"null"}],"uniqueKey":"interview_tone","typeLabel":"enum\u003cstring> | null"},"interview_attempts":{"oneOf":[{"type":"number","description":"Allowed attempts, 1-20.","example":1,"uniqueKey":"interview_attempts.oneOf.0","typeLabel":"number"},{"type":"null","description":"Allowed attempts, 1-20.","example":1,"uniqueKey":"interview_attempts.oneOf.1","typeLabel":"null"}],"uniqueKey":"interview_attempts","typeLabel":"number | null"},"questions_random_subset":{"oneOf":[{"type":"number","description":"Fraction of questions to randomly ask, between 0.01 and 0.9.","uniqueKey":"questions_random_subset.oneOf.0","typeLabel":"number"},{"type":"null","description":"Fraction of questions to randomly ask, between 0.01 and 0.9.","uniqueKey":"questions_random_subset.oneOf.1","typeLabel":"null"}],"uniqueKey":"questions_random_subset","typeLabel":"number | null"},"max_followups":{"oneOf":[{"type":"integer","minimum":0,"maximum":999,"description":"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).","example":2,"uniqueKey":"max_followups.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":0,"maximum":999,"description":"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).","example":2,"uniqueKey":"max_followups.oneOf.1","typeLabel":"null"}],"uniqueKey":"max_followups","typeLabel":"integer | null"},"code":{"oneOf":[{"type":"string","description":"Optional external code/reference.","uniqueKey":"code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional external code/reference.","uniqueKey":"code.oneOf.1","typeLabel":"null"}],"uniqueKey":"code","typeLabel":"string | null"},"cover_image_url":{"oneOf":[{"type":"string","description":"Cover image URL.","uniqueKey":"cover_image_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Cover image URL.","uniqueKey":"cover_image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"cover_image_url","typeLabel":"string | null"},"interview_department":{"oneOf":[{"type":"string","description":"Department the position belongs to.","example":"Engineering","uniqueKey":"interview_department.oneOf.0","typeLabel":"string"},{"type":"null","description":"Department the position belongs to.","example":"Engineering","uniqueKey":"interview_department.oneOf.1","typeLabel":"null"}],"uniqueKey":"interview_department","typeLabel":"string | null"},"interview_salary":{"oneOf":[{"type":"string","description":"Salary range shown for the position.","example":"$80k - $100k","uniqueKey":"interview_salary.oneOf.0","typeLabel":"string"},{"type":"null","description":"Salary range shown for the position.","example":"$80k - $100k","uniqueKey":"interview_salary.oneOf.1","typeLabel":"null"}],"uniqueKey":"interview_salary","typeLabel":"string | null"},"interview_available_till":{"oneOf":[{"type":"string","description":"ISO date/time after which the interview is no longer available to candidates. null keeps it always available.","example":"2026-12-31","uniqueKey":"interview_available_till.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO date/time after which the interview is no longer available to candidates. null keeps it always available.","example":"2026-12-31","uniqueKey":"interview_available_till.oneOf.1","typeLabel":"null"}],"uniqueKey":"interview_available_till","typeLabel":"string | null"},"recruiter_profile_id":{"oneOf":[{"type":"string","description":"Profile id of the recruiter owning this interview. A user of the company who is not read only: an owner, recruiter or admin from merchant-user-list.","uniqueKey":"recruiter_profile_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Profile id of the recruiter owning this interview. A user of the company who is not read only: an owner, recruiter or admin from merchant-user-list.","uniqueKey":"recruiter_profile_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"recruiter_profile_id","typeLabel":"string | null"},"hiring_for_company":{"oneOf":[{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"End-employer name. Omit/null when hiring for yourself, 'undisclosed' for an unnamed external client, or the client's company name.","example":"Unimo Enterprises","uniqueKey":"hiring_for_company.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"End-employer name. Omit/null when hiring for yourself, 'undisclosed' for an unnamed external client, or the client's company name.","example":"Unimo Enterprises","uniqueKey":"hiring_for_company.oneOf.0.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"hiring_for_company.oneOf.0.name","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","description":"Short description of the end employer, used as background context by the agent.","example":"Unimo Enterprises is a leading logistics and supply chain solutions provider.","uniqueKey":"hiring_for_company.oneOf.0.description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Short description of the end employer, used as background context by the agent.","example":"Unimo Enterprises is a leading logistics and supply chain solutions provider.","uniqueKey":"hiring_for_company.oneOf.0.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"hiring_for_company.oneOf.0.description","typeLabel":"string | null"},"location":{"oneOf":[{"type":"string","description":"Primary location of the end employer.","example":"Sri Lanka","uniqueKey":"hiring_for_company.oneOf.0.location.oneOf.0","typeLabel":"string"},{"type":"null","description":"Primary location of the end employer.","example":"Sri Lanka","uniqueKey":"hiring_for_company.oneOf.0.location.oneOf.1","typeLabel":"null"}],"uniqueKey":"hiring_for_company.oneOf.0.location","typeLabel":"string | null"},"sector":{"oneOf":[{"type":"string","description":"Industry / sector of the end employer.","example":"Logistics and Supply Chain","uniqueKey":"hiring_for_company.oneOf.0.sector.oneOf.0","typeLabel":"string"},{"type":"null","description":"Industry / sector of the end employer.","example":"Logistics and Supply Chain","uniqueKey":"hiring_for_company.oneOf.0.sector.oneOf.1","typeLabel":"null"}],"uniqueKey":"hiring_for_company.oneOf.0.sector","typeLabel":"string | null"},"company_size":{"oneOf":[{"type":"string","description":"Approximate headcount of the end employer.","example":"100-200","uniqueKey":"hiring_for_company.oneOf.0.company_size.oneOf.0","typeLabel":"string"},{"type":"null","description":"Approximate headcount of the end employer.","example":"100-200","uniqueKey":"hiring_for_company.oneOf.0.company_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"hiring_for_company.oneOf.0.company_size","typeLabel":"string | null"}},"description":"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: '\u003ccompany>' } plus optional description/location/sector/company_size for a named client. Stored in creation_parameters.hiring_for_company.","example":{"name":"undisclosed"},"uniqueKey":"hiring_for_company.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"name":{"oneOf":[{"type":"string","description":"End-employer name. Omit/null when hiring for yourself, 'undisclosed' for an unnamed external client, or the client's company name.","example":"Unimo Enterprises"},{"type":"null","description":"End-employer name. Omit/null when hiring for yourself, 'undisclosed' for an unnamed external client, or the client's company name.","example":"Unimo Enterprises"}]},"description":{"oneOf":[{"type":"string","description":"Short description of the end employer, used as background context by the agent.","example":"Unimo Enterprises is a leading logistics and supply chain solutions provider."},{"type":"null","description":"Short description of the end employer, used as background context by the agent.","example":"Unimo Enterprises is a leading logistics and supply chain solutions provider."}]},"location":{"oneOf":[{"type":"string","description":"Primary location of the end employer.","example":"Sri Lanka"},{"type":"null","description":"Primary location of the end employer.","example":"Sri Lanka"}]},"sector":{"oneOf":[{"type":"string","description":"Industry / sector of the end employer.","example":"Logistics and Supply Chain"},{"type":"null","description":"Industry / sector of the end employer.","example":"Logistics and Supply Chain"}]},"company_size":{"oneOf":[{"type":"string","description":"Approximate headcount of the end employer.","example":"100-200"},{"type":"null","description":"Approximate headcount of the end employer.","example":"100-200"}]}},"description":"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: '\u003ccompany>' } plus optional description/location/sector/company_size for a named client. Stored in creation_parameters.hiring_for_company.","example":{"name":"undisclosed"},"uniqueKey":"hiring_for_company.oneOf.1","typeLabel":"null"}],"uniqueKey":"hiring_for_company","typeLabel":"object | null"},"tags":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"tags.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"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 `merchant_public` (or the platform's own `public`) are listed.","example":["interview-practice","sales"],"uniqueKey":"tags.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"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 `merchant_public` (or the platform's own `public`) are listed.","example":["interview-practice","sales"],"uniqueKey":"tags.oneOf.1","typeLabel":"null"}],"uniqueKey":"tags","typeLabel":"string[] | null"},"required_pronunciation":{"oneOf":[{"type":"boolean","description":"Require pronunciation assessment (restricts to pronunciation-capable languages). Defaults to false.","example":false,"uniqueKey":"required_pronunciation.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Require pronunciation assessment (restricts to pronunciation-capable languages). Defaults to false.","example":false,"uniqueKey":"required_pronunciation.oneOf.1","typeLabel":"null"}],"uniqueKey":"required_pronunciation","typeLabel":"boolean | null"},"result_enable_edit_transcript":{"oneOf":[{"type":"boolean","description":"Allow editing the transcript on the result view. Defaults to true.","example":true,"uniqueKey":"result_enable_edit_transcript.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Allow editing the transcript on the result view. Defaults to true.","example":true,"uniqueKey":"result_enable_edit_transcript.oneOf.1","typeLabel":"null"}],"uniqueKey":"result_enable_edit_transcript","typeLabel":"boolean | null"},"pdf_export_auto_config":{"oneOf":[{"type":"object","properties":{"mojito_language_code":{"type":"string","enum":["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"],"description":"Report language code (one of the listed codes).","example":"en","uniqueKey":"pdf_export_auto_config.oneOf.0.mojito_language_code","typeLabel":"enum\u003cstring>"},"contact_details":{"type":"boolean","description":"Include candidate contact details.","uniqueKey":"pdf_export_auto_config.oneOf.0.contact_details","typeLabel":"boolean"},"ai_recruiter_assessment":{"type":"boolean","description":"Include the AI recruiter assessment.","uniqueKey":"pdf_export_auto_config.oneOf.0.ai_recruiter_assessment","typeLabel":"boolean"},"ai_scoring_rubric":{"type":"boolean","description":"Include the AI scoring rubric.","uniqueKey":"pdf_export_auto_config.oneOf.0.ai_scoring_rubric","typeLabel":"boolean"},"analytics":{"type":"boolean","description":"Include analytics.","uniqueKey":"pdf_export_auto_config.oneOf.0.analytics","typeLabel":"boolean"},"files":{"type":"boolean","description":"Include uploaded candidate files.","uniqueKey":"pdf_export_auto_config.oneOf.0.files","typeLabel":"boolean"},"transcript":{"type":"boolean","description":"Include the interview transcript.","uniqueKey":"pdf_export_auto_config.oneOf.0.transcript","typeLabel":"boolean"},"answer_recording":{"type":"boolean","description":"Include per-answer recordings.","uniqueKey":"pdf_export_auto_config.oneOf.0.answer_recording","typeLabel":"boolean"},"session_recording":{"type":"boolean","description":"Include the full-session recording.","uniqueKey":"pdf_export_auto_config.oneOf.0.session_recording","typeLabel":"boolean"},"group_by_question":{"type":"boolean","description":"Group transcript answers by expected question.","uniqueKey":"pdf_export_auto_config.oneOf.0.group_by_question","typeLabel":"boolean"},"template":{"type":"string","enum":["classic","modern","one_pager"],"description":"Report layout: classic, modern, or one_pager. Omit for the merchant default (modern when unset).","uniqueKey":"pdf_export_auto_config.oneOf.0.template","typeLabel":"enum\u003cstring>"}},"description":"Auto-generate a candidate PDF report with these options once the interview completes. null disables auto-export.","uniqueKey":"pdf_export_auto_config.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"mojito_language_code":{"type":"string","enum":["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"],"description":"Report language code (one of the listed codes).","example":"en"},"contact_details":{"type":"boolean","description":"Include candidate contact details."},"ai_recruiter_assessment":{"type":"boolean","description":"Include the AI recruiter assessment."},"ai_scoring_rubric":{"type":"boolean","description":"Include the AI scoring rubric."},"analytics":{"type":"boolean","description":"Include analytics."},"files":{"type":"boolean","description":"Include uploaded candidate files."},"transcript":{"type":"boolean","description":"Include the interview transcript."},"answer_recording":{"type":"boolean","description":"Include per-answer recordings."},"session_recording":{"type":"boolean","description":"Include the full-session recording."},"group_by_question":{"type":"boolean","description":"Group transcript answers by expected question."},"template":{"type":"string","enum":["classic","modern","one_pager"],"description":"Report layout: classic, modern, or one_pager. Omit for the merchant default (modern when unset)."}},"description":"Auto-generate a candidate PDF report with these options once the interview completes. null disables auto-export.","uniqueKey":"pdf_export_auto_config.oneOf.1","typeLabel":"null"}],"uniqueKey":"pdf_export_auto_config","typeLabel":"object | null"},"knowledge_base_store_id":{"oneOf":[{"type":"string","format":"uuid","description":"Optional knowledge base store id; validated for existence.","uniqueKey":"knowledge_base_store_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Optional knowledge base store id; validated for existence.","uniqueKey":"knowledge_base_store_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"knowledge_base_store_id","typeLabel":"string\u003cuuid> | null"},"merchant_id":{"oneOf":[{"type":"string","description":"Target merchant id (admins / sub-merchant only).","uniqueKey":"merchant_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Target merchant id (admins / sub-merchant only).","uniqueKey":"merchant_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"merchant_id","typeLabel":"string | null"},"description_long":{"oneOf":[{"type":"string","description":"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","uniqueKey":"description_long.oneOf.0","typeLabel":"string"},{"type":"null","description":"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","uniqueKey":"description_long.oneOf.1","typeLabel":"null"}],"uniqueKey":"description_long","typeLabel":"string | null"},"candidate_expectations":{"oneOf":[{"type":"string","description":"Free-text candidate expectations.","uniqueKey":"candidate_expectations.oneOf.0","typeLabel":"string"},{"type":"null","description":"Free-text candidate expectations.","uniqueKey":"candidate_expectations.oneOf.1","typeLabel":"null"}],"uniqueKey":"candidate_expectations","typeLabel":"string | null"},"candidate_expectations_json":{"oneOf":[{"type":"object","properties":{"weak":{"type":"array","items":{"type":"string","uniqueKey":"candidate_expectations_json.oneOf.0.weak.items.[INDEX]","typeLabel":"string"},"description":"Baseline requirements every viable candidate should meet (table stakes).","uniqueKey":"candidate_expectations_json.oneOf.0.weak","typeLabel":"string[]"},"moderate":{"type":"array","items":{"type":"string","uniqueKey":"candidate_expectations_json.oneOf.0.moderate.items.[INDEX]","typeLabel":"string"},"description":"Requirements expected of a solid, competent candidate.","uniqueKey":"candidate_expectations_json.oneOf.0.moderate","typeLabel":"string[]"},"strong":{"type":"array","items":{"type":"string","uniqueKey":"candidate_expectations_json.oneOf.0.strong.items.[INDEX]","typeLabel":"string"},"description":"High-bar requirements only standout candidates clear.","uniqueKey":"candidate_expectations_json.oneOf.0.strong","typeLabel":"string[]"}},"description":"Pre-generated candidate expectations, bucketed by requirement level (weak/moderate/strong); auto-generated when omitted for type=interview. Extra keys are preserved.","uniqueKey":"candidate_expectations_json.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"weak":{"type":"array","items":{"type":"string"},"description":"Baseline requirements every viable candidate should meet (table stakes)."},"moderate":{"type":"array","items":{"type":"string"},"description":"Requirements expected of a solid, competent candidate."},"strong":{"type":"array","items":{"type":"string"},"description":"High-bar requirements only standout candidates clear."}},"description":"Pre-generated candidate expectations, bucketed by requirement level (weak/moderate/strong); auto-generated when omitted for type=interview. Extra keys are preserved.","uniqueKey":"candidate_expectations_json.oneOf.1","typeLabel":"null"}],"uniqueKey":"candidate_expectations_json","typeLabel":"object | null"},"custom_scoring":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"custom_scoring.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"custom_scoring.oneOf.0.additionalProperties","typeLabel":"null"},"description":"Custom scoring overrides merged with defaults.","uniqueKey":"custom_scoring.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"custom_scoring.oneOf.1.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"custom_scoring.oneOf.1.additionalProperties","typeLabel":"null"},"description":"Custom scoring overrides merged with defaults.","uniqueKey":"custom_scoring.oneOf.1","typeLabel":"null"}],"uniqueKey":"custom_scoring","typeLabel":"object | null"},"additional_context":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"additional_context.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"additional_context.oneOf.0.additionalProperties","typeLabel":"null"},"description":"Extra context forwarded to expectation generation.","uniqueKey":"additional_context.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"additional_context.oneOf.1.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"additional_context.oneOf.1.additionalProperties","typeLabel":"null"},"description":"Extra context forwarded to expectation generation.","uniqueKey":"additional_context.oneOf.1","typeLabel":"null"}],"uniqueKey":"additional_context","typeLabel":"object | null"},"instructional_video":{"oneOf":[{"type":"boolean","description":"Enable an instructional video before approval.","uniqueKey":"instructional_video.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Enable an instructional video before approval.","uniqueKey":"instructional_video.oneOf.1","typeLabel":"null"}],"uniqueKey":"instructional_video","typeLabel":"boolean | null"},"instructional_video_custom_text":{"oneOf":[{"type":"string","description":"Custom text for the instructional video.","uniqueKey":"instructional_video_custom_text.oneOf.0","typeLabel":"string"},{"type":"null","description":"Custom text for the instructional video.","uniqueKey":"instructional_video_custom_text.oneOf.1","typeLabel":"null"}],"uniqueKey":"instructional_video_custom_text","typeLabel":"string | null"},"disable_deduplication":{"oneOf":[{"type":"boolean","description":"When true, skip step deduplication on insert.","uniqueKey":"disable_deduplication.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"When true, skip step deduplication on insert.","uniqueKey":"disable_deduplication.oneOf.1","typeLabel":"null"}],"uniqueKey":"disable_deduplication","typeLabel":"boolean | null"},"welcome_message":{"oneOf":[{"type":"string","description":"Custom welcome message.","uniqueKey":"welcome_message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Custom welcome message.","uniqueKey":"welcome_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"welcome_message","typeLabel":"string | null"},"thank_you_message":{"oneOf":[{"type":"string","description":"Custom thank-you message.","uniqueKey":"thank_you_message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Custom thank-you message.","uniqueKey":"thank_you_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"thank_you_message","typeLabel":"string | null"},"microphone_test_message":{"oneOf":[{"type":"string","description":"Custom microphone-test instruction for a recorded (offline avatar) interview, spoken by the avatar and shown on screen before the first question. Omitted uses the default prompt in the interview language.","example":"Before we start, let's check your microphone. Say \"Hello, I'm ready.\"","uniqueKey":"microphone_test_message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Custom microphone-test instruction for a recorded (offline avatar) interview, spoken by the avatar and shown on screen before the first question. Omitted uses the default prompt in the interview language.","example":"Before we start, let's check your microphone. Say \"Hello, I'm ready.\"","uniqueKey":"microphone_test_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"microphone_test_message","typeLabel":"string | null"},"microphone_test_no_speech_message":{"oneOf":[{"type":"string","description":"Custom text shown when the microphone test hears nothing. Omitted uses the default text in the candidate's language.","example":"We can't hear you. Check your microphone and try again.","uniqueKey":"microphone_test_no_speech_message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Custom text shown when the microphone test hears nothing. Omitted uses the default text in the candidate's language.","example":"We can't hear you. Check your microphone and try again.","uniqueKey":"microphone_test_no_speech_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"microphone_test_no_speech_message","typeLabel":"string | null"},"is_embedded":{"oneOf":[{"type":"boolean","description":"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.","uniqueKey":"is_embedded.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"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.","uniqueKey":"is_embedded.oneOf.1","typeLabel":"null"}],"uniqueKey":"is_embedded","typeLabel":"boolean | null"},"interview_category":{"oneOf":[{"type":"string","description":"Job category shown on public listings, above the department (free text, e.g. \"Ashore\"). Blank is stored as null.","example":"Ashore","uniqueKey":"interview_category.oneOf.0","typeLabel":"string"},{"type":"null","description":"Job category shown on public listings, above the department (free text, e.g. \"Ashore\"). Blank is stored as null.","example":"Ashore","uniqueKey":"interview_category.oneOf.1","typeLabel":"null"}],"uniqueKey":"interview_category","typeLabel":"string | null"},"country_availability":{"oneOf":[{"type":"object","properties":{"countries_allowed":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z]{2}$","uniqueKey":"country_availability.oneOf.0.countries_allowed.items.[INDEX]","typeLabel":"string"},"description":"Available ONLY to candidates in these countries (ISO 3166-1 alpha-2).","example":["PH","IN"],"uniqueKey":"country_availability.oneOf.0.countries_allowed","typeLabel":"string[]"},"countries_allowed_eu":{"type":"boolean","description":"Adds every EU country (plus EEA and Switzerland) to countries_allowed.","uniqueKey":"country_availability.oneOf.0.countries_allowed_eu","typeLabel":"boolean"},"countries_blocked":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z]{2}$","uniqueKey":"country_availability.oneOf.0.countries_blocked.items.[INDEX]","typeLabel":"string"},"description":"NOT available to candidates in these countries (ISO 3166-1 alpha-2). Wins over the allowed side.","example":["US"],"uniqueKey":"country_availability.oneOf.0.countries_blocked","typeLabel":"string[]"},"countries_blocked_eu":{"type":"boolean","description":"Adds every EU country (plus EEA and Switzerland) to countries_blocked.","uniqueKey":"country_availability.oneOf.0.countries_blocked_eu","typeLabel":"boolean"}},"description":"Which countries the interview / position is open to on the candidate portal, judged by the IP address the candidate opens it from (an unknown location only passes when countries_allowed / countries_allowed_eu are empty). From a closed country it is left out of the portal listings, and a direct link shows \"not available in your region\". Invited candidates (personal invitation links) and candidates who already started keep access; API and MCP calls themselves are never restricted. Null = not used, every country.","uniqueKey":"country_availability.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"countries_allowed":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z]{2}$"},"description":"Available ONLY to candidates in these countries (ISO 3166-1 alpha-2).","example":["PH","IN"]},"countries_allowed_eu":{"type":"boolean","description":"Adds every EU country (plus EEA and Switzerland) to countries_allowed."},"countries_blocked":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z]{2}$"},"description":"NOT available to candidates in these countries (ISO 3166-1 alpha-2). Wins over the allowed side.","example":["US"]},"countries_blocked_eu":{"type":"boolean","description":"Adds every EU country (plus EEA and Switzerland) to countries_blocked."}},"description":"Which countries the interview / position is open to on the candidate portal, judged by the IP address the candidate opens it from (an unknown location only passes when countries_allowed / countries_allowed_eu are empty). From a closed country it is left out of the portal listings, and a direct link shows \"not available in your region\". Invited candidates (personal invitation links) and candidates who already started keep access; API and MCP calls themselves are never restricted. Null = not used, every country.","uniqueKey":"country_availability.oneOf.1","typeLabel":"null"}],"uniqueKey":"country_availability","typeLabel":"object | null"},"candidate_notification_channel":{"oneOf":[{"type":"string","enum":["reminders","last_reminder","all"],"description":"SMS / WhatsApp notifications to the candidate, sent alongside the e-mails: \"reminders\" = with both e-mail reminders (day 1 and day 3); \"last_reminder\" = only with the final day-3 reminder; \"all\" = invitation, both reminders and the pre-screening-accepted step. null switches them off. WhatsApp is tried first, SMS when the number is not on WhatsApp. Available on paid plans (Starter and above) and needs a phone number on the candidate.","uniqueKey":"candidate_notification_channel.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["reminders","last_reminder","all"],"description":"SMS / WhatsApp notifications to the candidate, sent alongside the e-mails: \"reminders\" = with both e-mail reminders (day 1 and day 3); \"last_reminder\" = only with the final day-3 reminder; \"all\" = invitation, both reminders and the pre-screening-accepted step. null switches them off. WhatsApp is tried first, SMS when the number is not on WhatsApp. Available on paid plans (Starter and above) and needs a phone number on the candidate.","uniqueKey":"candidate_notification_channel.oneOf.1","typeLabel":"null"}],"uniqueKey":"candidate_notification_channel","typeLabel":"enum\u003cstring> | null"}},"required":["name","location","interview_template_id","mojito_language_code","description","status","type","visibility","questions"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"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":"\u003cstring>","id":"\u003cstring>","duration":123,"mojito_language_code":"en","label":"\u003cstring>","is_conditional":true,"is_without_scoring":true,"is_candidate_asking_recruiter":true,"is_expert":true,"is_multiple_choice":true,"question_alternatives":["\u003cstring>"],"conditional_question_main_id":"\u003cstring>","conditional_question_answer":false,"is_skippable":false,"knowledge_base_id":"\u003cstring>","external_id":"\u003cstring>","external_data":{},"candidate_expectations_json":{"weak":["\u003cstring>"],"moderate":["\u003cstring>"],"strong":["\u003cstring>"]}}],"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":"\u003cstring>","cover_image_url":"\u003cstring>","interview_department":"Engineering","interview_salary":"$80k - $100k","interview_available_till":"2026-12-31","recruiter_profile_id":"\u003cstring>","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":"3c90c3cc-0d44-4b50-8888-8dd25736052a","merchant_id":"\u003cstring>","description_long":"\u003cstring>","candidate_expectations":"\u003cstring>","candidate_expectations_json":{"weak":["\u003cstring>"],"moderate":["\u003cstring>"],"strong":["\u003cstring>"]},"custom_scoring":{},"additional_context":{},"instructional_video":true,"instructional_video_custom_text":"\u003cstring>","disable_deduplication":true,"welcome_message":"\u003cstring>","thank_you_message":"\u003cstring>","microphone_test_message":"Before we start, let's check your microphone. Say \"Hello, I'm ready.\"","microphone_test_no_speech_message":"We can't hear you. Check your microphone and try again.","is_embedded":true,"interview_category":"Ashore","country_availability":{"countries_allowed":["PH","IN"],"countries_allowed_eu":true,"countries_blocked":["US"],"countries_blocked_eu":true}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"8c9a50e0-3876-4642-8983-054b99cf71a1":{"description":"Interview created.","content":{"application/json":{"schema":{"type":"object","properties":{"interview_def_set_id":{"type":"string","description":"Id of the newly created interview definition set.","isRequired":true,"uniqueKey":"interview_def_set_id","typeLabel":"string"},"embed_id":{"type":"string","description":"Embed id, present only when is_embedded=true.","uniqueKey":"embed_id","typeLabel":"string"},"embed_signing_key":{"type":"string","description":"Embed signing key, present only when is_embedded=true.","uniqueKey":"embed_signing_key","typeLabel":"string"}},"required":["interview_def_set_id"],"description":"The created interview definition set id, plus embed credentials when is_embedded=true.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"interview_def_set_id":"\u003cstring>","embed_id":"\u003cstring>","embed_signing_key":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"3d402db3-17e0-4937-ab04-1e2dc099afba":{"description":"Missing, expired or invalid access token.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Field is required.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"name":{"type":"string","example":"interview_result_id","uniqueKey":"name","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Field is required.","name":"interview_result_id"}}},"exampleType":"generated"}},"exampleType":"generated"},"cc795b78-556d-4e4a-9405-25ba5ce730dd":{"description":"Your token is not allowed to use this endpoint (it is not a merchant, merchant owner or admin token).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Field is required.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"name":{"type":"string","example":"interview_result_id","uniqueKey":"name","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Field is required.","name":"interview_result_id"}}},"exampleType":"generated"}},"exampleType":"generated"},"9c08f47a-a1e2-4a4f-8b73-f1783c7f6cf2":{"description":"Validation error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Field is required.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"name":{"type":"string","example":"interview_result_id","uniqueKey":"name","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Field is required.","name":"interview_result_id"}}},"exampleType":"generated"}},"exampleType":"generated"},"c48a07c2-c4bb-4e07-ac98-19ee31362109":{"description":"Server error (includes unresolved template/knowledge-base/language ids).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Field is required.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"name":{"type":"string","example":"interview_result_id","uniqueKey":"name","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Field is required.","name":"interview_result_id"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"c69d1a08-cfe6-481e-96bd-022dc73d250e":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Supabase JWT — `Authorization: Bearer \u003ctoken>`.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"454fcb62-7052-4847-a728-ecf5ade065a6":{"url":"https://cool.jobmojito.com/functions/v1","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Supabase JWT — `Authorization: Bearer \u003ctoken>`.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Supabase JWT — `Authorization: Bearer \u003ctoken>`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"https://cool.jobmojito.com/functions/v1/openapi"},"subdomain":"jobmojito","siteName":"JobMojito Developer / Agent","title":"Create an interview from an array of questions - JobMojito Developer / Agent","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-09T15:00:44.103Z","originalFileLocation":"api-reference/interviews/create-an-interview-from-an-array-of-questions.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"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. job-interview-create with questions does exactly the same. For owners, recruiters and admins; hiring managers (read-only accounts) and other tokens get 403.\">\u003cmeta data-mint-head name=\"application-name\" content=\"JobMojito Developer / Agent\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/jobmojito/GZwP9Qkfq6UpkrB8/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/jobmojito/GZwP9Qkfq6UpkrB8/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/jobmojito/GZwP9Qkfq6UpkrB8/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/jobmojito/GZwP9Qkfq6UpkrB8/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/jobmojito/GZwP9Qkfq6UpkrB8/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/jobmojito/GZwP9Qkfq6UpkrB8/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/jobmojito/GZwP9Qkfq6UpkrB8/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/jobmojito/GZwP9Qkfq6UpkrB8/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/jobmojito/GZwP9Qkfq6UpkrB8/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create an interview from an array of questions - JobMojito Developer / Agent\">\u003cmeta data-mint-head property=\"og:description\" content=\"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. job-interview-create with questions does exactly the same. For owners, recruiters and admins; hiring managers (read-only accounts) and other tokens get 403.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"JobMojito Developer / Agent\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developer.jobmojito.com/api-reference/interviews/create-an-interview-from-an-array-of-questions\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://jobmojito.mintlify.site/_mintlify/api/og/v2?division=Interviews\u0026amp;title=Create+an+interview+from+an+array+of+questions\u0026amp;description=Creates+a+new+interview+definition+set+from+a+caller-provided+array+of+questions%2C+builds+its+default+and+generated+steps%2C+optionally+activates+it%2C+and+optionall\u0026amp;theme=87c5e3cf7199050cbbf4cb49\u0026amp;signature=5831e9beda311d77c3ec0201e427ad27c7980190b3cfe3852949dd0fc2ecd2b3\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create an interview from an array of questions - JobMojito Developer / Agent\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"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. job-interview-create with questions does exactly the same. For owners, recruiters and admins; hiring managers (read-only accounts) and other tokens get 403.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://jobmojito.mintlify.site/_mintlify/api/og/v2?division=Interviews\u0026amp;title=Create+an+interview+from+an+array+of+questions\u0026amp;description=Creates+a+new+interview+definition+set+from+a+caller-provided+array+of+questions%2C+builds+its+default+and+generated+steps%2C+optionally+activates+it%2C+and+optionall\u0026amp;theme=87c5e3cf7199050cbbf4cb49\u0026amp;signature=5831e9beda311d77c3ec0201e427ad27c7980190b3cfe3852949dd0fc2ecd2b3\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/jobmojito/GZwP9Qkfq6UpkrB8/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"JobMojito Developer / Agent\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#639C42\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developer.jobmojito.com/api-reference/interviews/create-an-interview-from-an-array-of-questions\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/interviews/create-an-interview-from-an-array-of-questions.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developer.jobmojito.com/#organization\",\"name\":\"JobMojito Developer / Agent\",\"url\":\"https://developer.jobmojito.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/jobmojito/DU7xAw61G9kqV1zG/images/jobmojito-light.svg?fit=max\u0026auto=format\u0026n=DU7xAw61G9kqV1zG\u0026q=85\u0026s=6c00cb5f3104ffb6325dacc0818bba69\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developer.jobmojito.com#website\",\"name\":\"JobMojito Developer / Agent\",\"url\":\"https://developer.jobmojito.com\",\"publisher\":{\"@id\":\"https://developer.jobmojito.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developer.jobmojito.com/api-reference/interviews/create-an-interview-from-an-array-of-questions#webpage\",\"url\":\"https://developer.jobmojito.com/api-reference/interviews/create-an-interview-from-an-array-of-questions\",\"name\":\"Create an interview from an array of questions\",\"description\":\"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. job-interview-create with questions does exactly the same. For owners, recruiters and admins; hiring managers (read-only accounts) and other tokens get 403.\",\"dateModified\":\"2026-11-09T15:00:44.103Z\",\"isPartOf\":{\"@id\":\"https://developer.jobmojito.com#website\"},\"breadcrumb\":{\"@id\":\"https://developer.jobmojito.com/api-reference/interviews/create-an-interview-from-an-array-of-questions#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developer.jobmojito.com/api-reference/interviews/create-an-interview-from-an-array-of-questions#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Interviews\",\"item\":\"https://developer.jobmojito.com/api-reference/interviews/create-a-new-interview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create an interview from an array of questions\",\"item\":\"https://developer.jobmojito.com/api-reference/interviews/create-an-interview-from-an-array-of-questions\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developer.jobmojito.com/api-reference/interviews/create-an-interview-from-an-array-of-questions#apireference\",\"headline\":\"Create an interview from an array of questions\",\"name\":\"Create an interview from an array of questions\",\"description\":\"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. job-interview-create with questions does exactly the same. For owners, recruiters and admins; hiring managers (read-only accounts) and other tokens get 403.\",\"url\":\"https://developer.jobmojito.com/api-reference/interviews/create-an-interview-from-an-array-of-questions\",\"mainEntityOfPage\":{\"@id\":\"https://developer.jobmojito.com/api-reference/interviews/create-an-interview-from-an-array-of-questions#webpage\"},\"dateModified\":\"2026-11-09T15:00:44.103Z\",\"publisher\":{\"@id\":\"https://developer.jobmojito.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developer.jobmojito.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"JobMojito Developer / Agent\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"JobMojito Developer / Agent\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/interviews/create-an-interview-from-an-array-of-questions.md","siteName":"JobMojito Developer / Agent","nav":{"global":null,"tabs":[{"tab":"Welcome","pages":[{"title":"Welcome","href":"/welcome"}]},{"tab":"API Reference","groups":[{"group":"Interviews","pages":[{"title":"Create a new interview","description":"Creates a new interview / coaching / assessment definition, generates its description, questions and candidate expectations via AI, and provisions default steps. Optionally provisions an embed key. With `questions`, your questions are used as they are instead. For owners, recruiters and admins; hiring managers (read-only accounts) and other tokens get 403.","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-create","href":"/api-reference/interviews/create-a-new-interview"},{"title":"Create an interview from an array of questions","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-create-from-array","href":"/api-reference/interviews/create-an-interview-from-an-array-of-questions"},{"title":"Create an interview for a candidate and return an access token URL","description":"Creates (or resolves an existing) position and interview for a merchant, enrols the candidate, runs pre-screening, and returns a tokenised interview URL. Position fields are required only when position_def_set_id is not provided.","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-create-for-candidate-with-token","href":"/api-reference/interviews/create-an-interview-for-a-candidate-and-return-an-access-token-url"},{"title":"Create a role-play — coaching persona or interview-portal role-play (choose with `portal`)","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /persona-create","href":"/api-reference/interviews/create-a-role-play-—-coaching-persona-or-interview-portal-role-play-choose-with-`portal`"},{"title":"Get interview definition","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /job-interview-get","href":"/api-reference/interviews/get-interview-definition"},{"title":"Update an interview or position","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-update","href":"/api-reference/interviews/update-an-interview-or-position"},{"title":"Set interview state","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-set-state","href":"/api-reference/interviews/set-interview-state"},{"title":"Generate a signed interview URL","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-token","href":"/api-reference/interviews/generate-a-signed-interview-url"},{"title":"Register users for an interview","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-register-users","href":"/api-reference/interviews/register-users-for-an-interview"},{"title":"List interview definitions","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-interview-list","href":"/api-reference/interviews/list-interview-definitions"}]},{"group":"Positions","pages":[{"title":"Set the steps of a draft position","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-position-process-save","href":"/api-reference/positions/set-the-steps-of-a-draft-position"},{"title":"Change the settings of a position step","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-position-step-update","href":"/api-reference/positions/change-the-settings-of-a-position-step"},{"title":"Create, change or delete a meeting slot","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-meeting-slot-manage","href":"/api-reference/positions/create-change-or-delete-a-meeting-slot"},{"title":"Copy a position","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-position-duplicate","href":"/api-reference/positions/copy-a-position"},{"title":"Copy an interview","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-interview-duplicate","href":"/api-reference/positions/copy-an-interview"}]},{"group":"Coaching catalogue","pages":[{"title":"Create a coaching catalogue directory","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /catalogue-tag-create","href":"/api-reference/coaching-catalogue/create-a-coaching-catalogue-directory"},{"title":"Update a coaching catalogue directory","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /catalogue-tag-update","href":"/api-reference/coaching-catalogue/update-a-coaching-catalogue-directory"},{"title":"Get a coaching catalogue directory","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /catalogue-tag-get","href":"/api-reference/coaching-catalogue/get-a-coaching-catalogue-directory"},{"title":"List coaching catalogue directories","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /catalogue-tag-list","href":"/api-reference/coaching-catalogue/list-coaching-catalogue-directories"}]},{"group":"Results","pages":[{"title":"Get interview result details with transcript","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /job-interview-details","href":"/api-reference/results/get-interview-result-details-with-transcript"},{"title":"Generate an interview report","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-pdf","href":"/api-reference/results/generate-an-interview-report"},{"title":"Request another interview attempt","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-result-request-another-attempt","href":"/api-reference/results/request-another-interview-attempt"},{"title":"Record an external assessment result","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /assessment-result-set","href":"/api-reference/results/record-an-external-assessment-result"},{"title":"List interview results","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-result-list","href":"/api-reference/results/list-interview-results"},{"title":"Get daily event analytics","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-analytics","href":"/api-reference/results/get-daily-event-analytics"},{"title":"Get merchant credit usage","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-analytics-credits-used","href":"/api-reference/results/get-merchant-credit-usage"}]},{"group":"Reports","pages":[{"title":"List report datasets, fields and measures","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /report-catalog","href":"/api-reference/reports/list-report-datasets-fields-and-measures"},{"title":"List custom reports","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /report-list","href":"/api-reference/reports/list-custom-reports"},{"title":"Get a custom report definition","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /report-get","href":"/api-reference/reports/get-a-custom-report-definition"},{"title":"Run a custom report","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /report-run","href":"/api-reference/reports/run-a-custom-report"},{"title":"Check and run an unsaved report","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /report-preview","href":"/api-reference/reports/check-and-run-an-unsaved-report"},{"title":"Create a custom report","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /report-create","href":"/api-reference/reports/create-a-custom-report"},{"title":"Update a custom report","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /report-update","href":"/api-reference/reports/update-a-custom-report"}]},{"group":"Candidates","pages":[{"title":"List candidates","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-candidate-list","href":"/api-reference/candidates/list-candidates"},{"title":"Get a candidate","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-candidate-get","href":"/api-reference/candidates/get-a-candidate"},{"title":"Add a note to a candidate","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-candidate-note-add","href":"/api-reference/candidates/add-a-note-to-a-candidate"},{"title":"Tag candidates","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-candidate-tags-set","href":"/api-reference/candidates/tag-candidates"},{"title":"Create, change or delete a candidate tag","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-candidate-tag-manage","href":"/api-reference/candidates/create-change-or-delete-a-candidate-tag"},{"title":"List candidate filter options","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-candidate-filter-options","href":"/api-reference/candidates/list-candidate-filter-options"},{"title":"Preview merging two candidates","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-candidate-merge-preview","href":"/api-reference/candidates/preview-merging-two-candidates"},{"title":"Merge two candidates","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-candidate-merge","href":"/api-reference/candidates/merge-two-candidates"},{"title":"Dismiss a possible duplicate","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-candidate-duplicate-dismiss","href":"/api-reference/candidates/dismiss-a-possible-duplicate"},{"title":"List candidate segments","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-segment-list","href":"/api-reference/candidates/list-candidate-segments"},{"title":"Create, change or delete a candidate segment","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-segment-manage","href":"/api-reference/candidates/create-change-or-delete-a-candidate-segment"},{"title":"Download a candidate document","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-document-download","href":"/api-reference/candidates/download-a-candidate-document"}]},{"group":"Tasks","pages":[{"title":"List tasks","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-task-list","href":"/api-reference/tasks/list-tasks"},{"title":"Create or change a task","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-task-save","href":"/api-reference/tasks/create-or-change-a-task"}]},{"group":"Document requests","pages":[{"title":"List document requests","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-document-request-list","href":"/api-reference/document-requests/list-document-requests"},{"title":"Ask a candidate for documents","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-document-request-create","href":"/api-reference/document-requests/ask-a-candidate-for-documents"},{"title":"Cancel a document request or mark it reviewed","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-document-request-update","href":"/api-reference/document-requests/cancel-a-document-request-or-mark-it-reviewed"}]},{"group":"Reasons","pages":[{"title":"List the company's reasons","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-reason-list","href":"/api-reference/reasons/list-the-companys-reasons"},{"title":"Get one of the company's reasons","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-reason-get","href":"/api-reference/reasons/get-one-of-the-companys-reasons"},{"title":"Create, change or archive a reason","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-reason-save","href":"/api-reference/reasons/create-change-or-archive-a-reason"}]},{"group":"Knowledge base","pages":[{"title":"Upload a knowledge base document","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /knowledge-base-document-upload","href":"/api-reference/knowledge-base/upload-a-knowledge-base-document"},{"title":"List knowledge base documents and their interview limits","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /knowledge-base-document-list","href":"/api-reference/knowledge-base/list-knowledge-base-documents-and-their-interview-limits"},{"title":"Change which interviews can use a document","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /knowledge-base-document-set-interviews","href":"/api-reference/knowledge-base/change-which-interviews-can-use-a-document"},{"title":"List knowledge base stores","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /knowledge-base-store-list","href":"/api-reference/knowledge-base/list-knowledge-base-stores"},{"title":"Create or change a knowledge base store","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /knowledge-base-store-save","href":"/api-reference/knowledge-base/create-or-change-a-knowledge-base-store"}]},{"group":"Resume \u0026 Form verification","pages":[{"title":"Create or update a pre-screening position","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /pre-screening-create","href":"/api-reference/resume-\u0026-form-verification/create-or-update-a-pre-screening-position"},{"title":"Run pre-screening on a plaintext resume","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-pre-screening-api-resume-text","href":"/api-reference/resume-\u0026-form-verification/run-pre-screening-on-a-plaintext-resume"},{"title":"Pre-screen a candidate from a binary resume upload","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-pre-screening-api-resume-binary","href":"/api-reference/resume-\u0026-form-verification/pre-screen-a-candidate-from-a-binary-resume-upload"}]},{"group":"Admin","pages":[{"title":"Invite admin / merchant-team or coaching users","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /invite-users","href":"/api-reference/admin/invite-admin-merchant-team-or-coaching-users"},{"title":"List sub-merchants","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-sub-merchant-list","href":"/api-reference/admin/list-sub-merchants"},{"title":"List the company's users","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-user-list","href":"/api-reference/admin/list-the-companys-users"},{"title":"List avatar templates","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-avatar-list","href":"/api-reference/admin/list-avatar-templates"},{"title":"Get merchant status","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-status","href":"/api-reference/admin/get-merchant-status"},{"title":"List platform languages","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /platform-languages-list","href":"/api-reference/admin/list-platform-languages"},{"title":"Get the portal configuration (branding, portals, brands, pages)","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /portal-configuration-get","href":"/api-reference/admin/get-the-portal-configuration-branding-portals-brands-pages"},{"title":"Update the portal configuration (branding, portals, brands, pages)","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /portal-configuration-update","href":"/api-reference/admin/update-the-portal-configuration-branding-portals-brands-pages"},{"title":"Publish a brand stylesheet","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /portal-css-publish","href":"/api-reference/admin/publish-a-brand-stylesheet"},{"title":"Get the component style guide","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /portal-component-styles","href":"/api-reference/admin/get-the-component-style-guide"},{"title":"Save a component style","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /portal-component-styles","href":"/api-reference/admin/save-a-component-style"},{"title":"Generate component style alternatives","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /portal-component-styles-generate","href":"/api-reference/admin/generate-component-style-alternatives"},{"title":"List the media library","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /media-list","href":"/api-reference/admin/list-the-media-library"},{"title":"Start uploading a media file","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /media-upload-start","href":"/api-reference/admin/start-uploading-a-media-file"},{"title":"Finish uploading a media file","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /media-upload-finish","href":"/api-reference/admin/finish-uploading-a-media-file"},{"title":"Describe a media file","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /media-update","href":"/api-reference/admin/describe-a-media-file"},{"title":"Delete a media file","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /media-delete","href":"/api-reference/admin/delete-a-media-file"},{"title":"List the media library folders","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /media-folders","href":"/api-reference/admin/list-the-media-library-folders"},{"title":"Create, rename or delete a media library folder","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /media-folders","href":"/api-reference/admin/create-rename-or-delete-a-media-library-folder"}]},{"group":"Feedback","pages":[{"title":"Submit a feature request","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-feature-request","href":"/api-reference/feedback/submit-a-feature-request"},{"title":"Report a technical issue","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-technical-issue","href":"/api-reference/feedback/report-a-technical-issue"}]}]},{"tab":"Webhooks","pages":[{"title":"Webhooks","href":"/api-reference/webhooks/interview-result-submitted"}]},{"tab":"Cookbooks","pages":[{"title":"Cookbooks","href":"/cookbooks"}]},{"tab":"Skills","pages":[{"title":"Skills","href":"/skills/overview"}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/mcp/overview"}]}]},"basePath":"","title":"Create an interview from an array of questions - JobMojito Developer / Agent","buildId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","deploymentId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CDiBsYGW.js","utils-KF9rPlmF.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C26urKTX.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BdjmJAC1.js","snippetPresets-3IpDBjt3.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-D4x_2vvo.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BIWdc5Pa.js","shallow-LQqfiMNd.js","getApiPlaygroundDisplay-DryzlOZG.js","CodeSnippet-tcJujU4r.js","CodeSnippets-BHp0nVLL.js","Page-1CZdsdAn.js","getPastedJson-DU-1ayUv.js","icon-CZK2hPr4.js","MethodPill-DOaqmTFC.js","DuplicateIcon-B5-nUxxl.js","createIcon-CDP_U77G.js","DynamicMarkdown-GHvayGOn.js","SectionHeading-BYvpkmUD.js","axios-vUo_bRtp.js","Markdown-uxhlayGT.js","clsx-B35qUV0p.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BvrGG8gU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CAf0yVYe.js"]}