update_draft_job
Edit a DRAFT job; a published job fails with job_not_draft. Only the fields you
pass change, and each list you pass REPLACES the whole list. So call get_job
right before, build each list from what it returns now, and pass its version.
If the job changed since that read, this fails with job_changed and saves
nothing: read it again and redo the change. To ADD one question, use
add_knockout_question or add_interview_question instead. The answer has
previous: the old value of each field you sent. Tell the member what was
removed. knockout_questions: [{"question": str, "required_answer": bool}]
(true = the candidate must answer yes). scoring_criteria: [{"name": str,
"weight": number > 0, "description": str}], names unique. interview_mode: "ai"
(HireMike's AI interviewer runs a first-round video interview with each
shortlisted candidate, charged per interview once the job is published) or
"human" (the member books and runs every interview; no AI interview charges,
and interview questions become optional). instant_start_enabled (AI jobs
only): a candidate may start at once when a slot is free, instead of booking
a day ahead. On a published job the member changes the mode in the
dashboard. The hold, the review gate and who gets alerts are not editable
here.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| job_id | Yes | ||
| version | Yes | ||
| description | No | ||
| interview_mode | No | ||
| scoring_criteria | No | ||
| cv_pass_threshold | No | ||
| knockout_questions | No | ||
| interview_questions | No | ||
| instant_start_enabled | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |