Skip to main content

When to use this

Use the updatePosition mutation to change details of an existing position: rename it, adjust tags, change visibility, tweak interview timing defaults (max duration, thinking time, retakes), update questions, or configure candidate notifications. updatePosition is a partial update. Only the top-level fields you include are changed; everything else stays untouched. Arrays (steps, candidateNotifications, tags, users) are the exception: when provided, they fully replace the existing values, so always fetch the current state before updating them.

Before you start

You’ll need the position’s id. If you don’t have it, see Fetching Positions. Don’t forget to send your Hireflix API Key in the X-API-KEY header to https://api.hireflix.com/me.

GraphQL Playground

Update examples

Each tab below shows a focused example. All of them use the same updatePosition mutation, changing only the fields relevant to that task. The last tab shows a full example combining everything.
Rename a position, replace its tags, or toggle its public visibility.
  • name – new title for the position.
  • tags – up to 5 tags, each up to 25 characters. The array fully replaces existing tags.
  • public – whether the position is publicly accessible.

Handling the response

updatePosition returns a union type. Always match on the possible cases:
  • MutationUpdatePositionSuccess – the update succeeded; read the updated position from data.
  • PositionNotFoundError – the positionId doesn’t match any position on your account.
  • ValidationError – one or more fields failed validation; inspect fieldErrors for the offending path and message.

Key reminders

  • Partial updates – omitted top-level fields are left untouched.
  • Arrays replace entirely – steps, candidateNotifications, tags, and users are fully replaced when provided. Fetch first, then update.
  • Template IDs – use template(type: "email") { list { id name } } to map human-readable names to IDs before configuring notifications.
  • maxDurationSeconds replaces the deprecated timeToAnswer field.

Learn next?

Let’s learn how to archive a position.