Skip to main content
Glama

Set a position's steps

set_position_process
DestructiveIdempotent

[Positions] Add, remove or reorder the steps of a DRAFT position (pre-screening, AI interview, meeting, external assessment, Certo verification), sending the whole ordered list. New steps get the admin's defaults; update_position_step changes a step's settings. A step candidates already reached cannot be removed, nor a meeting step that still has slots. get_interview_definition include=process returns the current steps. dry_run=true returns the diff (added, removed, moved, changed) without saving. No tool creates a position from scratch: duplicate_position copies one as a draft, and the admin creates new ones.

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>",
      "steps": "<steps>"
    },
    "name": "set_position_process"
  }
}

Input Schema

NameRequiredDescriptionDefault
stepsYesThe whole process in order (replaces the current one): existing steps by id, new ones without. An existing step left out is removed, unless candidates already reached it (409).
dry_runNotrue: run the change in a transaction that is rolled back and answer the result; nothing is written.
llm_modelNoYour model id, e.g. "claude-opus-4-8"; "unknown" if unsure. For analytics.
position_idYesThe position (a position `id` from list_interviews). It must be a draft.
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.

Output Schema

NameRequiredDescriptionDefault
addedYes
movedYes
stepsYes
changedYes
dry_runYes
removedYes
position_idYes
_mcp_instructionsNoServer-issued metadata for this conversation.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / position_id / description
      Previous value: -"The position (position_def_set.id). It must be a draft."New value: +"The position (a position `id` from list_interviews). It must be a draft."
  2. Changed66 schema fields changed
    • 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 / steps / items / description
      Removed value: -"One step of the new process. Settings (advance, kombo and the object of the step's type) are for NEW steps only; change those of an existing step with update_position_step."
    • removedInput schema / properties / steps / items / properties / advance / description
      Removed value: -"auto: a candidate who passes moves on by themselves; manual: a recruiter moves them on. null = auto."
    • removedInput schema / properties / steps / items / properties / certo / description
      Removed value: -"Settings of a certo.bio verification step."
    • removedInput schema / properties / steps / items / properties / certo / properties / include_contact / description
      Removed value: -"Ask for the contact details of referees."
    • removedInput schema / properties / steps / items / properties / certo / properties / scope_types / description
      Removed value: -"What is verified; null = everything."
    • removedInput schema / properties / steps / items / properties / certo / properties / wait_for_identity / description
      Removed value: -"Wait until the candidate has verified their identity before the step completes."
    • removedInput schema / properties / steps / items / properties / external_assessment / description
      Removed value: -"Settings of an external assessment step (merchant switch external_assessment)."
    • removedInput schema / properties / steps / items / properties / external_assessment / properties / due_days / description
      Removed value: -"Days the candidate has to finish, 1 to 60 (default 7)."
    • removedInput schema / properties / steps / items / 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 / steps / items / 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 / steps / items / 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 / steps / items / properties / id / description
      Removed value: -"An existing step of this position (position_def_step.id) to keep, in this place. Leave out for a new step."
    • removedInput schema / properties / steps / items / properties / interview / description
      Removed value: -"Settings of an AI interview step."
    • removedInput schema / properties / steps / items / 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 / steps / items / properties / interview_template_id / description
      Removed value: -"New AI interview steps: the avatar (interview_templates.id, from list_avatars). Default: the avatar of the first AI interview of the position. Its settings are copied from that interview; add questions with update_interview."
    • removedInput schema / properties / steps / items / properties / kombo / description
      Removed value: -"Mapping of this step to the connected ATS (Kombo). Each key is merged separately."
    • removedInput schema / properties / steps / items / 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 / steps / items / 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 / steps / items / 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."
    • removedInput schema / properties / steps / items / properties / meeting / description
      Removed value: -"Settings of a meeting step. Each key is merged separately; keys left out keep their value."
    • removedInput schema / properties / steps / items / 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 / steps / items / 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 / steps / items / properties / meeting / properties / data_collection / properties / mode / description
      Removed value: -"none, form (a meeting form, taxonomy_id) or text (free notes)."
    • removedInput schema / properties / steps / items / 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 / steps / items / 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 / steps / items / 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 / steps / items / 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 / steps / items / 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 / steps / items / 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 / steps / items / 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 / steps / items / 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 / steps / items / 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 / steps / items / 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 / steps / items / 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 / steps / items / 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 / steps / items / 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 / steps / items / 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."
    • removedInput schema / properties / steps / items / properties / name / description
      Removed value: -"Name of the step. null or empty removes it (the type's default label is shown); left out keeps the current name."
    • removedInput schema / properties / steps / items / properties / type / description
      Removed value: -"pre-screening (at most one, first), interview (AI interview), meeting, external_assessment (merchant switch external_assessment) or certo_verification (company connected to certo.bio). An existing step keeps its type."
    • removedOutput schema / properties / added / description
      Removed value: -"Steps added."
    • removedOutput schema / properties / added / items / properties / name / description
      Removed value: -"Step name."
    • removedOutput schema / properties / added / items / properties / sequence_no / description
      Removed value: -"Its place."
    • removedOutput schema / properties / added / items / properties / type / description
      Removed value: -"Step type."
    • removedOutput schema / properties / changed / description
      Removed value: -"Kept steps whose name or settings changed."
    • removedOutput schema / properties / changed / items / properties / id / description
      Removed value: -"The step (position_def_step.id)."
    • removedOutput schema / properties / changed / items / properties / name_changed / description
      Removed value: -"The name changed."
    • removedOutput schema / properties / changed / items / properties / settings_changed / description
      Removed value: -"The settings changed."
    • removedOutput schema / properties / dry_run / description
      Removed value: -"true when nothing was written."
    • removedOutput schema / properties / moved / description
      Removed value: -"Kept steps whose place changed."
    • removedOutput schema / properties / moved / items / properties / from / description
      Removed value: -"Old place."
    • removedOutput schema / properties / moved / items / properties / id / description
      Removed value: -"The step (position_def_step.id)."
    • removedOutput schema / properties / moved / items / properties / to / description
      Removed value: -"New place."
    • removedOutput schema / properties / position_id / description
      Removed value: -"The position (position_def_set.id)."
    • removedOutput schema / properties / removed / description
      Removed value: -"Steps removed (with their AI interview or pre-screening settings)."
    • removedOutput schema / properties / removed / items / properties / id / description
      Removed value: -"The removed step (position_def_step.id)."
    • removedOutput schema / properties / removed / items / properties / name / description
      Removed value: -"Step name."
    • removedOutput schema / properties / removed / items / properties / type / description
      Removed value: -"Step type."
    • removedOutput schema / properties / steps / description
      Removed value: -"The process after the change, in order."
    • removedOutput schema / properties / steps / items / properties / id / description
      Removed value: -"The step (position_def_step.id); null for a new step in a dry run."
    • removedOutput schema / properties / steps / items / properties / interview_pre_screening_id / description
      Removed value: -"Pre-screening step: interview_def_pre_screening.id (null for a new one in a dry run)."
    • removedOutput schema / properties / steps / items / properties / interview_set_id / description
      Removed value: -"AI interview steps: interview_def_set.id (null for a new one in a dry run)."
    • removedOutput schema / properties / steps / items / properties / is_new / description
      Removed value: -"true for a step this call adds."
    • removedOutput schema / properties / steps / items / properties / name / description
      Removed value: -"Step name; null = the default label."
    • removedOutput schema / properties / steps / items / properties / sequence_no / description
      Removed value: -"Place in the process, 1 = first."
    • removedOutput schema / properties / steps / items / properties / type / description
      Removed value: -"Step type."
  3. Added

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses that omitted existing steps are deleted, that new steps inherit admin defaults, that the position must be a draft, that blocking removals return 409, and that dry_run returns an added/removed/moved/changed diff without saving. The destructive semantics declared by destructiveHint are made concrete rather than restated.

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 action and scope, then alternatives, then constraints, then dry_run — a sensible order with little waste. The closing pointer to get_tool_reference for full argument examples is defensible but slightly pad-like, and a couple of clauses are densely packed.

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, multi-parameter list-replacement tool, the description covers draft prerequisite, deletion rules, error condition, dry-run behavior, and sibling alternatives. An output schema exists, so it is not obligated to describe return values, and nothing an agent needs to call this safely is missing.

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

Parameters4/5

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

Schema coverage is 100% and the schema already documents steps, dry_run, and position_id, so the baseline is 3. The description still adds meaning the schema does not: the list is sent whole and replaces the current one, new steps carry admin defaults, and dry_run yields a specific diff shape rather than a generic preview.

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?

States a specific verb set and resource: "Add, remove or reorder the steps of a DRAFT position ... sending the whole ordered list." It immediately distinguishes itself from the closest sibling by noting "update_position_step changes a step's settings," so an agent can pick correctly without opening either schema.

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

Usage Guidelines5/5

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

Explicit routing: use update_position_step for per-step settings, get_interview_definition include=process to read current steps, duplicate_position to create a draft, and the note that no tool creates a position from scratch. It also names the conditions that block a call (candidates already reached a step, a meeting step with slots), which is exactly the when-not guidance an agent needs.

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.