Logo StartupKit
EN

Managing Your Pipeline

How candidates flow through stages, how to advance or reject them, how auto-advancement works, and what happens when a review needs a decision.

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.

Adding a Stage to an Existing Posting

Hiring admins and that posting’s hiring managers can add a stage in the browser or ask a connected AI assistant to use hiring_create_stage. The assistant follows a read → create → read-back workflow: it reads the current order, inserts the configured stage, then verifies the final order, reviewer roster, and warnings.

MCP positions are zero-based: 0 is first and 1 is second. If the assistant omits position, Kit inserts immediately before a trailing Offer stage, or appends when there is no Offer. The first stage must remain an Application Form and Offer must remain last.

Warning

A new stage does not move existing candidates backward. Candidates currently before the insertion may encounter it later; candidates already at or beyond it keep their current stage and show the new stage as skipped. On a published posting with active candidates, Kit reports that impact and requires explicit confirmation before creating the stage.

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

A candidate’s current stage is the one with an In Progress status. All earlier stages the candidate actually went through show as Completed. Stages the candidate was moved past never get a progress record; the timeline shows them as bypassed (see Moving a Candidate Past a Stage). A team review that finishes without a clear outcome stays In Progress but is surfaced as a Needs Decision display state, a computed indicator (not a status) so a stalled candidate never blends in with those still moving. See Reviews and Feedback.

Advancing Candidates

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

  1. The application is active (not hired, 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, Kit opens a confirmation before changing the pipeline. Review the recipient, company sender, reply-to inbox when the posting inbox is enabled, and the resolved standard email for that stage. You can add an optional personal note; Kit appends it to the standard email and signs it with your saved hiring signature when one is set.

When you confirm:

  • The current stage progress is marked Completed
  • The next stage progress is created and marked In Progress
  • The candidate receives the configured stage email, including your personal note when provided (if applicable)
  • A Slack notification is sent to the channel (if Slack is connected and the posting isn’t restricted)

Offer stages are different: moving a candidate into Offer sends no stage email. Candidate contact happens when the offer is extended. After any email is sent, open the application’s Communications thread and choose View sent email to review the sent subject and rendered body in a read-only preview.

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 Kit auto-submits once the deadline plus grace period has passed)
Portfolio Upload Candidate shares files or links to work they created previously
Work Sample Candidate submits the requested work; when reviewers are assigned, all assigned reviews must also be completed
Questionnaire Candidate submits their answers; when reviewers are assigned, all assigned reviews must also be completed
Video Candidate watches the required percentage
Video Recording Candidate records and submits their video
Team Review Voting threshold is met, or a person resolves a split review (see Auto-Advancement)
Live Interview Interview is marked complete
Screening Call A call is logged as Reached; see Screening Calls
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: Require unanimity, meaning every submitted review must be positive for the candidate to advance. Turning this on overrides the threshold; the number you set there is ignored.
  • Veto auto-rejects: A Strong No from a lead reviewer automatically rejects the candidate

Kit always waits for every assigned reviewer to submit before it evaluates a review round; that isn’t what Require all reviewers controls. The setting only changes the bar the votes have to clear once they’re all in: unanimous positive instead of “at least N positive”.

When a review round finishes without a clear outcome (a split vote, votes below the threshold, or a Strong No from a non-lead reviewer), the candidate isn’t advanced or rejected automatically. Instead the stage is flagged Needs Decision and routed to a person to resolve. See Reviews and Feedback for who’s notified and how to resolve it.

Code Assignment Deadline

A code assignment has two deadlines. The one the candidate sees is the deadline; after it passes, a grace period (default: 24 hours, configurable per stage) still accepts late work. Only when that grace period runs out does Kit automatically submit whatever the candidate has pushed.

So auto-submit fires at deadline + grace period, not the moment the deadline passes. This prevents stalled pipelines when candidates don’t explicitly submit, while still giving them a buffer for late work.

Task Deadlines

A Work Sample stage carries a private brief and is a task the candidate starts themselves, so its clock works differently from a stage you advance them into. Existing Portfolio Upload stages with a brief keep this behavior for backward compatibility.

  • The clock starts when the candidate presses Start, not when you advance them. Until then the brief is closed and no deadline exists. A candidate who takes three days to open their portal still gets the full window.
  • The deadline the candidate sees is soft. Past it they get a banner and uploads keep working; nothing is auto-submitted and the candidate is not rejected.
  • The grace period closes uploads. Deadline plus the configured grace hours (default 24) is the point where the stage stops accepting files. It isn’t shown to the candidate until the deadline passes.
  • One self-serve extension, when you enabled it on the stage. The candidate can take it while the deadline hasn’t passed yet; it moves both the deadline and the grace cutoff by the configured hours.

Work handed in after the deadline is accepted and marked Late on the review screen, which also shows the brief and the deadline next to the files so a reviewer can check the submission against what was asked.

A task stage completes when the candidate submits. There is no auto-submit here, so it stays In Progress until the candidate or your team acts. Kit sends a deadline warning 24 hours before the task is due. Candidate stall nudges cover the wait before the candidate starts; after that, tracking ends when the grace period closes uploads. With the default 24-hour grace period, the task closes before a post-deadline stall nudge would be due. The deadline also lives on the candidate’s task page, so say in the stage description that the stage is timed.

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

Your account has a configurable rejection-email delay (default: 24 hours, range: 0-168 hours). At 0, Kit does not wait before sending. A longer delay gives you a buffer to reconsider or batch rejections. You can adjust this delay in your 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.

Moving a Candidate Past a Stage

There’s no per-stage “Skip” action. What you can do instead is move a candidate directly to a later stage, jumping over everything in between. On the pipeline board, drag their card to any column further along the pipeline. The card returns to its current column while the advancement confirmation is open and only moves after you confirm the advancement. This is useful when:

  • One or more stages don’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)

The same rules that gate the Advance button apply here: the application must be active, the target stage must be ahead of the current one, and the current stage’s reviews and submissions must be complete (or overridden with Force Advance).

When a candidate jumps ahead, the stage they were on is marked Completed and the target stage becomes In Progress. The stages in between are never started, so they get no progress record; the application timeline renders them as bypassed with a faint, dashed marker rather than as completed steps, so your team can see at a glance which parts of the process this candidate didn’t go through.

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)
Violet Needs Decision (a split review waiting to be resolved)
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 so the pipeline doesn’t stall
  • Advance candidates promptly when stage requirements are met
  • Review the candidate email preview and add a personal note when it will improve the experience
  • Configure voting thresholds on team review stages to enable auto-advancement
  • Resolve any stage marked Needs Decision promptly; the candidate is blocked until you do
  • Watch task stages for candidates who haven’t pressed Start; their deadline hasn’t started counting
  • Set an appropriate rejection email delay in hiring settings
  • Move candidates directly to a later stage sparingly, only when the stages you’re jumping don’t apply
  • Check the application timeline for a quick overview of candidate progress

Closing a role

Open the job posting’s Actions menu and choose Close role. Hiring admins and the posting’s hiring managers can close it.

  1. Choose whether you hired someone or are closing without a hire. When the role is filled, select everyone hired; you can record several hires at once.
  2. Decide what happens to the remaining candidates. Keep open for follow-up leaves their applications active and sends no rejection emails. Reject and email remaining candidates requires a message and schedules rejection emails using your account’s configured delay. Review the candidate count and message before confirming.

If a remaining candidate has already accepted an offer, select them as hired or choose Keep open for follow-up. Kit will not complete bulk rejections while a remaining candidate has an accepted offer.

Closing stops new applications. Selected hires receive a dated entry in their application timeline and leave the active pipeline. Recording a hire does not send an offer or hiring confirmation. Any upcoming interviews for those hires are cancelled, and the usual cancellation emails are sent. If connected and available, you can also share the hires in their existing Slack candidate threads. Restricted postings are excluded from these announcements.

Hired candidates cannot advance to another stage. Deadline reminders and extension emails for their outstanding tasks stop, including emails queued before the hire was recorded.

A filled role shows a brief celebration and a summary linking to the people hired. Reduced-motion preferences are respected. Reopening the posting preserves its hiring records. If the candidate list changes before you confirm bulk rejections, Kit asks you to review it again.

When a role goes quiet

Kit checks published roles daily. After 30 days without recorded team activity, it privately reminds the role’s hiring managers to review whether hiring is still open. If no eligible manager is assigned, the reminder goes to eligible Hiring admins. Roles with no applicants are included; drafts, paused roles, and closed roles are excluded.

Reviews, hiring decisions, confirmed recruiter messages and information requests, interview invitations, calls and follow-ups, staff-granted deadline extensions, manual notes, reply triage, and confirmed candidate imports count as team activity. Changes your team makes to a role, its pipeline, or its team assignments in Kit also count, including through MCP or the assistant. Candidate applications, replies, page visits, background updates, and payment administration do not. A future interview, an offer with a future expiry date, or an outstanding task deadline postpones the reminder.

The reminder appears in Kit and uses your existing hiring email preferences and quiet-time settings. Each recipient is reminded once per quiet period, with no public Slack escalation or candidate messages. If responsibility changes, newly responsible managers or admins can receive the reminder for that same period. On the role page, Still hiring starts a new 30-day window. Review closure opens the closing flow above so you can decide what happens next. Kit never closes a role automatically.

Type to search...