The candidates you already have
Every recruiter has two candidate databases. One is the ATS. The other is Gmail – years of applications, referrals and "keeping you in mind for next time" threads that never made it into any system. When a new role opens, the second database is often the better one, and it is the one you cannot search properly.
Step 1 – find the candidate mail with operators, not scrolling
Gmail's search operators do the heavy lifting. Useful patterns for recruiting mail:
subject:(CV OR resume) has:attachment
label:candidates newer_than:12m
from:me subject:(interview OR "next steps") older_than:2m
The third one is the underrated one: your outbound mail about interviews from a few months back is a list of people mid-process who may have gone quiet.
Run the search in Gmail first and check what comes back – scope before extraction, always.
Step 2 – extract into a sheet
Gmail has no export button for search results. The routes that work, honestly compared, are in our guide to extracting email addresses from Gmail; for a search-scoped list the practical options are Apps Script (a real afternoon, with a 6-minute execution wall and parsing work) or an add-on that does the same job in your own account.
Either way you want more than the From line: candidates surface in To (your outreach), in Reply-To (application systems), and in bodies ("my colleague is looking – reach her at …"). A referral lives in the body or nowhere.
Step 3 – shape it as a pipeline, not a list
| Column | Filled by |
|---|---|
| First / Last name | extraction |
| extraction | |
| Source label or search | extraction |
| Last contact date | extraction |
| Role / Stage / Next step | you – this is the pipeline part |
Deduplicate on email before anything else – candidates apply more than once, and a duplicate row becomes two conflicting stages within a week.
Two honest limits
- Email addresses and names only. Phone numbers are not extracted – if you need them, they stay a manual step from the CV itself.
- Gmail only. Addresses inside attached CVs or Docs are out of scope; what is in the message fields and body is in scope.
One professional note
Candidate correspondence is personal data about people trusting you with a job search. Keep the sheet internal, restrict sharing, and use it to resume conversations you already had – not to broadcast. That is also what keeps you on the right side of Google's sender guidelines: "Don't send messages to people who didn't sign up to get messages from you."
Where Contact Extractor fits
Contact Extractor takes any of the searches above – the same syntax, unchanged – and writes the addresses and names into a deduplicated Google Sheet, reading all seven fields a contact can appear in (From, To, CC, BCC, Reply-To, subject, body). Add your Role and Stage columns and the pipeline is live.
→ Contact Extractor on the Google Workspace Marketplace
Sources
- Search operators you can use with Gmail – read 2026-08-20
- Email sender guidelines – Gmail Help – read 2026-08-20
- Apps Script – Quotas for Google Services – read 2026-08-20