## Why It Matters

The pipeline is where hiring decisions happen. Understanding how candidates move through stages — and how your team's actions trigger transitions — keeps your process moving and prevents bottlenecks.

## How the Pipeline Works

Each job posting has an ordered list of stages. Candidates progress through stages one at a time, from first to last. Every stage has a type (e.g. Application Form, Team Review, Live Interview) and optional configuration that controls its behavior.

When a candidate applies, they enter the first stage. From there, your team advances them through subsequent stages until they reach the end of the pipeline or are rejected.

## Stage Progress Statuses

Each candidate has a **stage progress** record for every stage they've reached. It tracks where they are:

| Status | Meaning |
|--------|---------|
| Pending | The candidate hasn't started this stage yet |
| In Progress | The candidate is actively working on this stage |
| Completed | The stage is finished — candidate can be advanced |
| Skipped | The stage was bypassed (manually skipped) |

A candidate's current stage is the one with an **In Progress** status. All previous stages show as Completed or Skipped.

## Advancing Candidates

The **Advance** button appears on a candidate's application page when all three conditions are met:

1. The application is active (not rejected or withdrawn)
2. The current stage's requirements are complete (submission received, reviews finished, etc.)
3. A next stage exists in the pipeline

When you click Advance:

- The current stage progress is marked **Completed**
- The next stage progress is created and marked **In Progress**
- The candidate receives a notification about their new stage (if applicable)
- A Slack notification is sent to the channel (if Slack is connected)

### What Counts as "Complete"

Different stage types have different completion criteria:

| Stage Type | Complete When |
|------------|--------------|
| Application Form | Candidate submits the form |
| Code Assignment | Candidate submits their code (or deadline auto-submits) |
| Portfolio Upload | Candidate uploads their files |
| Questionnaire | Candidate submits their answers |
| Video | Candidate watches the required percentage |
| Video Recording | Candidate records and submits their video |
| Team Review | Voting threshold is met (see Auto-Advancement) |
| Live Interview | Interview is marked complete |
| Reference Check | Required references are collected |
| Offer | Candidate or admin accepts the offer |

## Auto-Advancement

Some stages can advance candidates automatically based on configured rules:

### Voting Thresholds (Team Review)

Team review stages support a voting threshold. When enough reviewers submit positive recommendations (Yes or Strong Yes), the candidate advances automatically. Configure this with:

- **Threshold** — Minimum number of positive votes needed (1-10)
- **Require all reviewers** — Wait for every assigned reviewer to vote before evaluating
- **Veto auto-rejects** — A single Strong No recommendation automatically rejects the candidate

### Code Assignment Deadline

When a code assignment's deadline expires, Kit automatically submits the candidate's work. This prevents stalled pipelines when candidates don't explicitly submit before the deadline.

## Rejecting Candidates

You can reject a candidate at any stage. Click **Reject** on their application page to:

1. Enter an optional rejection reason (internal — candidates don't see this)
2. A rejection email is scheduled based on your account's configured delay

### Email Delay

Rejection emails aren't sent immediately. Your account has a configurable delay (default: 24 hours, range: 0-168 hours). This gives you a buffer to reconsider or batch rejections. You can adjust this delay in your [hiring settings](/hiring/settings).

The delay prevents the awkward situation where a candidate is rejected and emailed within seconds of applying. It also lets you review rejections before notifications go out.

## Skipping Stages

You can skip a stage to move a candidate past it without completing it. The stage progress is marked **Skipped** and the candidate moves to the next stage. This is useful when:

- A stage doesn't apply to a particular candidate
- You want to fast-track a strong referral
- External circumstances make a stage unnecessary (e.g. references already known)

Skipped stages are clearly marked in the application timeline so your team knows they were intentionally bypassed.

## The Application Timeline

Every application has a timeline showing the candidate's journey through your pipeline. Each stage appears as a colored dot:

| Color | Meaning |
|-------|---------|
| Green | Completed |
| Blue | In Progress (current stage) |
| Gray | Pending (not yet reached) |

Click on any stage in the timeline to open a detail modal showing stage-specific information: form responses, review scores, interview details, or submission files. This gives you a quick overview without leaving the application page.

## Quick Checklist

- [ ] Review applications as they come in — don't let the pipeline stall
- [ ] Advance candidates promptly when stage requirements are met
- [ ] Configure voting thresholds on team review stages to enable auto-advancement
- [ ] Set an appropriate rejection email delay in [hiring settings](/hiring/settings)
- [ ] Use skip sparingly and only when a stage genuinely doesn't apply
- [ ] Check the application timeline for a quick overview of candidate progress