Independent and boutique recruiters often run the desk from Gmail + a spreadsheet: candidates in one tab, clients in another, next steps in a column. The usual failure mode is not "missing an ATS feature" – it is double-emailing a candidate, forgetting who wrote last, or letting a hiring-manager thread go cold while LinkedIn stayed busy. This guide is the free method first. A ready-made sheet is optional at the end.
What a recruiter chase list actually needs
- One row per candidate or client contact, with the email address you use in Gmail.
- Role / req and stage (Sourced, Screened, Submitted, Interview, Offer, Placed, On hold).
- Next follow-up date you set yourself (after a screen, after you submit a CV, after an interview).
- Last contacted and, ideally, who wrote last (Them = you owe a reply; Me = waiting on them).
- A status you can sort: Needs reply, Overdue, Due today, Gone cold, Closed.
What this pattern does not replace: LinkedIn Recruiter, InMail sequences, or a full ATS. If sourcing and first contact live almost entirely on LinkedIn, keep LinkedIn for that. Use the sheet for people whose conversation already moved into email – clients, referred candidates, and anyone you are coordinating interviews with.
Free method: Gmail labels + a Sheet (no add-on)
- Create two Gmail labels, for example
Recruiting/CandidatesandRecruiting/Clients. Optionally nest by role:Recruiting/Candidates/Acme-Engineer. - Filter once: in Gmail, search
from:(candidate@example.com) OR to:(candidate@example.com), open the thread, and apply the label. Or create a filter that applies the label when the address appears. - Start a Google Sheet with columns: Name, Email, Type (Candidate/Client), Role, Stage, Next follow-up, Last contacted, Last from, Status, Notes.
- Each morning (5–10 minutes):
- Open Gmail → search
label:Recruiting/Candidates newer_than:7d(and the same for Clients). - For anyone who wrote and you have not answered, set Last from = Them and update Last contacted.
- For people you emailed and are waiting on, keep Last from = Me and set a Next follow-up (often +2 or +3 days after a screen or CV submission).
- Open Gmail → search
- Paste a status formula (same idea as a simple Sheet CRM). In Status (column I), with Stage in E, Next follow-up in F, Last contacted in G, Last from in H:
=IF(A2="","",IF(OR(E2="Placed",E2="On hold"),"Closed",IF(H2="Them","Needs reply",IF(AND(ISNUMBER(F2),F2<TODAY()),"Overdue",IF(AND(ISNUMBER(F2),F2=TODAY()),"Due today",IF(AND(ISNUMBER(G2),TODAY()-G2>=14),"Gone cold","OK"))))))
Fourteen days for "Gone cold" is a starting point for active reqs; lengthen it for longer executive searches. Colour Needs reply red with conditional formatting, then sort or filter Status each morning.
Native Gmail tricks that help (still free)
- Star + Multiple inboxes or a Priority inbox section for starred recruiting mail, so unreplied candidate mail is visible without opening the whole sheet.
- Snooze a thread until the day you promised a follow-up – but snooze alone does not give you a list across fifty candidates. Keep the sheet as the list; use snooze as a nudge for one thread.
- Templates (Gmail → Settings → Advanced → Templates) for "checking in after the client interview" so the follow-up is fast once the sheet tells you who is due.
When typing Last contacted gets old
The weak point of every spreadsheet desk is the date column. A small Apps Script in your own account can search Gmail for each email and write Last contacted. For recruiters that is usually enough for client and candidate threads that already use email addresses.
FollowSheet is our ready-made Sheet + script: make a copy, add rows, run FollowSheet › Sync Gmail now. It fills Last contacted, Last from (Them/Me), subject and a thread link, and builds a Today tab. Free plan syncs 25 contacts per run; Pro ($7/month or $59/year) adds unlimited sync and a morning list emailed from your own Gmail. There is a recruiter page with the same honest limits.
Honest limits (read before you switch tools)
- No LinkedIn sync – by design. InMails and LinkedIn messages will not appear in the sheet.
- No open tracking, sequences or bulk mail-merge – if you need that, use a recruiting CRM/ATS.
- No shared compliance ATS – multi-recruiter permissions, EEO reporting and client portals are out of scope.
- Google will show "Google hasn't verified this app" the first time you authorise a private script copy. That is normal for a sheet you own.
If your desk is LinkedIn-first and email is rare, stay on LinkedIn + your ATS. If email is where candidates and clients actually reply, a Sheet that stays honest about last contact is usually enough for a solo or small boutique desk.
Sources
- Gmail Help – create a filter
- Gmail Help – search operators
- Google Docs Editors Help – Google Sheets function list
Related guides
- Gmail follow-up tracker without a CRM
- A free Gmail CRM in Google Sheets
- Gmail follow-up reminders without an extension
Published 2026-10-05 by Karuna Labs. Our tools check file structure and checksums; always review outputs (and payment files in your bank's preview) before relying on them. This is general information, not financial, tax or legal advice.