Hiring pipeline and stages

For everyone

A hiring pipeline is the platform's record of every candidate considered for one specific role, organised by the stage of the hiring process they are in. Each role has exactly one pipeline. Each pipeline has the same six stages.

The six stages

In order:

  • APPLIED — the candidate has submitted an application. Default starting stage.
  • SCREENED — the candidate has passed initial review (either by your hand or by the auto-advance threshold).
  • INTERVIEWING — an interview is scheduled or completed.
  • OFFERED — an offer has been extended. Moving a candidate into this stage optionally issues an offer document: pick an offer template, review the preview with the candidate's real data, and confirm — the PDF is attached to their application and is visible to the candidate right away. Skipping the template picker leaves the move exactly as it was before this existed, with no document.
  • HIRED — the candidate accepted; the hire handoff has run.
  • REJECTED — no longer being considered.

The six stages are fixed in v0.5. Custom pipeline stages are on the v0.6 watch list.

Pipeline entry

Each candidate in a pipeline is a PipelineEntry record. The entry holds:

  • The candidate's Person reference.
  • The current stage.
  • The screening score (from CV screening) and the screening narrative.
  • An audit log of every stage transition, with who moved them, from where, to where, and when.
  • Any interview records associated with this pipeline entry.

Stages and their transitions are recorded on the entry, not on the Person — so a Person who appears in two pipelines (applied to two roles) has independent stage histories per role.

How stages move

Three ways:

  • Drag in the Kanban view.
  • Click the stage selector in the candidate's detail panel.
  • Bulk — select multiple cards, choose a stage from the bulk menu.

Every move triggers the destination stage's email template (unless you use Reject silently on a REJECTED move). Every move is logged.

Candidate activity badges

Stage moves are admin-driven. But candidates also take steps on their own — and those surface directly on the Kanban card so you don't have to dig:

  • Started an assessment — opened an assigned assessment.
  • Completed an assessment — submitted it.
  • Picked an interview slot — chose a time from the slots you offered.
  • Updated profile / Updated CV — edited their details or replaced their CV.

Each card shows the most recent step as a labelled line (with a relative timestamp), and a count badge on the candidate's avatar tallying steps you haven't seen yet. The badge clears the moment you open that candidate's detail page — opening the card counts as "seen". Profile and CV updates surface on every open application the candidate has; the other steps surface on the specific application they belong to.

Activity badges are a read-at-a-glance signal, not a notification inbox — they live on the card and refresh when the board reloads. The bell still fires its own notification when a candidate completes their assessment battery.

Auto-advance and auto-reject

Two workspace settings drive automated stage moves after screening: autoAdvanceThreshold (default 70) and autoRejectThreshold (default 30). The check runs once, at screening completion:

  • Score ≥ autoAdvanceThreshold → APPLIED → SCREENED.
  • Score ≤ autoRejectThreshold → APPLIED → REJECTED (sends the rejection-stage email).
  • Otherwise the candidate stays at APPLIED for human review.

Both thresholds are workspace-wide; they apply to every pipeline equally. The reject bound must be strictly lower than the advance bound; either can be disabled independently. Per-role thresholds are not in v0.5.

Stage emails

Each stage has an email template (12 in total: 6 stages × 2 locales). When a candidate enters the stage, the template fires. The templates are workspace-editable from /settings/hire/emails.

Emails are templated, not generated — the same template fires for every entrant. Personalisation is via {variables} (candidate name, role title, etc.).

Closing a pipeline

A pipeline closes when its role moves out of OPEN — to FILLED (via hire) or ARCHIVED (manual). The pipeline view remains accessible to administrators for audit; new applications cannot enter the pipeline; existing entries can still be moved through stages (e.g., to clean up a REJECTED column after a role is filled).

If you reopen the role (FILLED → OPEN, or ARCHIVED → OPEN), the same pipeline reactivates. Entries from the prior cycle are preserved; new applications join.

What a pipeline is not

  • A workflow engine. The pipeline does not enforce sequential transitions — you can move a candidate from APPLIED directly to OFFERED if you want, skipping SCREENED and INTERVIEWING. The platform records what you did; it does not constrain.
  • A multi-stakeholder approval system. A move requires one person's action; there is no co-sign or approval-gate built into stage transitions.
  • A communication thread. Stage emails fire on transitions, but the pipeline does not host conversations. Email replies from candidates land in your inbox, not in the platform.