Recruitment process

A recruitment process flowchart (or hiring process flowchart) shows how a vacancy is filled. Once the headcount is approved, the role is written up, posted and sourced; candidates pass a CV screen, a screening call and an interview panel before a hiring decision. A successful candidate receives an offer, which may be negotiated, accepted or declined, and pre-employment checks are completed before the new hire is handed over to onboarding.

Hiring managers and recruiters draw this to agree who decides at each stage, to set expectations with candidates, and to see where a hiring process loses time. Candidates can be rejected at every stage, so each of those exits needs someone responsible for telling them. When an offer is declined, or a check does not clear, the role can be offered to a runner-up the panel has already approved, and sourcing starts again only when there is no such candidate.

Recruitment process Vacancyidentified Headcountapproved? Role onhold Write the jobdescription Post the job andsource candidates Passesthe CVscreen? Candidaterejected Screening call Progresstointerview? Interview panel Hiringdecision Make an offer Response? Negotiate terms Approvedrunner-up? Pre-employmentchecks Checksclear? Withdraw theoffer Hand overtoonboarding No Yes Yes Yes No Yes Counter-offer Accepts No Yes No No Declines Yes No
Open in editor

Mermaid source

---
title: Recruitment process
---
flowchart LR
  vacancy([Vacancy identified]) --> approve{Headcount approved?}
  approve -->|No| onhold([Role on hold])
  approve -->|Yes| spec[Write the job description]
  spec --> post[Post the job and source candidates]
  post --> screen{Passes the CV screen?}
  screen -->|No| reject([Candidate rejected])
  screen -->|Yes| screenCall[Screening call]
  screenCall --> progress{Progress to interview?}
  progress -->|No| reject
  progress -->|Yes| panel[Interview panel]
  panel --> decision{Hiring decision}
  decision -->|No| reject
  decision -->|Yes| offer[Make an offer]
  offer --> answer{Response?}
  answer -->|Counter-offer| negotiate[Negotiate terms]
  negotiate --> offer
  answer -->|Declines| runnerUp{Approved runner-up?}
  runnerUp -->|Yes| offer
  runnerUp -->|No| post
  answer -->|Accepts| checks[Pre-employment checks]
  checks --> clear{Checks clear?}
  clear -->|No| withdraw[Withdraw the offer]
  withdraw --> runnerUp
  clear -->|Yes| onboarding([Hand over to onboarding])

Stock Mermaid vs Line9 on this recruitment process

Run the same source through the stock Mermaid engine and it often will not look as good. In some cases, Mermaid is able to deliver a usable graph, but not always. On this one:

The same recruitment process through stock Mermaid — a strip about six times wider than it is tall, with small labels and oversized decision diamonds
Stock Mermaid · same source View full size ↗

Stock Mermaid draws this process as a strip about six times wider than it is tall, so to fit into a page or screen it has to be scaled down and the labels become small. Its decision diamonds grow to fit their text and end up much larger than the steps around them. The two edges from ‘Approved runner-up?’ back to ‘Make an offer’ and to ‘Post the job and source candidates’ run across most of the width of the diagram, because nodes are not placed near the ones they relate to. Line9 lays out the same source in a more compact shape, with every decision the same size, so it can be shown at a size where every label is readable.

For a fuller product comparison — layout, export, CLI, and pricing — see Line9 vs mermaid.live.

Render your own

Paste any Mermaid flowchart into the free online editor — no account needed. Prefer the terminal? Install the line9 CLI (free for personal use).

More scenarios on the Mermaid examples hub.