Skip to main content
Glama

Change a position step's settings

update_position_step
DestructiveIdempotent

[Positions] Change one step's settings. It takes step_id, optionally name, advance and kombo, and only the settings object of the step's type (meeting, certo, external_assessment, interview, pre_screening); only the keys you send change and null removes a key, but a list you send (pre_screening form_fields, assessment_rules) replaces the whole list: every item to keep is in it. pre_screening id and status are read only. A new form field: {"id": "custom_", "title", "field_type": text|file|radio, "type": required|optional, "options": ["Yes", "No"] for radio}; it goes after the fields get_interview_definition include=process returns. pre_screening all_rules_fulfilled_auto_approve approves a candidate who meets every rule without review; whether they then move on by themselves is advance (auto), a separate setting. expected_updated_at takes the step's updated_at from get_interview_definition include=process; when the step changed since, the call is refused with 409. Settings are live: candidates already on the step get them at once. dry_run=true shows the changed keys, the candidates on the step, booked meetings and warnings, and saves nothing. Nobody is e-mailed. A new meeting duration applies to slots created afterwards; existing slots keep theirs (manage_meeting_slot changes them).

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": {
      "step_id": "<step_id>"
    },
    "name": "update_position_step"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNoNew name of the step. null or empty removes the name (the type's default label is shown); left out keeps it.
certoNoSettings of a certo.bio verification step.
komboNoMapping of this step to the connected ATS (Kombo).
advanceNoauto: a candidate who passes moves on by themselves; manual: a recruiter moves them on. null = auto.
dry_runNotrue: validate and answer what would change and whom it reaches, without writing anything.
meetingNoSettings of a meeting step. Each key is merged separately; keys left out keep their value.
step_idYesThe step (a step `id`, from get_interview_definition with include=process or set_position_process).
interviewNoSettings of an AI interview step.
llm_modelNoYour model id, e.g. "claude-opus-4-8"; "unknown" if unsure. For analytics.
pre_screeningNoPre-screening steps: the settings to change, as include=process returns them; that object can be sent back as it is.
conversation_idNoThe 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.
expected_updated_atNoThe step's updated_at as you read it (get_interview_definition with include=process, or an earlier answer of this call). When the step changed since, nothing is written and the answer is 409; a new read gives the current value. null or left out: not checked.
external_assessmentNoSettings of an external assessment step (the external_assessment feature).

Output Schema

NameRequiredDescriptionDefault
stepYes
dry_runYes
warningsYes
changed_keysYes
booked_meetingsYes
_mcp_instructionsNoServer-issued metadata for this conversation.
candidates_on_stepYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / expected_updated_at / description
      Previous value: -"The step's updated_at as you read it (get_interview_definition with include=process, or an earlier answer of this call). When the step changed since, nothing is written and the answer is 409; read it again and retry. null or left out: not checked."New value: +"The step's updated_at as you read it (get_interview_definition with include=process, or an earlier answer of this call). When the step changed since, nothing is written and the answer is 409; a new read gives the current value. null or left out: not checked."
  2. Changed10 schema fields changed
    • addedInput schema / properties / certo / description
      Added value: +"Settings of a certo.bio verification step."
    • addedInput schema / properties / external_assessment / description
      Added value: +"Settings of an external assessment step (the external_assessment feature)."
    • addedInput schema / properties / interview / description
      Added value: +"Settings of an AI interview step."
    • addedInput schema / properties / kombo / description
      Added value: +"Mapping of this step to the connected ATS (Kombo)."
    • addedInput schema / properties / meeting / description
      Added value: +"Settings of a meeting step. Each key is merged separately; keys left out keep their value."
    • addedInput schema / properties / pre_screening / additionalProperties
      Added value: +false
    • removedInput schema / properties / pre_screening / allOf
      Removed value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "all_rules_fulfilled_auto_approve": {
      -        "type": "boolean"
      -      },
      -      "assessment_rules": {
      -        "items": {
      -          "properties": {
      -            "id": {
      -              "minLength": 1,
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "id"
      -          ],
      -          "type": "object"
      -        },
      -        "maxItems": 100,
      -        "type": "array"
      -      },
      -      "candidate_expectations": {
      -        "maxLength": 4000,
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "form_fields": {
      -        "items": {
      -          "properties": {
      -            "id": {
      -              "minLength": 1,
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "id"
      -          ],
      -          "type": "object"
      -        },
      -        "maxItems": 100,
      -        "type": "array"
      -      },
      -      "position_country": {
      -        "pattern": "^[A-Za-z]{2}$",
      -        "type": "string"
      -      },
      -      "type": {
      -        "enum": [
      -          "resume",
      -          "form",
      -          "resume_with_form"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "id": {
      -        "type": "string"
      -      },
      -      "status": {
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  }
      -]
    • addedInput schema / properties / pre_screening / properties
      Added value: +{
      +  "all_rules_fulfilled_auto_approve": {
      +    "type": "boolean"
      +  },
      +  "assessment_rules": {
      +    "items": {
      +      "properties": {
      +        "id": {
      +          "minLength": 1,
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "id"
      +      ],
      +      "type": "object"
      +    },
      +    "maxItems": 100,
      +    "type": "array"
      +  },
      +  "candidate_expectations": {
      +    "maxLength": 4000,
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "form_fields": {
      +    "items": {
      +      "properties": {
      +        "id": {
      +          "minLength": 1,
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "id"
      +      ],
      +      "type": "object"
      +    },
      +    "maxItems": 100,
      +    "type": "array"
      +  },
      +  "id": {
      +    "type": "string"
      +  },
      +  "position_country": {
      +    "pattern": "^[A-Za-z]{2}$",
      +    "type": "string"
      +  },
      +  "status": {
      +    "type": "string"
      +  },
      +  "type": {
      +    "enum": [
      +      "resume",
      +      "form",
      +      "resume_with_form"
      +    ],
      +    "type": "string"
      +  }
      +}
    • addedInput schema / properties / pre_screening / type
      Added value: +"object"
    • changedInput schema / properties / step_id / description
      Previous value: -"The step (position_def_step.id, from get_interview_definition with include=process or set_position_process)."New value: +"The step (a step `id`, from get_interview_definition with include=process or set_position_process)."
  3. Changed1 schema field changed
    • changedInput schema / properties / pre_screening / description
      Previous value: -"Pre-screening steps: the settings to change (see PositionStepPreScreening)."New value: +"Pre-screening steps: the settings to change, as include=process returns them; that object can be sent back as it is."
  4. Changed91 schema fields changed
    • removedInput schema / properties / certo / description
      Removed value: -"Settings of a certo.bio verification step."
    • removedInput schema / properties / certo / properties / include_contact / description
      Removed value: -"Ask for the contact details of referees."
    • removedInput schema / properties / certo / properties / scope_types / description
      Removed value: -"What is verified; null = everything."
    • removedInput schema / properties / certo / properties / wait_for_identity / description
      Removed value: -"Wait until the candidate has verified their identity before the step completes."
    • removedInput schema / properties / external_assessment / description
      Removed value: -"Settings of an external assessment step (merchant switch external_assessment)."
    • removedInput schema / properties / external_assessment / properties / due_days / description
      Removed value: -"Days the candidate has to finish, 1 to 60 (default 7)."
    • removedInput schema / properties / external_assessment / properties / instructions / description
      Removed value: -"Shown to the candidate (falls back to the provider's instructions). null removes the setting (its default applies again); left out keeps it."
    • removedInput schema / properties / external_assessment / properties / pass_score / description
      Removed value: -"Optional pass mark: a result without a pass flag passes when its score is at least this. null removes the setting (its default applies again); left out keeps it."
    • removedInput schema / properties / external_assessment / properties / provider_id / description
      Removed value: -"The assessment provider (merchant_assessment_provider.id, active, of this company). Required on a new step."
    • removedInput schema / properties / interview / description
      Removed value: -"Settings of an AI interview step."
    • removedInput schema / properties / interview / properties / allow_human_interview / description
      Removed value: -"Let candidates ask for an interview with a person instead of the AI. Question content is changed with update_interview, on the step's interview_set_id."
    • removedInput schema / properties / kombo / description
      Removed value: -"Mapping of this step to the connected ATS (Kombo). Each key is merged separately."
    • removedInput schema / properties / kombo / properties / accept_stage_id / description
      Removed value: -"ATS stage (Kombo id) a candidate moves to when accepted on this step. null removes the setting (its default applies again); left out keeps it."
    • removedInput schema / properties / kombo / properties / reject_reason_ai_id / description
      Removed value: -"ATS rejection reason (Kombo id) used when the AI rejects on this step. null removes the setting (its default applies again); left out keeps it."
    • removedInput schema / properties / kombo / properties / reject_reason_id / description
      Removed value: -"ATS rejection reason (Kombo id) used when a recruiter rejects on this step. null removes the setting (its default applies again); left out keeps it."
    • 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 / meeting / description
      Removed value: -"Settings of a meeting step. Each key is merged separately; keys left out keep their value."
    • removedInput schema / properties / meeting / properties / conference_provider / description
      Removed value: -"The meeting link: in_person (no link), fixed (meeting_url), zoom / teams / meet (made at booking with the interviewer's own calendar account, meeting_url is the fallback). Absent: fixed when meeting_url is set, else in_person. null removes the setting (its default applies again); left out keeps it."
    • removedInput schema / properties / meeting / properties / data_collection / description
      Removed value: -"What the interviewer records after the meeting. Replaced as a whole. null removes the setting (its default applies again); left out keeps it."
    • removedInput schema / properties / meeting / properties / data_collection / properties / mode / description
      Removed value: -"none, form (a meeting form, taxonomy_id) or text (free notes)."
    • removedInput schema / properties / meeting / properties / data_collection / properties / taxonomy_id / description
      Removed value: -"The meeting form (merchant_taxonomy.id, type meeting_form, of this company); required for mode form."
    • removedInput schema / properties / meeting / properties / duration_minutes / description
      Removed value: -"Meeting length in minutes, 5 to 1440 (default 30). null removes the setting (its default applies again); left out keeps it."
    • removedInput schema / properties / meeting / properties / email_variant / description
      Removed value: -"Merchant switch meeting_email_variants: the name of the e-mail version used for this step's meeting e-mails. null removes the setting (its default applies again); left out keeps it."
    • removedInput schema / properties / meeting / properties / horizon_days / description
      Removed value: -"Availability mode: latest booking, days from now, 1 to 365 (default 21). null removes the setting (its default applies again); left out keeps it."
    • removedInput schema / properties / meeting / properties / instructions / description
      Removed value: -"Instructions shown to the candidate. null removes the setting (its default applies again); left out keeps it."
    • removedInput schema / properties / meeting / properties / interviewer_profile_ids / description
      Removed value: -"Availability mode: the interviewers whose free times are offered (profile.id of users of the company); empty = the position's recruiter. null removes the setting (its default applies again); left out keeps it."
    • removedInput schema / properties / meeting / properties / location / description
      Removed value: -"Address or room shown to the candidate when a slot has none. null removes the setting (its default applies again); left out keeps it."
    • removedInput schema / properties / meeting / properties / meeting_url / description
      Removed value: -"Video link (http or https) used when a slot has none. null removes the setting (its default applies again); left out keeps it."
    • removedInput schema / properties / meeting / properties / min_notice_hours / description
      Removed value: -"Availability mode: earliest booking, hours from now, 0 to 720 (default 12). null removes the setting (its default applies again); left out keeps it."
    • removedInput schema / properties / meeting / properties / mode / description
      Removed value: -"How candidates book: slots (hand-made slots, the default; add them with manage_meeting_slot) or availability (free times of the interviewers). null removes the setting (its default applies again); left out keeps it."
    • removedInput schema / properties / meeting / properties / nudge_after_days / description
      Removed value: -"Days after which a candidate who has not booked gets a reminder; 0 = never (default 3). null removes the setting (its default applies again); left out keeps it."
    • removedInput schema / properties / meeting / properties / panel_profile_ids / description
      Removed value: -"Availability mode, merchant switch meeting_panels: a panel of 2 to 8 users who all attend (profile.id); the first leads the meeting and cannot be a read-only user. Candidates are offered only times when everyone is free. null = one interviewer. null removes the setting (its default applies again); left out keeps it."
    • removedInput schema / properties / meeting / properties / reschedule_cutoff_hours / description
      Removed value: -"Hours before the meeting after which the candidate can no longer reschedule or cancel (default 24). null removes the setting (its default applies again); left out keeps it."
    • removedInput schema / properties / meeting / properties / slot_interval_minutes / description
      Removed value: -"Availability mode: start times every N minutes, 5 to 240 (default 30). null removes the setting (its default applies again); left out keeps it."
    • changedInput schema / properties / pre_screening / allOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "description": "Settings of the pre-screening step (interview_def_pre_screening).",
      -    "properties": {
      -      "all_rules_fulfilled_auto_approve": {
      -        "description": "Move a candidate on without review when every rule is fulfilled.",
      -        "type": "boolean"
      -      },
      -      "assessment_rules": {
      -        "description": "The whole list of rules (replaced, not merged), each with its own id: resume_match (resume_score_accept / resume_score_reject, whole numbers 0 to 10), resume_technical_experience, form_* rules with type screening, required or optional and action reject or mark_for_review.",
      -        "items": {
      -          "properties": {
      -            "id": {
      -              "minLength": 1,
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "id"
      -          ],
      -          "type": "object"
      -        },
      -        "maxItems": 100,
      -        "type": "array"
      -      },
      -      "candidate_expectations": {
      -        "description": "What the AI expects of a candidate, in words. null or empty removes it.",
      -        "maxLength": 4000,
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "form_fields": {
      -        "description": "The whole list of form fields (replaced, not merged), each with its own id: standard fields reuse the rule id (e.g. form_education, with mandatory), custom fields use custom_<timestamp> with title, field_type (text, file, radio), type (required, optional) and options.",
      -        "items": {
      -          "properties": {
      -            "id": {
      -              "minLength": 1,
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "id"
      -          ],
      -          "type": "object"
      -        },
      -        "maxItems": 100,
      -        "type": "array"
      -      },
      -      "position_country": {
      -        "description": "ISO country code of the position; stored upper case.",
      -        "pattern": "^[A-Za-z]{2}$",
      -        "type": "string"
      -      },
      -      "type": {
      -        "description": "What the candidate sends: resume, form, or resume_with_form.",
      -        "enum": [
      -          "resume",
      -          "form",
      -          "resume_with_form"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "id": {
      -        "description": "Read only (interview_def_pre_screening.id, as job-interview-get answers it); ignored.",
      -        "type": "string"
      -      },
      -      "status": {
      -        "description": "Read only (as job-interview-get answers it); ignored.",
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "all_rules_fulfilled_auto_approve": {
      +        "type": "boolean"
      +      },
      +      "assessment_rules": {
      +        "items": {
      +          "properties": {
      +            "id": {
      +              "minLength": 1,
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "id"
      +          ],
      +          "type": "object"
      +        },
      +        "maxItems": 100,
      +        "type": "array"
      +      },
      +      "candidate_expectations": {
      +        "maxLength": 4000,
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "form_fields": {
      +        "items": {
      +          "properties": {
      +            "id": {
      +              "minLength": 1,
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "id"
      +          ],
      +          "type": "object"
      +        },
      +        "maxItems": 100,
      +        "type": "array"
      +      },
      +      "position_country": {
      +        "pattern": "^[A-Za-z]{2}$",
      +        "type": "string"
      +      },
      +      "type": {
      +        "enum": [
      +          "resume",
      +          "form",
      +          "resume_with_form"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "id": {
      +        "type": "string"
      +      },
      +      "status": {
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
    • changedInput schema / properties / pre_screening / description
      Previous value: -"Pre-screening steps: the settings to change (see PositionStepPreScreening). The object read with include=process can be sent back as it is."New value: +"Pre-screening steps: the settings to change (see PositionStepPreScreening)."
    • removedOutput schema / properties / booked_meetings / description
      Removed value: -"Upcoming booked meetings on this step's slots."
    • removedOutput schema / properties / candidates_on_step / description
      Removed value: -"Applications whose current step is this step (not withdrawn, hired or declined). Settings are read live: a change reaches them at once."
    • removedOutput schema / properties / changed_keys / description
      Removed value: -"What changed (or would change in a dry run), as paths: name, advance, kombo.accept_stage_id, meeting.duration_minutes, external_assessment.due_days, scope_types, allow_human_interview, pre_screening.type, ..."
    • removedOutput schema / properties / dry_run / description
      Removed value: -"true when nothing was written."
    • removedOutput schema / properties / step / description
      Removed value: -"A step of a position's process with its settings; only the settings object of the step's own type is present."
    • removedOutput schema / properties / step / properties / advance / description
      Removed value: -"auto or manual (see the request field)."
    • removedOutput schema / properties / step / properties / certo / description
      Removed value: -"certo_verification steps."
    • removedOutput schema / properties / step / properties / certo / properties / include_contact / description
      Removed value: -"See the request field."
    • removedOutput schema / properties / step / properties / certo / properties / scope_types / description
      Removed value: -"null = everything."
    • removedOutput schema / properties / step / properties / certo / properties / wait_for_identity / description
      Removed value: -"See the request field."
    • removedOutput schema / properties / step / properties / external_assessment / description
      Removed value: -"Settings of an external assessment step (merchant switch external_assessment)."
    • removedOutput schema / properties / step / properties / external_assessment / properties / due_days / description
      Removed value: -"Days the candidate has to finish, 1 to 60 (default 7)."
    • removedOutput schema / properties / step / properties / external_assessment / properties / instructions / description
      Removed value: -"Shown to the candidate (falls back to the provider's instructions). null removes the setting (its default applies again); left out keeps it."
    • removedOutput schema / properties / step / properties / external_assessment / properties / pass_score / description
      Removed value: -"Optional pass mark: a result without a pass flag passes when its score is at least this. null removes the setting (its default applies again); left out keeps it."
    • removedOutput schema / properties / step / properties / external_assessment / properties / provider_id / description
      Removed value: -"The assessment provider (merchant_assessment_provider.id, active, of this company). Required on a new step."
    • removedOutput schema / properties / step / properties / id / description
      Removed value: -"The step (position_def_step.id)."
    • removedOutput schema / properties / step / properties / interview / description
      Removed value: -"Settings of an AI interview step."
    • removedOutput schema / properties / step / properties / interview / properties / allow_human_interview / description
      Removed value: -"Let candidates ask for an interview with a person instead of the AI. Question content is changed with update_interview, on the step's interview_set_id."
    • removedOutput schema / properties / step / properties / interview_pre_screening_id / description
      Removed value: -"Pre-screening steps: interview_def_pre_screening.id."
    • removedOutput schema / properties / step / properties / interview_set_id / description
      Removed value: -"AI interview steps: the interview (interview_def_set.id); its questions are changed with update_interview."
    • removedOutput schema / properties / step / properties / kombo / description
      Removed value: -"Mapping of this step to the connected ATS (Kombo). Each key is merged separately."
    • removedOutput schema / properties / step / properties / kombo / properties / accept_stage_id / description
      Removed value: -"ATS stage (Kombo id) a candidate moves to when accepted on this step. null removes the setting (its default applies again); left out keeps it."
    • removedOutput schema / properties / step / properties / kombo / properties / reject_reason_ai_id / description
      Removed value: -"ATS rejection reason (Kombo id) used when the AI rejects on this step. null removes the setting (its default applies again); left out keeps it."
    • removedOutput schema / properties / step / properties / kombo / properties / reject_reason_id / description
      Removed value: -"ATS rejection reason (Kombo id) used when a recruiter rejects on this step. null removes the setting (its default applies again); left out keeps it."
    • removedOutput schema / properties / step / properties / meeting / description
      Removed value: -"Settings of a meeting step. Each key is merged separately; keys left out keep their value."
    • removedOutput schema / properties / step / properties / meeting / properties / conference_provider / description
      Removed value: -"The meeting link: in_person (no link), fixed (meeting_url), zoom / teams / meet (made at booking with the interviewer's own calendar account, meeting_url is the fallback). Absent: fixed when meeting_url is set, else in_person. null removes the setting (its default applies again); left out keeps it."
    • removedOutput schema / properties / step / properties / meeting / properties / data_collection / description
      Removed value: -"What the interviewer records after the meeting. Replaced as a whole. null removes the setting (its default applies again); left out keeps it."
    • removedOutput schema / properties / step / properties / meeting / properties / data_collection / properties / mode / description
      Removed value: -"none, form (a meeting form, taxonomy_id) or text (free notes)."
    • removedOutput schema / properties / step / properties / meeting / properties / data_collection / properties / taxonomy_id / description
      Removed value: -"The meeting form (merchant_taxonomy.id, type meeting_form, of this company); required for mode form."
    • removedOutput schema / properties / step / properties / meeting / properties / duration_minutes / description
      Removed value: -"Meeting length in minutes, 5 to 1440 (default 30). null removes the setting (its default applies again); left out keeps it."
    • removedOutput schema / properties / step / properties / meeting / properties / email_variant / description
      Removed value: -"Merchant switch meeting_email_variants: the name of the e-mail version used for this step's meeting e-mails. null removes the setting (its default applies again); left out keeps it."
    • removedOutput schema / properties / step / properties / meeting / properties / horizon_days / description
      Removed value: -"Availability mode: latest booking, days from now, 1 to 365 (default 21). null removes the setting (its default applies again); left out keeps it."
    • removedOutput schema / properties / step / properties / meeting / properties / instructions / description
      Removed value: -"Instructions shown to the candidate. null removes the setting (its default applies again); left out keeps it."
    • removedOutput schema / properties / step / properties / meeting / properties / interviewer_profile_ids / description
      Removed value: -"Availability mode: the interviewers whose free times are offered (profile.id of users of the company); empty = the position's recruiter. null removes the setting (its default applies again); left out keeps it."
    • removedOutput schema / properties / step / properties / meeting / properties / location / description
      Removed value: -"Address or room shown to the candidate when a slot has none. null removes the setting (its default applies again); left out keeps it."
    • removedOutput schema / properties / step / properties / meeting / properties / meeting_url / description
      Removed value: -"Video link (http or https) used when a slot has none. null removes the setting (its default applies again); left out keeps it."
    • removedOutput schema / properties / step / properties / meeting / properties / min_notice_hours / description
      Removed value: -"Availability mode: earliest booking, hours from now, 0 to 720 (default 12). null removes the setting (its default applies again); left out keeps it."
    • removedOutput schema / properties / step / properties / meeting / properties / mode / description
      Removed value: -"How candidates book: slots (hand-made slots, the default; add them with manage_meeting_slot) or availability (free times of the interviewers). null removes the setting (its default applies again); left out keeps it."
    • removedOutput schema / properties / step / properties / meeting / properties / nudge_after_days / description
      Removed value: -"Days after which a candidate who has not booked gets a reminder; 0 = never (default 3). null removes the setting (its default applies again); left out keeps it."
    • removedOutput schema / properties / step / properties / meeting / properties / panel_profile_ids / description
      Removed value: -"Availability mode, merchant switch meeting_panels: a panel of 2 to 8 users who all attend (profile.id); the first leads the meeting and cannot be a read-only user. Candidates are offered only times when everyone is free. null = one interviewer. null removes the setting (its default applies again); left out keeps it."
    • removedOutput schema / properties / step / properties / meeting / properties / reschedule_cutoff_hours / description
      Removed value: -"Hours before the meeting after which the candidate can no longer reschedule or cancel (default 24). null removes the setting (its default applies again); left out keeps it."
    • removedOutput schema / properties / step / properties / meeting / properties / slot_interval_minutes / description
      Removed value: -"Availability mode: start times every N minutes, 5 to 240 (default 30). null removes the setting (its default applies again); left out keeps it."
    • removedOutput schema / properties / step / properties / name / description
      Removed value: -"The name recruiters gave the step; null = the type's default label."
    • removedOutput schema / properties / step / properties / position_id / description
      Removed value: -"The position (position_def_set.id)."
    • removedOutput schema / properties / step / properties / pre_screening / description
      Removed value: -"Settings of the pre-screening step (interview_def_pre_screening)."
    • removedOutput schema / properties / step / properties / pre_screening / properties / all_rules_fulfilled_auto_approve / description
      Removed value: -"Move a candidate on without review when every rule is fulfilled."
    • removedOutput schema / properties / step / properties / pre_screening / properties / assessment_rules / description
      Removed value: -"The whole list of rules (replaced, not merged), each with its own id: resume_match (resume_score_accept / resume_score_reject, whole numbers 0 to 10), resume_technical_experience, form_* rules with type screening, required or optional and action reject or mark_for_review."
    • removedOutput schema / properties / step / properties / pre_screening / properties / candidate_expectations / description
      Removed value: -"What the AI expects of a candidate, in words. null or empty removes it."
    • removedOutput schema / properties / step / properties / pre_screening / properties / form_fields / description
      Removed value: -"The whole list of form fields (replaced, not merged), each with its own id: standard fields reuse the rule id (e.g. form_education, with mandatory), custom fields use custom_<timestamp> with title, field_type (text, file, radio), type (required, optional) and options."
    • removedOutput schema / properties / step / properties / pre_screening / properties / position_country / description
      Removed value: -"ISO country code of the position; stored upper case."
    • removedOutput schema / properties / step / properties / pre_screening / properties / type / description
      Removed value: -"What the candidate sends: resume, form, or resume_with_form."
    • removedOutput schema / properties / step / properties / sequence_no / description
      Removed value: -"Place in the process, 1 = first."
    • removedOutput schema / properties / step / properties / type / description
      Removed value: -"Step type: pre-screening, interview (AI interview), meeting, external_assessment or certo_verification."
    • removedOutput schema / properties / step / properties / updated_at / description
      Removed value: -"Version of the step (when it last changed, else when it was made). Send it back as expected_updated_at to refuse a change made by someone else in the meantime."
    • removedOutput schema / properties / warnings / description
      Removed value: -"Things to tell the user before or after the change (who it reaches, settings that have no effect yet)."
  5. Added

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (destructive/idempotent/openWorld), it discloses that settings are live and reach candidates already on the step, that nothing is e-mailed, that a stale expected_updated_at yields a 409 with no write, that null removes keys, that list arguments replace wholesale, and that new meeting durations do not affect existing slots. This is exactly the extra context annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and merge rules, and the trailing get_tool_reference pointer is useful. It is dense and some clauses run long (the ad-hoc JSON example inline), which slightly hurts scanability for a 13-parameter tool, but little is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, nested, 13-parameter mutation with an output schema and annotations, the description covers concurrency, merge semantics, side effects on live candidates, and validation scope. Nothing an agent needs to invoke it safely is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description still adds meaning the schema lacks: merge-vs-replace semantics per key, the read-only pre_screening id/status, the required shape of a new form field (custom_<timestamp> id, field_type/type/options), and the distinction between all_rules_fulfilled_auto_approve and advance. It meaningfully reduces the chance of a destructive list-replacement mistake.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Change one step's settings" states a specific verb, resource and scope (single step, by step_id), and the type-specific settings objects make clear it patches one step rather than the whole process (set_position_process). An agent can distinguish it from siblings like set_position_process or update_interview without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete workflow guidance: read current state via get_interview_definition include=process, pass expected_updated_at for optimistic concurrency, use dry_run=true to preview, and use manage_meeting_slot for existing slots. It does not explicitly say when to prefer set_position_process instead, which is the main missing exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.