Excel export for Recruiters
Applications arrive faster than anyone updates the ATS. A weekly export keeps the pipeline honest. This page lists the exact columns, an example row and the command that produces it.
Columns to keep
| Column | Why it matters |
|---|---|
candidate | Display name for humans; deduplicate by email, not by name. |
email | Lowercase address — the true unique key for people. |
role | The position applied for; makes the pipeline filterable. |
source | Where the application came from (job board, referral, inbound). |
stage | Pipeline stage as a fixed vocabulary, not free text. |
Example row
One real-shaped row from this role’s export:
| candidate | role | source | stage | |
|---|---|---|---|---|
| Maria Petrova | maria@example.com | Backend Engineer | screening |
Export it in one command
python mail_to_excel.py \
--host imap.example.com --user you@example.com \
--days 31 --fields candidate,email,role,source,stage \
--out recruiter.xlsx
The --fields option is what turns a raw dump into a report your role can use.
Provider notes
Gmail app passwords need 2-step verification enabled. Recruiting agencies on Google Workspace should use OAuth.
Two pitfalls that ruin the file
- CVs are saved as inline images instead of attachments — Check the message body for parts without a filename; log those rows for manual review.
- The same candidate appears under two roles — Deduplicate by email address, not by name.
Next step
Step-by-step: export recruiter email to Excel · all roles · ready script ($3)
FAQ
Can this feed an ATS?
Export CSV instead of Excel and map columns to your ATS import template.
Is candidate data safe?
The script runs locally and nothing is uploaded. Still treat the file as personal data and restrict access.
Is there a ready script for this?
Yes — the Python script exports any IMAP mailbox with the fields listed above; it costs $3 and runs locally.
Related guides
- Export recruiter email to ExcelStep-by-step with the same columns and command.
- All roles20 professions, one export method.