Skip to main content
POST
Change the settings of a position step

Authorizations

Authorization
string
header
required

Supabase JWT — Authorization: Bearer <token>.

Body

application/json
step_id
string<uuid>
required

The step (position_def_step.id, from get_interview_definition with include=process or set_position_process).

name
string | null

New name of the step. null or empty removes the name (the type's default label is shown); left out keeps it.

Maximum string length: 300
expected_updated_at
string<date-time> | null

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.

dry_run
boolean
default:false

true: validate and answer what would change and whom it reaches, without writing anything.

advance
enum<string> | null

auto: a candidate who passes moves on by themselves; manual: a recruiter moves them on. null = auto.

Available options:
auto,
manual
kombo
object

Mapping of this step to the connected ATS (Kombo). Each key is merged separately.

meeting
object

Settings of a meeting step. Each key is merged separately; keys left out keep their value.

certo
object

Settings of a certo.bio verification step.

external_assessment
object

Settings of an external assessment step (the external_assessment feature).

interview
object

Settings of an AI interview step.

pre_screening
object

Pre-screening steps: the settings to change, as include=process returns them; that object can be sent back as it is.

Response

The step after the change (or as it would be, in a dry run).

step
object
required

A step of a position's process with its settings; only the settings object of the step's own type is present.

changed_keys
string[]
required

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, ...

candidates_on_step
integer
required

Applications whose current step is this step (not withdrawn, hired or declined). Settings are read live: a change reaches them at once.

booked_meetings
integer
required

Upcoming booked meetings on this step's slots.

warnings
string[]
required

Things to tell the user before or after the change (who it reaches, settings that have no effect yet).

dry_run
boolean
required

true when nothing was written.