Change publication status, vacancy lifecycle or embedding
set_interview_state[Interviews] Change an interview's or position's publication status (draft, active, archived...), or a position's vacancy lifecycle (open, applications_closed, on_hold, filled, cancelled, closed) with an optional reason_id and note, or its embed key (is_embedded). Moving a position to filled, cancelled or closed, or archiving it, e-mails every candidate whose application is still open, when the company has the position-closed notice on. on_hold and cancelled need a reason_id: one of the company's position status reasons from list_reasons type=position_status, whose applies_to has the lifecycle. dry_run=true answers the status change and whether the position-closed e-mail would go out, to how many candidates, without changing anything. A deleted interview can no longer be read or updated; an archived one can. is_embedded=false removes the embed keys, so existing embeds stop working.
Every argument in full, with examples: get_tool_reference.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"position_id": "<position_id>"
},
"name": "set_interview_state"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | With lifecycle: a note kept in the position's status history (at most 1000 characters). | |
| status | No | New publication status. Refused (422) for the AI interview step of a position, which follows its position, and for activating a position whose required custom fields are empty. Archiving an active position can e-mail its candidates with open applications (the position-closed notice, when switched on). A deleted interview can no longer be read or updated; an archived one can. preparing (a draft still being prepared) and completed (finished, read as closed) are normally set by the platform; filling or closing a position is `lifecycle`. | |
| dry_run | No | true: change nothing; answer the status before and after and whether the position-closed e-mail would go out, to how many candidates. It does not check whether the move is allowed: the real call can still refuse it. | |
| lifecycle | No | Multi-stage positions only: the vacancy lifecycle to move to. draft goes to open or cancelled; open, applications_closed and on_hold go to each other or to filled, cancelled or closed; those three go back to open. on_hold and cancelled need reason_id. filled, cancelled and closed archive the position and can e-mail every candidate with an open application (the position-closed notice, when switched on). Needs the position_lifecycle feature (403 otherwise). Send either status or lifecycle, not both. A stand-alone interview has no lifecycle: close it with status archived. open, applications_closed and on_hold e-mail no one. | |
| llm_model | No | Your model id, e.g. "claude-opus-4-8"; "unknown" if unsure. For analytics. | |
| reason_id | No | With lifecycle: a position status reason of the company that applies to the target lifecycle (an id from list_reasons with type position_status). | |
| is_embedded | No | Controls iframe embedding of the interview on an external page. A signed coaching embed (name, email, signature) signs the visitor in as a learner of that portal, and the session is charged to the merchant's interview credits on completion, not to the learner's coaching credits; it cannot start while the merchant has none. | |
| position_id | Yes | Interview definition id (an interview `id` from list_interviews) or position id (a position `id` from list_interviews) whose state should change. | |
| conversation_id | No | The conversation_id this server returned earlier in this conversation, unchanged, including after later user messages. Omit it if you have none. Recorded for the server developer's analytics. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes | ||
| _mcp_instructions | No | Server-issued metadata for this conversation. |