changedInput schema / properties / candidate_expectations_json / description
Previous value: -"Structured candidate expectations (the scoring rubric), bucketed by requirement level (weak/moderate/strong). A null is ignored: send a new rubric to replace it, or regenerate_candidate_expectations together with `questions` to derive it again. Extra keys are preserved."New value: +"Structured candidate expectations (the scoring rubric), bucketed by requirement level (weak/moderate/strong). A null is ignored: send a new rubric to replace it, or regenerate_candidate_expectations together with `questions` to derive it again."
removedInput schema / properties / candidate_expectations_json / properties / moderate / description
Removed value: -"Requirements expected of a solid, competent candidate."
removedInput schema / properties / candidate_expectations_json / properties / strong / description
Removed value: -"High-bar requirements only standout candidates clear."
removedInput schema / properties / candidate_expectations_json / properties / weak / description
Removed value: -"Baseline requirements every viable candidate should meet (table stakes)."
changedInput schema / properties / candidate_notification_channel / description
Previous value: -"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."New value: +"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."
changedInput schema / properties / coach_plan / description
Previous value: -"Coaching-plan stage this item belongs to, used by the coaching-plan progress view. Omit to keep the current stage. A null is ignored: use `other` when no stage fits. Options — `demo`: Demo session. | `screening`: Screening-interview practice. | `2nd`: Second-interview practice. | `3rd`: Third-interview practice. | `closing`: Closing / salary-negotiation practice. | `job-specific`: Job-specific coaching. | `other`: Anything that does not fit the other buckets.."New value: +"Coaching-plan stage this item belongs to, used by the coaching-plan progress view. Omit to keep the current stage. A null is ignored: use `other` when no stage fits."
removedInput schema / properties / coach_plan / example
Removed value: -"screening"
removedInput schema / properties / country_availability / properties / countries_allowed / description
Removed value: -"Available ONLY to candidates in these countries (ISO 3166-1 alpha-2)."
removedInput schema / properties / country_availability / properties / countries_allowed / example
Removed value: -[
- "PH",
- "IN"
-]
removedInput schema / properties / country_availability / properties / countries_allowed_eu / description
Removed value: -"Adds every EU country (plus EEA and Switzerland) to countries_allowed."
removedInput schema / properties / country_availability / properties / countries_blocked / description
Removed value: -"NOT available to candidates in these countries (ISO 3166-1 alpha-2). Wins over the allowed side."
removedInput schema / properties / country_availability / properties / countries_blocked / example
Removed value: -[
- "US"
-]
removedInput schema / properties / country_availability / properties / countries_blocked_eu / description
Removed value: -"Adds every EU country (plus EEA and Switzerland) to countries_blocked."
changedInput schema / properties / custom_fields / description
Previous value: -"Company-defined position fields to set, {key: value}; a null value clears that field and keys you omit keep their value. Values are checked against the field definitions (option values, YYYY-MM-DD dates, {min, max, currency} ranges, user profile ids). Requires custom fields to be enabled for the company (else 403). Multi-stage positions only: on a single-stage interview the request is refused with 422."New value: +"Company-defined position fields to set, {key: value}; a null value clears that field and keys you omit keep their value. Requires custom fields to be enabled for the company (else 403). Multi-stage positions only: on a single-stage interview the request is refused with 422."
removedInput schema / properties / custom_fields / example
Removed value: -{
- "contract_type": "permanent",
- "cost_centre": "CC-100"
-}
changedInput schema / properties / description_long / description
Previous value: -"Long-form interview description (column `interview_description_long`). 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"New value: +"Long-form interview description (column `interview_description_long`)."
changedInput schema / properties / emoji / description
Previous value: -"Emoji marker shown in the admin lists. Interviews and positions. Blank is stored as null."New value: +"Emoji marker shown in the admin lists. Blank is stored as null."
changedInput schema / properties / environment / description
Previous value: -"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.."New value: +"Which of your webhook environments results from this interview are delivered to. Defaults to production."
removedInput schema / properties / environment / example
Removed value: -"production"
changedInput schema / properties / hiring_for_company / description
Previous value: -"Who the position is really for. An object with name null/blank means hiring for yourself; { name: 'undisclosed' } for an unnamed external client; or { name: '<company>' } plus optional description/location/sector/company_size. Stored in creation_parameters.hiring_for_company."New value: +"Who the position is really for. An object with name null/blank means hiring for yourself; { name: 'undisclosed' } for an unnamed external client; or { name: '<company>' } plus optional description/location/sector/company_size."
removedInput schema / properties / hiring_for_company / example
Removed value: -{
- "name": "undisclosed"
-}
removedInput schema / properties / hiring_for_company / properties / company_size / description
Removed value: -"Approximate headcount of the end employer."
removedInput schema / properties / hiring_for_company / properties / company_size / example
Removed value: -"100-200"
removedInput schema / properties / hiring_for_company / properties / description / description
Removed value: -"Short description of the end employer, used as background context by the agent."
removedInput schema / properties / hiring_for_company / properties / description / example
Removed value: -"Unimo Enterprises is a leading logistics and supply chain solutions provider."
removedInput schema / properties / hiring_for_company / properties / location / description
Removed value: -"Primary location of the end employer."
removedInput schema / properties / hiring_for_company / properties / location / example
Removed value: -"Sri Lanka"
removedInput schema / properties / hiring_for_company / properties / name / description
Removed value: -"End-employer name. Omit/null when hiring for yourself, 'undisclosed' for an unnamed external client, or the client's company name."
removedInput schema / properties / hiring_for_company / properties / name / example
Removed value: -"Unimo Enterprises"
removedInput schema / properties / hiring_for_company / properties / sector / description
Removed value: -"Industry / sector of the end employer."
removedInput schema / properties / hiring_for_company / properties / sector / example
Removed value: -"Logistics and Supply Chain"
changedInput schema / properties / interview_attempts / description
Previous value: -"Allowed candidate attempts (1-20). Stored as result_scoring.max_retries."New value: +"Allowed candidate attempts (1-20)."
removedInput schema / properties / interview_attempts / example
Removed value: -1
removedInput schema / properties / interview_available_till / example
Removed value: -"2026-12-31"
changedInput schema / properties / interview_category / description
Previous value: -"Job category shown on public listings above the department (free text), e.g. \"Ashore\". Interviews and positions. Blank is stored as null."New value: +"Job category shown on public listings above the department (free text), e.g. \"Ashore\". Blank is stored as null."
removedInput schema / properties / interview_category / example
Removed value: -"Ashore"
changedInput schema / properties / interview_conversation_speed / description
Previous value: -"Conversation pace of the AI avatar. Omit to keep the current pace; `normal` is the default speaking 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.."New value: +"Conversation pace of the AI avatar. Omit to keep the current pace; `normal` is the default speaking pace."
removedInput schema / properties / interview_conversation_speed / example
Removed value: -"normal"
removedInput schema / properties / interview_department / example
Removed value: -"Engineering"
removedInput schema / properties / interview_salary / example
Removed value: -"$80k - $100k"
changedInput schema / properties / interview_template_id / description
Previous value: -"Id of the interview template (avatar/voice) to use. Must reference an existing interview_templates row. Also decides the modality — see list_avatars / merchant-avatar-list."New value: +"Id of the interview template (avatar/voice) to use. Must reference an existing interview_templates row."
removedInput schema / properties / interview_template_id / example
Removed value: -"46b98d37-1557-4391-beca-03037ead19f2"
changedInput schema / properties / interview_tone / description
Previous value: -"Tone — configures the AI avatar's speaking style and the follow-up questions it generates. Stored in creation_parameters; existing questions are NOT regenerated. Case-insensitive; omit to default to relaxed. Options — `relaxed`: Friendly and conversational tone that helps candidates feel at ease. | `simple`: Plain language at CEFR A2 level — short sentences and simple words. | `professional`: Formal and business-like approach suitable for senior roles. | `persuasive`: Engaging style that encourages candidates to elaborate. | `exact`: Asks the questions exactly as provided, without rephrasing — for interviews built from your own questions (create_interview_from_questions) where the wording is a script.."New value: +"Tone — configures the AI avatar's speaking style and the follow-up questions it generates. Case-insensitive; omit to default to relaxed."
removedInput schema / properties / interview_tone / example
Removed value: -"professional"
changedInput schema / properties / interview_type / description
Previous value: -"Interview style — configures the AI avatar and the follow-up questions it generates during the interview. Stored in creation_parameters; existing questions are NOT regenerated. 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.."New value: +"Interview style — configures the AI avatar and the follow-up questions it generates during the interview."
removedInput schema / properties / interview_type / example
Removed value: -"pre-screening-with-test-questions"
addedInput schema / properties / llm_model
Added value: +{
+ "description": "Your model id, e.g. \"claude-opus-4-8\"; \"unknown\" if unsure. For analytics.",
+ "type": "string"
+}
removedInput schema / properties / location / example
Removed value: -"remote"
changedInput schema / properties / max_duration / description
Previous value: -"Live session limit in seconds. Also the basis for the credit multiplier."New value: +"Live session limit in seconds."
removedInput schema / properties / max_duration / example
Removed value: -1200
removedInput schema / properties / max_followups / example
Removed value: -2
removedInput schema / properties / name / example
Removed value: -"Project manager"
removedInput schema / properties / pdf_export_auto_config / properties / ai_recruiter_assessment / description
Removed value: -"Include the AI recruiter assessment."
removedInput schema / properties / pdf_export_auto_config / properties / ai_scoring_rubric / description
Removed value: -"Include the AI scoring rubric."
removedInput schema / properties / pdf_export_auto_config / properties / analytics / description
Removed value: -"Include analytics."
removedInput schema / properties / pdf_export_auto_config / properties / answer_recording / description
Removed value: -"Include per-answer recordings."
removedInput schema / properties / pdf_export_auto_config / properties / contact_details / description
Removed value: -"Include candidate contact details."
removedInput schema / properties / pdf_export_auto_config / properties / files / description
Removed value: -"Include uploaded candidate files."
removedInput schema / properties / pdf_export_auto_config / properties / group_by_question / description
Removed value: -"Group transcript answers by expected question."
removedInput schema / properties / pdf_export_auto_config / properties / mojito_language_code / description
Removed value: -"Report language code (a platform-languages.json code)."
removedInput schema / properties / pdf_export_auto_config / properties / mojito_language_code / example
Removed value: -"en"
removedInput schema / properties / pdf_export_auto_config / properties / session_recording / description
Removed value: -"Include the full-session recording."
removedInput schema / properties / pdf_export_auto_config / properties / template / description
Removed value: -"Report layout: classic, modern, or one_pager. Omit for the merchant default (modern when unset)."
removedInput schema / properties / pdf_export_auto_config / properties / transcript / description
Removed value: -"Include the interview transcript."
changedInput schema / properties / position_id / description
Previous value: -"Id of the interview definition (single-stage) or position definition (multi-stage) to update. The same id you pass to job-interview-get."New value: +"Id of the interview definition (single-stage) or position definition (multi-stage) to update."
removedInput schema / properties / position_id / example
Removed value: -"00000000-0000-0000-0000-000000000000"
changedInput schema / properties / questions / description
Previous value: -"OPTIONAL. Omit this field entirely and the interview's questions are left exactly as they are — this endpoint only touches questions when you send the array. When you do send it, send the COMPLETE list you want the interview to end up with, in order, in the same format job-interview-create-from-array accepts and job-interview-get returns: there is no way to change a single question on its own, so read the interview, edit that array, and send the whole thing back. An empty array is rejected. It is applied as a DIFF, not a replace, so resending the array job-interview-get gave you changes nothing at all. Each entry is matched against what is stored — first on `external_id`, then on `id`, then on identical content — and: an entry matching an unchanged question keeps that question exactly as it is, including its answer rules and any rendered avatar video; an entry matching a question whose content differs unlinks the old question and creates a new one in its place (fields you omit are carried over from the old one); an entry matching nothing is created; and a stored question no entry matches is unlinked. `questions_diff` in the response reports exactly what was decided. Questions are shared records, so nothing is ever deleted — removing one only unlinks it from this interview, and an edit is always unlink-old + create-new so the change cannot leak into another interview reusing the same question. The welcome, thank-you and instructional-video steps are not part of this array and are left in place. Single-stage interviews only; for a multi-stage position, update its interview stages individually."New value: +"OPTIONAL. Omit this field entirely and the interview's questions are left exactly as they are — this endpoint only touches questions when you send the array. When you do send it, send the COMPLETE list you want the interview to end up with, in order, in the same format job-interview-create-from-array accepts and job-interview-get returns: there is no way to change a single question on its own, so read the interview, edit that array, and send the whole thing back. An empty array is rejected. It is applied as a DIFF, not a replace, so resending the array job-interview-get gave you changes nothing at all. Each entry is matched against what is stored — first on `external_id`, then on `id`, then on identical content — and: an entry matching an unchanged question keeps that question exactly as it is, including its answer rules and any rendered avatar video; an entry matching a question whose content differs unlinks the old question and creates a new one in its place (fields you omit are carried over from the old one); an entry matching nothing is created; and a stored question no entry matches is unlinked. Questions are shared records, so nothing is ever deleted — removing one only unlinks it from this interview, and an edit is always unlink-old + create-new so the change cannot leak into another interview reusing the same question. Single-stage interviews only; for a multi-stage position, update its interview stages individually."
removedInput schema / properties / questions / items / properties / candidate_expectations_json / description
Removed value: -"Per-question candidate expectations, bucketed by requirement level (weak/moderate/strong). Extra keys are preserved."
removedInput schema / properties / questions / items / properties / candidate_expectations_json / properties / moderate / description
Removed value: -"Requirements expected of a solid, competent candidate."
removedInput schema / properties / questions / items / properties / candidate_expectations_json / properties / strong / description
Removed value: -"High-bar requirements only standout candidates clear."
removedInput schema / properties / questions / items / properties / candidate_expectations_json / properties / weak / description
Removed value: -"Baseline requirements every viable candidate should meet (table stakes)."
removedInput schema / properties / questions / items / properties / conditional_question_answer / description
Removed value: -"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."
removedInput schema / properties / questions / items / properties / conditional_question_answer / example
Removed value: -false
removedInput schema / properties / questions / items / properties / conditional_question_main_id / description
Removed value: -"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."
removedInput schema / properties / questions / items / properties / duration / description
Removed value: -"Answer duration in seconds for this question."
removedInput schema / properties / questions / items / properties / external_data / description
Removed value: -"Arbitrary JSON metadata stored on the question."
removedInput schema / properties / questions / items / properties / external_id / description
Removed value: -"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."
removedInput schema / properties / questions / items / properties / id / description
Removed value: -"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."
removedInput schema / properties / questions / items / properties / is_candidate_asking_recruiter / description
Removed value: -"Candidate-asks-recruiter prompt (view 'candidate asking recruiter')."
removedInput schema / properties / questions / items / properties / is_conditional / description
Removed value: -"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."
removedInput schema / properties / questions / items / properties / is_expert / description
Removed value: -"Expert listening question (view 'with listening expert')."
removedInput schema / properties / questions / items / properties / is_multiple_choice / description
Removed value: -"Multiple-choice question (view 'multiple choice')."
removedInput schema / properties / questions / items / properties / is_skippable / description
Removed value: -"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."
removedInput schema / properties / questions / items / properties / is_skippable / example
Removed value: -false
removedInput schema / properties / questions / items / properties / is_without_scoring / description
Removed value: -"Question is asked but not scored (view 'without scoring')."
removedInput schema / properties / questions / items / properties / knowledge_base_id / description
Removed value: -"Knowledge-base store id (uuid) the question draws context from."
removedInput schema / properties / questions / items / properties / label / description
Removed value: -"Optional label/tag stored on the question."
removedInput schema / properties / questions / items / properties / mojito_language_code / description
Removed value: -"Per-question language override (one of the platform-languages.json codes). Inherits the interview language when omitted."
removedInput schema / properties / questions / items / properties / mojito_language_code / example
Removed value: -"en"
removedInput schema / properties / questions / items / properties / question / description
Removed value: -"The question text shown to the candidate."
removedInput schema / properties / questions / items / properties / question_alternatives / description
Removed value: -"Alternative phrasings for the question."
removedInput schema / properties / questions_random_subset / example
Removed value: -0.5
changedInput schema / properties / recording / description
Previous value: -"Cheating/proctoring detection mode for candidate answers — this is NOT a full session recording. Video options also record the candidate. Omit to keep the current setting. A null is ignored: turn it off in the admin console. 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.."New value: +"Cheating/proctoring detection mode for candidate answers — this is NOT a full session recording. Omit to keep the current setting. A null is ignored: turn it off in the admin console."
removedInput schema / properties / recording / example
Removed value: -"video_all"
changedInput schema / properties / recording_full_session / description
Previous value: -"Full interview-session recording (includes the avatar and voice) produced as a single file. Independent of `recording`. Omit to keep the current setting. A null is ignored: turn it off in the admin console. 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.."New value: +"Full interview-session recording (includes the avatar and voice) produced as a single file. Omit to keep the current setting. A null is ignored: turn it off in the admin console."
removedInput schema / properties / recording_full_session / example
Removed value: -"video_all"
removedInput schema / properties / regenerate_candidate_expectations / example
Removed value: -false
changedInput schema / properties / result_view / description
Previous value: -"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.."New value: +"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."
removedInput schema / properties / result_view / example
Removed value: -"full"
changedInput schema / properties / seniority_level / description
Previous value: -"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.."New value: +"Target seniority level for the role; auto-detected from the job description when omitted."
removedInput schema / properties / seniority_level / example
Removed value: -"senior"
changedInput schema / properties / status / description
Previous value: -"New publication status (type_interview_status). Applied through the same interview_set_status routine as job-interview-set-state (which is also where you manage the iframe embed key and the vacancy lifecycle of a position). Refused (422) for the AI interview step of a multi-stage position (visibility sub_item): its status follows the position."New value: +"New publication status (type_interview_status). Refused (422) for the AI interview step of a multi-stage position (visibility sub_item): its status follows the position."
removedInput schema / properties / status / example
Removed value: -"active"
changedInput schema / properties / tags / description
Previous value: -"Free-form tags stored on the interview. Tags are also the coaching-catalogue mapping key: a catalogue directory (see the catalogue-tag-create / catalogue-tag-update endpoints) lists a coaching or persona session when the session's tags contain EVERY tag in that directory's `tags_interview_set_filter`. Only `active` sessions with visibility `public` or `merchant_public` are listed."New value: +"Free-form tags stored on the interview. Only `active` sessions with visibility `public` or `merchant_public` are listed."
removedInput schema / properties / tags / example
Removed value: -[
- "interview-practice",
- "sales"
-]
changedInput schema / properties / team / description
Previous value: -"Multi-stage positions only (422 on an interview): the complete hiring team you want, replacing the current members (viewers, managed with position access, are kept). An empty array removes everyone. Needs the hiring team switched on for the company (else 403) and access to the position. Each member is a person (profile_id: an active or invited staff user of the company) or a group (profile_group_id), with a role. The answer carries the resulting `team`."New value: +"Multi-stage positions only (422 on an interview): the complete hiring team you want, replacing the current members (viewers, managed with position access, are kept). An empty array removes everyone. Needs the hiring team switched on for the company (else 403) and access to the position."
removedInput schema / properties / team / example
Removed value: -[
- {
- "profile_id": "00000000-0000-0000-0000-000000000001",
- "role": "interviewer"
- }
-]
removedInput schema / properties / team / items / properties / profile_group_id / description
Removed value: -"A group of the company (profile_group.id)."
removedInput schema / properties / team / items / properties / profile_id / description
Removed value: -"A person: an active or invited staff user of the company (profile.id)."
removedInput schema / properties / team / items / properties / role / description
Removed value: -"Role on the hiring team."
removedInput schema / properties / type / example
Removed value: -"interview"
changedInput schema / properties / type_credit / description
Previous value: -"Credit bucket the session draws from. Only meaningful for candidate-paid coaching/persona sessions; hiring interviews and assessments are merchant-billed and carry null. Options — `resume_check`: Resume-check credits. | `interview_coach_starter`: Coaching credits — starter tier. | `interview_coach_contributor`: Coaching credits — contributor tier. | `interview_coach_manager`: Coaching credits — manager tier. | `cover_letter`: Cover-letter credits.."New value: +"Credit bucket the session draws from. Only meaningful for candidate-paid coaching/persona sessions; hiring interviews and assessments are merchant-billed and carry null."
removedInput schema / properties / type_credit / example
Removed value: -"interview_coach_manager"
changedInput schema / properties / visibility / description
Previous value: -"Who can discover and access the interview. Refused (422) for the AI interview step of a multi-stage position (visibility sub_item): it follows the position. 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.."New value: +"Who can discover and access the interview. Refused (422) for the AI interview step of a multi-stage position (visibility sub_item): it follows the position."
removedInput schema / properties / visibility / example
Removed value: -"merchant_public"
removedOutput schema / description
Removed value: -"Confirmation of what was updated."
removedOutput schema / properties / is_multistage / description
Removed value: -"True when the id resolved to a multi-stage position (position_def_set) rather than a single interview."
removedOutput schema / properties / position_id / description
Removed value: -"The id that was updated."
removedOutput schema / properties / questions_diff / description
Removed value: -"What the question diff decided, question by question. Absent when `questions` was not sent."
removedOutput schema / properties / questions_diff / properties / added / description
Removed value: -"Ids of the questions created for entries that matched nothing stored."
removedOutput schema / properties / questions_diff / properties / kept / description
Removed value: -"Questions left exactly as they were, record and all."
removedOutput schema / properties / questions_diff / properties / question_ids / description
Removed value: -"The interview's full ordered step list after the update, including the welcome / thank-you / instructional steps this endpoint does not manage."
removedOutput schema / properties / questions_diff / properties / reactivated / description
Removed value: -"True when the interview was already active and was re-published so the new questions go live."
removedOutput schema / properties / questions_diff / properties / removed / description
Removed value: -"Ids unlinked because no entry in the request matched them. The question records themselves still exist."
removedOutput schema / properties / questions_diff / properties / replaced / description
Removed value: -"Edited questions: the old record was unlinked and a new one created, so the change cannot leak into other interviews reusing it."
removedOutput schema / properties / questions_diff / properties / replaced / items / properties / from / description
Removed value: -"The id that was unlinked."
removedOutput schema / properties / questions_diff / properties / replaced / items / properties / to / description
Removed value: -"The id of the question created in its place."
changedOutput schema / properties / team / allOf
Previous value: -[
- {
- "description": "include=team (multi-stage positions): the hiring team.",
- "properties": {
- "enabled": {
- "description": "Whether the company has the hiring team switched on (switch hiring_team); members is empty while it is off.",
- "type": [
- "boolean",
- "null"
- ]
- },
- "members": {
- "description": "Members by role, then name.",
- "items": {
- "properties": {
- "email": {
- "description": "E-mail of a person.",
- "type": [
- "string",
- "null"
- ]
- },
- "group_member_count": {
- "description": "People in a group (with its subgroups).",
- "type": [
- "number",
- "null"
- ]
- },
- "group_name": {
- "description": "Group name.",
- "type": [
- "string",
- "null"
- ]
- },
- "id": {
- "description": "Membership id (position_team.id).",
- "type": [
- "string",
- "null"
- ]
- },
- "name": {
- "description": "Person or group name.",
- "type": [
- "string",
- "null"
- ]
- },
- "profile_group_id": {
- "description": "A group (profile_group.id); null for a person.",
- "type": [
- "string",
- "null"
- ]
- },
- "profile_id": {
- "description": "A person (profile.id); null for a group.",
- "type": [
- "string",
- "null"
- ]
- },
- "role": {
- "description": "Role on the hiring team.",
- "enum": [
- "recruiter",
- "sourcer",
- "coordinator",
- "hiring_manager",
- "interviewer",
- "viewer",
- null
- ],
- "type": [
- "string",
- "null"
- ]
- }
- },
- "required": [
- "id",
- "role",
- "profile_id",
- "profile_group_id",
- "name",
- "email",
- "group_name",
- "group_member_count"
- ],
- "type": "object"
- },
- "type": [
- "array",
- "null"
- ]
- },
- "owner": {
- "description": "The position's recruiter (recruiter_profile_id); null when none.",
- "properties": {
- "email": {
- "description": "E-mail.",
- "type": [
- "string",
- "null"
- ]
- },
- "name": {
- "description": "Name.",
- "type": [
- "string",
- "null"
- ]
- },
- "profile_id": {
- "description": "Owning recruiter (profile.id).",
- "type": [
- "string",
- "null"
- ]
- }
- },
- "required": [
- "profile_id",
- "name",
- "email"
- ],
- "type": [
- "object",
- "null"
- ]
- }
- },
- "required": [
- "enabled",
- "owner",
- "members"
- ],
- "type": "object"
- },
- {
- "description": "The hiring team after the change. Absent when `team` was not sent."
- }
-]New value: +[
+ {
+ "properties": {
+ "enabled": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "members": {
+ "items": {
+ "properties": {
+ "email": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "group_member_count": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "group_name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "profile_group_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "profile_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "role": {
+ "enum": [
+ "recruiter",
+ "sourcer",
+ "coordinator",
+ "hiring_manager",
+ "interviewer",
+ "viewer",
+ null
+ ],
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "role",
+ "profile_id",
+ "profile_group_id",
+ "name",
+ "email",
+ "group_name",
+ "group_member_count"
+ ],
+ "type": "object"
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "owner": {
+ "properties": {
+ "email": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "profile_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "profile_id",
+ "name",
+ "email"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "enabled",
+ "owner",
+ "members"
+ ],
+ "type": "object"
+ },
+ {}
+]
removedOutput schema / properties / updated_fields / description
Removed value: -"Names of the stored columns that were written, plus `status` when the publication status was changed, `questions` when the question list was diffed, `custom_fields` and `team` when those were set."
removedOutput schema / properties / updated_fields / example
Removed value: -[
- "name",
- "tags"
-]