The pipeline is where candidates live until they are hired or rejected. The interface is a Kanban board: six columns, candidate cards moving between them.
Where to find it
From the Hire dashboard, click on any open pipeline. Or navigate directly to /{slug}/app/hire/pipelines/{pipelineId}. There is one pipeline per role.
The six stages
Reading left to right (right to left in Arabic):
- APPLIED — every new candidate enters here. They sit until you (or the auto-advance) move them.
- SCREENED — candidates who passed initial review. The auto-advance threshold lands them here automatically; you can also move them here manually.
- INTERVIEWING — candidates currently being interviewed. An interview is scheduled when you move someone here, or you can schedule first and let the move happen on confirmation.
- OFFERED — an offer has been extended. The candidate is awaiting decision.
- HIRED — the candidate accepted. Moving someone here triggers the hire handoff — the candidate becomes an employee, the role is marked filled, a growth plan is created.
- REJECTED — the candidate is no longer being considered. The rejection-stage email is sent (unless you choose silent rejection). The candidate's record is preserved.
Stage-aware action buttons
The actions available on a candidate's detail panel change depending on their current stage. The platform shows only the actions that make sense at that point:
- APPLIED / SCREENED — move forward, schedule interview, reject.
- INTERVIEWING — view interview schedule, move forward, reject.
- OFFERED — mark as hired, reject.
- HIRED — a View employee profile button links directly to the new employee's record. All hiring actions are hidden (a hired person is no longer a candidate).
- REJECTED — Archive (hides the candidate from the default pipeline view) and Re-open (returns them to
APPLIED, useful if you want to reconsider). No move-forward action is shown.
Position details, without leaving the board
The board header carries a Position details button. It opens a side drawer — no navigation away from the Kanban — showing the same information as the Position detail page: the level (linked), job family, hiring status, hiring pathway, applicant count, and the full job description. When the role is open and not internal-only, the drawer also surfaces the public posting link, with copy and open-in-new-tab affordances, so you can grab the candidate-facing URL while working the pipeline. A footer link jumps to the full Position page if you need the editing and hiring-state actions.
Moving candidates
Three ways to move a candidate:
- Drag — pick up the card and drop it on the destination column. The stage email for the destination column fires immediately.
- Click the candidate to open the detail panel, then click the new stage in the stage selector.
- Bulk — tick the checkbox on multiple cards (minimum two), then choose a stage from the Move selected menu at the top. All selected candidates move together; the destination email fires once per candidate.
Two moves are blocked:
- A Hired candidate stays hired. Their card can't be moved to another column or rejected, and the board shows a message instead.
- A Rejected candidate can't be hired straight from the Rejected column. Move them back to an active stage first (for example Offered), then hire.
In a bulk move, blocked candidates are skipped and the others still move; a message tells you how many were skipped and why.
Every move creates an audit trail entry on the candidate's record showing who moved them, from where, to where, and when.
Reject with documented reason
Whenever you move a candidate into the REJECTED column — whether by dragging a single card or by bulk-action — a small drawer opens and forces you to log a reason before the transition fires. Saudi government governance (and increasingly private-sector HR policy) requires this audit trail.
- Reason dropdown (required): Not shortlisted, Failed interview, Under-qualified, Over-qualified, Saudization-restricted role, Candidate withdrew, Other.
- Note (optional): free-text kept on the candidate record but not included in the email.
- Confirm rejection executes the move and fires the standard rejection-stage email template.
- Cancel restores the card to its previous column with no save and no email.
The reason and note are persisted on PipelineEntry.notes.rejection with an ISO timestamp and the actor user ID — available later to audit reports and filter views. Bulk rejection applies the same reason to every selected candidate.
Bulk actions
Beyond bulk move, the bulk menu offers:
- Send a custom email — useful when you want to update a cohort without a stage change.
- Reject silently — moves to
REJECTEDwithout sending the rejection email. Use this for candidates who have already withdrawn or for cases where a templated email would be inappropriate. - Schedule interviews (when moving to
INTERVIEWING) — opens the bulk scheduling drawer, which lets you propose the same set of slots to all selected candidates.
Stage emails
Each stage has an email template. When a candidate enters the stage, the template is rendered with the candidate's name, the role title, and any other variables, then sent. The templates are bilingual: the Arabic version is used for Arabic-locale candidates, the English version for English.
Editing the templates is covered in Hiring configuration. The defaults are professional and short; many workspaces keep them as-is.
Filtering and search
Filters across the top of the pipeline:
- Source — where the application came from (direct apply, agency, referral).
- Score band — match score range.
- Has interview scheduled / not scheduled — useful at the
INTERVIEWINGstage. - Search — name and email.
Filters do not move candidates; they only show or hide cards.
Who can do what on the board
Moving candidates needs Recruitment Act; making an offer and the final hire are the named permissions Issue job offers and Hire candidates, and opening or closing hiring on a position is Open / close hiring. A role with Recruitment view only, such as a junior recruiter role you build, can browse the board and open candidates but can't move them. Every move is recorded in the Audit log and in the application's History panel.
Next
When candidates reach the INTERVIEWING stage, the platform takes over the scheduling logistics — covered next.