# Recruiters: Turn Candidate Emails into a Pipeline Sheet

> 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.

- Source: https://www.8apps.co/blog/recruiter-candidate-list-from-gmail
- Markdown: https://www.8apps.co/blog/recruiter-candidate-list-from-gmail.md
- Published: 2026-09-02
- Author: 8apps Team
- Language: en

---
## 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 |
| Email | 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](/google-workspace/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.

## Sources

- [Search operators you can use with Gmail](https://support.google.com/mail/answer/7190) – read 2026-08-20
- [Email sender guidelines – Gmail Help](https://support.google.com/mail/answer/81126) – read 2026-08-20
- [Apps Script – Quotas for Google Services](https://developers.google.com/apps-script/guides/services/quotas) – read 2026-08-20
