> ## Documentation Index
> Fetch the complete documentation index at: https://intervyo.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Rounds

> What a Round is, every field explained simply, and how to build a pipeline — with hiring, training, and mock-interview examples.

A **Round** is **one step** inside a [Role](/en/concepts/roles). If a Role is the
whole journey, a Round is a single door the candidate walks through.

You can have one Round (a quick screen) or many Rounds in a row (screen →
technical → final). Each Round runs its own interview.

## How Rounds connect

```text theme={null}
Role: "Senior Backend Engineer"
   Round 1: Phone Screen   →   Round 2: Technical   →   Round 3: Final
   pass? advance               pass? advance             pass? recommend
```

Each Round points at an **Interviewer** (the AI persona for that step) and
has its own pass mark.

## Every field, in plain words

<ParamField path="role_id" type="uuid" required>
  Which template this stage belongs to.
</ParamField>

<ParamField path="type" type="string" required>
  A short label for the step, like `"technical"`.
</ParamField>

<ParamField path="stage_name" type="string">
  The name the candidate sees, like `"Technical Screen"`.
</ParamField>

<ParamField path="stage_type" type="enum">
  The format: `ai_interview`, `roleplay_simulation`, `practice_session`,
  `manual_review`, `async_assessment`, or `final_review`.
</ParamField>

<ParamField path="interviewer_id" type="uuid" required>
  The Interviewer that runs this step. Required — a Round can't run without one.
</ParamField>

<ParamField path="stage_order" type="integer">
  The position in line. `0` is first, `1` is next, and so on.
</ParamField>

<ParamField path="duration_minutes" type="integer">
  How long the interview lasts (default `30`).
</ParamField>

<ParamField path="pass_threshold" type="number (0–100)">
  The score needed to pass this step.
</ParamField>

<ParamField path="allow_retake" type="boolean">
  Can the candidate try again if they fail? Default `false`.
</ParamField>

<ParamField path="automation_rule" type="none | auto_advance | require_reviewer_approval">
  What happens when the step finishes:

  * `auto_advance` — move on automatically
  * `require_reviewer_approval` — wait for a human to say yes
  * `none` — do nothing automatic
</ParamField>

## Build a stage, step by step

Stages live **inside a template**, so you add them from a template — in the
dashboard or over the API.

<Tabs>
  <Tab title="Dashboard (UI)">
    <Steps>
      <Step title="Open the Role">
        In the left sidebar, click **Roles** and open the one you
        want to add a Round to.
      </Step>

      <Step title="Add a Round">
        In the Role's **Rounds** section, click **Add round**.
      </Step>

      <Step title="Name it and pick the format">
        Set the **Title** and **type** (AI interview, roleplay, practice…).
      </Step>

      <Step title="Choose the Interviewer">
        Pick the **Interviewer** that runs this Round.
      </Step>

      <Step title="Set the order and pass mark">
        Set the **order** and the **pass threshold**, then choose what happens on
        completion (auto-advance or wait for approval).
      </Step>

      <Step title="Save">
        Save the stage. Repeat to build a multi-round pipeline.
      </Step>
    </Steps>
  </Tab>

  <Tab title="API">
    <Steps>
      <Step title="Have a template and an agent ready">
        You need a `role_id` and an `interviewer_id` (both required).
      </Step>

      <Step title="Name the step and pick the format">
        Set `stage_name` and `stage_type`.
      </Step>

      <Step title="Set the order and pass mark">
        Set `stage_order` (start at `0`) and `pass_threshold`.
      </Step>

      <Step title="Send the request">
        ```bash theme={null}
        curl -X POST "https://www.intervyo.ai/api/v1/rounds?accountSlug=<slug>" \
          -H "x-api-key: iv_live_your_key_here" \
          -H "Content-Type: application/json" \
          -d '{
            "role_id": "ce1cd564-...",
            "type": "technical",
            "stage_name": "Technical Screen",
            "stage_type": "ai_interview",
            "stage_order": 0,
            "duration_minutes": 45,
            "pass_threshold": 70,
            "automation_rule": "auto_advance",
            "interviewer_id": "455b1513-..."
          }'
        ```
      </Step>
    </Steps>
  </Tab>
</Tabs>

## Examples for each use case

<Tabs>
  <Tab title="Hiring">
    Several steps, a rising bar, and a human check before the last round.

    ```json theme={null}
    [
      { "stage_name": "Phone Screen", "stage_type": "ai_interview", "stage_order": 0, "pass_threshold": 60, "automation_rule": "auto_advance" },
      { "stage_name": "Technical",    "stage_type": "ai_interview", "stage_order": 1, "pass_threshold": 75, "automation_rule": "require_reviewer_approval" },
      { "stage_name": "Final",        "stage_type": "final_review",  "stage_order": 2, "pass_threshold": 80 }
    ]
    ```
  </Tab>

  <Tab title="Training">
    Practice steps people can retry. No gate — the goal is to improve.

    ```json theme={null}
    [
      { "stage_name": "Discovery Drill", "stage_type": "roleplay_simulation", "stage_order": 0, "allow_retake": true, "pass_threshold": 70 },
      { "stage_name": "Objection Drill", "stage_type": "roleplay_simulation", "stage_order": 1, "allow_retake": true, "pass_threshold": 70 }
    ]
    ```
  </Tab>

  <Tab title="Mock interview">
    Just one step the person can repeat as many times as they want.

    ```json theme={null}
    [
      { "stage_name": "Mock Round", "stage_type": "practice_session", "stage_order": 0, "allow_retake": true, "duration_minutes": 45 }
    ]
    ```
  </Tab>
</Tabs>

## Next

<CardGroup cols={2}>
  <Card title="Participants" icon="user" href="/en/concepts/participants">
    Add the people who will go through your Rounds.
  </Card>

  <Card title="Create a Round (API)" icon="terminal" href="/api-reference/rounds/post-rounds">
    The full endpoint reference.
  </Card>
</CardGroup>
