Steal our simple recruitment dashboard excel template
Most recruitment dashboard templates are built to manage a team of recruiters across departments. If you're the only one filling it out, here's the three-tab version built for a hiring desk of one, plus every column and formula to build it yourself.
AI summary
- Most recruitment dashboard excel templates are built for a team: a recruiter-assigned column, department rollups, cost-per-hire by cost center. If you're the only one filling it out, most of that goes stale by week two and you're back to eyeballing an inbox.
- A one-person dashboard has one job: show what's unread and who's next. That's three tabs and about a dozen columns, not a KPI suite. Track time-to-fill and cost-per-hire only if a real decision depends on the number.
- A spreadsheet can hold a status. It can't read a resume or watch a one-way interview. The gap between 'the sheet says Unread' and 'someone actually read it' is the part no template fixes, and it's the part worth solving first.
Search “recruitment dashboard excel template” and almost every result assumes the same reader: a team of recruiters, a stack of open requisitions, and a manager who wants conversion rates by department. A column for recruiter assigned. A tab for cost-per-hire by cost center. Dashboards built to answer a question nobody running one hiring desk and three open roles has ever asked, which recruiter on my team is underperforming.
If you’re an owner, GM, or franchise manager filling this out alone at night, none of that is your problem. Your problem is smaller and worse: forty resumes sitting in an inbox, and no fast way to tell which of them anyone has actually opened.
That’s the recruitment dashboard excel template below. Three tabs. About a dozen columns total. Built for one person to update between everything else on their plate, not for a quarterly business review.
Most recruitment dashboard templates assume a team you don’t have
Open a handful of the free templates people build these dashboards from and the pattern repeats. A candidate log with a recruiter-assigned column, because more than one person is working the pipeline. A tab that rolls up applications by department, because there’s more than one department hiring at once. A metrics tab benchmarking time-to-fill and cost-per-hire across roles, because someone above the recruiters wants a report.
None of that is wrong. It’s just built for a different job than the one you have. You’re not managing recruiters. You’re not comparing departments. You’re trying to keep track of the same front-desk or coordinator role you post every few weeks, by yourself, on top of running the place.
Here’s what happens when you build the team-sized version anyway. You fill in the recruiter column with your own name every row. The department tab has one department in it. The cost-per-hire formula divides your one job board fee by however many people you hired, and the number doesn’t change anything you were going to do differently. Within two weeks the extra columns stop getting updated, because updating them costs time you don’t have and buys you nothing you needed. You’re back to scrolling an inbox, guessing which of the forty resumes you already looked at.
What a one-person dashboard actually needs to do
Strip the template down to the job it’s actually doing for you, and it’s simple. You need to know, at a glance, what’s sitting unread and who’s worth looking at next. That’s it. Everything else is a report for someone who isn’t you.
Think of it as a status board, not a scoreboard. A scoreboard ranks performance across people. A status board just tells the truth about where things stand right now, so you stop relying on memory to know whether you already screened someone. The same mismatch shows up in candidate NPS: the metric that’s popular on a dashboard and the metric that actually tells a small operator something useful are rarely the same one.
What about cost-per-hire and time-to-fill?
Worth tracking, sometimes. Not worth building a BI layer for. The test is simple: does this number change a decision you’re actually going to make?
If you’re a small agency owner billing clients on speed, time-to-fill per role is a real number that affects what you tell a client next week. If you re-hire the same coordinator role every quarter, tracking how long it took last time tells you when to start the next posting. Track those. Skip department rollups, source-of-hire attribution models, and diversity dashboards built for a compliance team you don’t have. If a number doesn’t change what you do next, it’s not a metric. It’s decoration.
The recruitment dashboard excel template needs three tabs and a dozen columns
Here’s the actual structure. Build it in a fresh Google Sheet or Excel workbook with three tabs. Nothing here needs a plugin or an add-on, just formulas that already exist in both tools.
Tab 1: the candidate log
One row per candidate. This is the only tab you touch by hand.
| Column | What goes in it |
|---|---|
| Candidate name | Self-explanatory |
| Role | Which posting they applied to, especially once you’re running more than one at a time |
| Date applied | So you can see how long they’ve been sitting |
| Status | Unread, Screened, Interview, Assessed, Offer, Hired, Passed |
| Date status changed | Update it every time Status changes |
| Next step | One line: what needs to happen and who’s doing it |
Six columns. No source-tracking column unless you’re actually running more than one channel and deciding where to spend money based on it. No recruiter-assigned column, because there’s one of you.
Tab 2: the dashboard numbers
This tab reads Tab 1. Every cell is a formula, nothing typed by hand.
| Metric | Formula (referencing Tab 1’s Status column) | What it’s telling you |
|---|---|---|
| Total applied | =COUNTA(Tab1!A:A)-1 | Pool size for the role |
| Sitting unread | =COUNTIF(Tab1!D:D,"Unread") | The number that matters most. If this is climbing, stop and screen before you post again |
| In interview | =COUNTIF(Tab1!D:D,"Interview") | Who’s active right now |
| Offers out | =COUNTIF(Tab1!D:D,"Offer") | What’s pending a yes or no |
| Days role has been open | =TODAY()-[date you posted the role] | Whether this is dragging past what it usually takes you |
Five numbers. Refresh automatically every time you touch Tab 1. That’s the whole dashboard: not a chart, not a slide, a handful of counts that tell you the truth about the pile without you having to reread it.
Tab 3: repeat-role history (skip it if you only hire once)
If you re-hire the same roles, this tab is the one that pays off over time. If this is a one-off search, skip it.
| Column | What goes in it |
|---|---|
| Role | The recurring role, e.g. “Front desk coordinator” |
| Date opened | When you posted it |
| Date filled | When someone accepted |
| Applicants received | Pull from Tab 2’s total for that posting |
| Days to fill | =[Date filled]-[Date opened] |
| Notes for next time | What worked, what didn’t, what you’d change |
A year of this tab turns into your own hiring plan baseline. You’ll know that the coordinator role usually takes 11 days and pulls around 60 applicants, so the next time it opens, you’re planning against your own history instead of guessing. It’s the same discipline behind a decent recruiting budget: forecast off what actually happened last time, not a hunch.
Where the spreadsheet’s job ends
Here’s the honest limit of everything above. The Status column can say Unread. It can’t do the reading. A dashboard, however well built, is a truthful description of a pile. It was never going to be the thing that gets through the pile.
The cost of staying unread
CareerBuilder’s hiring survey puts the average cost of a bad hire at around $17,000, and the number that matters more than the dollar figure is what’s behind it. Most of that cost traces back to a decision made on thin evidence, because nobody had time to actually screen the pile before picking. The dashboard can tell you forty resumes are sitting unread. It can’t tell you which five are worth your evening.
A lot of small operators reach for an ATS at this point. It mostly won’t fix the actual gap. An ATS is still a database. It stores applicants and their status. It doesn’t read anyone’s resume for you.
What replaces the manual status column
We built Truffle because the first read is the part worth automating, not the tracking. Truffle is candidate screening software for small businesses that combines resume screening, one-way video interviews, and talent assessments. Log in and the dashboard from Tab 2 is already built: candidates sorted into For Review, Reviewed, In Progress, and All Candidates, with a match score against your own criteria sitting next to each name instead of a status you typed in by hand.
Magic Review lets you go down the For Review list with keyboard shortcuts, so clearing the backlog takes minutes instead of an evening. Candidates can also complete a one-way interview before you ever pick up the phone, so the status you’re looking at reflects an actual conversation, not just an application. If you still want the numbers in your own spreadsheet, Candidate Export (currently in beta) pulls the dashboard out, filtered however you like.
AI surfaces the read. You still make the call on who gets hired. Plans start at $49 a month, with a 7-day free trial, 30 credits, and no credit card required. Every plan includes the full dashboard, not a stripped-down version.
The spreadsheet was never wrong to want. Knowing what’s sitting unread is real information, and most operators don’t have it until they build something like the tabs above. It’s just the wrong tool for the step after that, the part where someone has to actually look at what’s piling up and decide who’s worth a call. Build the tracker. Just don’t mistake a truthful pile for a screened one.
Frequently asked questions about recruitment dashboard templates
Do I need Excel specifically, or does Google Sheets work?
Google Sheets works the same way. Every formula above (COUNTIF, COUNTA, TODAY) exists in both tools with identical syntax. Google Sheets is easier if more than one person ever needs to glance at it, since sharing doesn’t involve emailing a file back and forth.
What if I’m hiring for more than one role at the same time?
Add a Role column to Tab 2’s formulas so each COUNTIF filters by role as well as status, or duplicate Tab 2 once per open role. Past three or four roles running at once, a manual sheet starts costing more time to maintain than it saves, and that’s usually the point to look at software built for high-volume hiring instead of adding more tabs.
Should I add a diversity or source-of-hire tab?
Only if you’re required to report on it or you’re actually deciding where to spend money based on which channel works. Adding tracking columns you won’t act on is exactly the trap this template is built to avoid: every column has to earn a place by changing a future decision, not because a bigger template had one.
Can I automate any of this instead of updating it by hand?
The counts in Tab 2 already update themselves once Tab 1 changes. The manual part is moving each candidate’s Status cell as they move through your process, and that’s the piece software takes over once the volume outgrows a sheet. That’s the actual reason to graduate off a spreadsheet: not the formulas, the manual status updates.