Hirepipe: One Job, Many Hiring Cycles, And No Candidate Left Behind

A recruitment workspace that treats every job as a series of versioned hiring cycles — so teams can evolve a role over time without ever losing the candidates already in flight.

Hirepipe dashboard
assets/card-hirepipe.jpg
Hirepipe dashboard

Project Overview

Most applicant-tracking tools treat a job post as a single, static record. But in the real world a role is rarely hired for just once — it reopens, the salary shifts, the interview process changes, and each run attracts a different set of candidates. Editing one static post to reflect those changes quietly corrupts the history of everyone already in the pipeline.

HirePipe is a concept exploring a different model: a job isn't one record, it's a living draft plus a growing stack of frozen versions. The design challenge was to make that power feel simple — navigable, unambiguous, and safe — at enterprise scale.

RoleProduct Designer
(UX + UI)
ScopeResearch, flows,
UI, design system
Timeline4 design sprints
FocusComplex workflow
& system design

The Problem

A job post is not a static entity:

I kept running into the same structural tension when I mapped how recruiters actually work

  1. Roles repeatThe same position is published again and again over months, each time with tweaks to salary, requirements, or the hiring pipeline.
  2. Candidates get strandedEditing a live post to make those tweaks scrambles the people already mid-process — their stage, notes, and what they applied to.
  3. History disappearsOverwriting a post erases the ability to compare cycles — which version attracted better candidates, where people dropped off.
How do you let a role evolve freely over time, without ever disturbing the candidates already inside it?

Research & insights

Understanding how recruiters really work

I studied how established hiring platforms structure pipelines and reposting, and mapped the recurring behaviours into a few insights that shaped the whole system.

Pipelines drift

Stages get renamed and reordered constantly, so the system can't rely on stage names to stay consistent.

Reposting is a cycle

Recruiters think in "rounds" — the closest real pattern to versions is reopening a requisition.

Nothing can be lost

Candidate records are kept for comparison, audit, and compliance — deletion is rarely acceptable.

Competitor analysis

Grounded in how the category actually works

The model isn't invented from nothing — its building blocks exist, scattered, across real platforms. HirePipe unifies them into one explicit version-snapshot system.

Groups renamed stages under a standard type for consistent reporting. The real-world precedent for stable stage identity.

When you delete a live-pipeline stage that holds candidates, it asks where to move them — the pipeline-evolution edge case in practice.

Structured pipelines and per-stage analytics — the inspiration for the distribution strip and version-level reporting.

Who it's for

Personas: in-house recruiter James Co and hiring lead Sherlok

Design opportunities

Four problems to design around

More options, less clutter.

Let a job carry unlimited versions while keeping a single, calm screen.

Keep stages consistent

Compare the same stage across versions even as labels change.

Make state unmistakable

Clearly distinguish drafts, published items, and archived content.

Evolve safely

Changing a role must never endanger candidates already in it.

User flow

From draft to a frozen hiring cycle

The spine of the product is a simple loop: shape a draft, publish it into a frozen version, manage candidates inside that version — and when the role needs to change, edit the draft and publish again as the next version.

User flow: Draft, Publish, New version, Manage, Change later

The decisions that mattered

Designing the versioning model

Every choice below traces back to a usability principle — the goal was power that stays legible under pressure.

1 · One editable draft, many frozen versions

Borrowing from version control, there is exactly one editable draft. Publishing takes an immutable snapshot of the job + pipeline — that becomes V1, V2, V3. Candidates are tied to the version they applied to, never to the job itself, so editing the draft or publishing again can never disturb anyone mid-process.

One editable job draft branching into V1 archived, V2 and V3 published versions

2 · A single version switcher

A job can carry ten versions, but only one board shows at a time. Versions sit as small pills; selecting one swaps the whole board. The screen stays calm no matter how long the history grows — you recognise and pick rather than hold everything in your head.

Job board with Draft, V1, V2, V3 version tabs
Draft / V1 / V2 / V3 as pills - selecting one swaps the entire board below.

3 · Publishing is a confirmation, not a form

All job and pipeline edits happen on the safe draft. Publishing just freezes it — so the publish step shows exactly what's about to be sealed (a snapshot preview + a diff versus the last version) and whether to archive the current live cycle. An irreversible action is never taken blind.

Publish new version confirmation dialog
The dashboard - each job shows its live version and colour-coded state.

4 · Draft, Published, Archived — never ambiguous

Three states, colour-coded and consistent everywhere: Draft (amber, editable), Published (green, live), Archived (gray, closed). Archived boards are read-only, guarding the candidates of a finished cycle. The user never has to guess what's live.

Hirepipe dashboard
The dashboard - each job shows its live version and colour-coded state.

5 · Candidates on a board that matches the mental model

Each stage is a column, each candidate a card, moved by drag. A distribution strip reads the version's health at a glance, and a detail panel shows a candidate's timeline and feedback. Rejecting never deletes — it tags and preserves, so a wrong call is always recoverable.

Candidate detail panel over the pipeline board
The dashboard - each job shows its live version and colour-coded state.

Outcome

As a concept, success was about whether the model stays legible and safe under real complexity. Measured against the problems I set out with:

10+edge cases designed for
1 screento read any version's state