Recruiters: Turn Candidate Emails into a Pipeline Sheet

8apps Team·

Every candidate you've ever spoken to is in your Gmail – and not in your ATS. Here's how to get them into one deduplicated sheet, scoped by label or search.

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

ColumnFilled by
First / Last nameextraction
Emailextraction
Source label or searchextraction
Last contact dateextraction
Role / Stage / Next stepyou – 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