Skip to main content
This guide walks you all the way from nothing to a candidate getting an interview invite. Follow the steps in order. Each step builds on the one before.
You need an API key first. Make one in the dashboard under Developer → API Keys. It starts with iv_live_. Put it in the x-api-key header on every request below, and replace <slug> with your team slug.

What you’ll build

Step 1 — Create the Interviewer

This is the Interviewer. It decides the personality and what gets graded.
👉 Copy the id from the response. Call it INTERVIEWER_ID.

Step 2 — Describe the Role

This is the Role. It says what the job is and the bar to pass.
👉 Copy the id. Call it ROLE_ID.

Step 3 — Add the Round

This is the Round. It connects the Role to your Interviewer.

Step 4 — Add the candidate

This is the participant.
👉 Copy the id. Call it CANDIDATE_ID.

Step 5 — Send the interview

This is the session. The invite email goes out automatically.
The response includes a join_url and confirms the invite was emailed.

Step 6 — Get the result

When Jane finishes, you get her scorecard two ways:

Best: webhooks

Listen for the session.completed event — it arrives the moment she’s done.

Simple: poll

Check GET /api/v1/sessions/{id} until status is completed.
The idempotency_key in Step 5 means you can safely retry the request. If it runs twice, you still get one interview, not two.

You’re done 🎉

You built a full hiring flow. To add more Rounds, repeat Step 3 with a higher stage_order and a tougher Interviewer.
Last modified on June 30, 2026