use-case

Recruiting Email Tracking in Airtable: Candidates, Resumes, and Pipelines

Leandro Zubrezki··10 min read
Recruiting Email Tracking in Airtable: Candidates, Resumes, and Pipelines

Inbound applications never come from one place. A senior engineer comes in via LinkedIn Recruiter. A sales rep comes through a referral from your VP of Sales. A junior applies through the careers@ inbox. A staff designer comes from a sourcer using Workable, who forwards you the candidate's reply directly. Greenhouse pipes you ten more on Monday morning.

If you're doing this in a spreadsheet, candidates fall through the cracks. Resumes get lost in Drive folders no one can find. Someone you talked to in March re-applies in May and you forget you already screened them. Follow-ups don't happen because the email is buried under a hundred others.

I built Quicktion partly because Airtable handles this kind of work better than any inbox can. Linked records, attachments, Kanban views. The friction is getting the emails into the base in the first place. Once that part is solved, recruiting in Airtable stops being a chore.

This post walks through the recruiting setup specifically. For base structure fundamentals (how to set up linked Contacts and Emails tables in the first place), see the Airtable CRM guide. For the baseline of how to connect Gmail to Airtable, the Gmail-to-Airtable integration guide covers all four methods.

The candidate intake table

Start with one table called Candidates. This is your applicant tracking table — every inbound, regardless of source, lands here.

Then add three linked tables it points to:

  • Roles — Engineering, Sales, Ops, Marketing, etc. One record per open req.
  • Stages — Applied, Screened, Phone Screen, Onsite, Panel Interview, Offer, Hired, Rejected, Withdrew. (Or use a Single Select if you don't need stage notes.)
  • Recruiters — the people on your team who own candidates. Sourcer for top-of-funnel, hiring manager later.

The Candidates table itself looks roughly like this:

FieldTypePurpose
NameSingle Line TextCandidate's name (AI-filled if you turn that on)
EmailEmailTheir address — also useful as a dedupe key
Current CompanySingle Line TextWhere they work now
Current RoleSingle Line TextTheir current title
Years of ExperienceNumberSeniority signal
LocationSingle Line TextFor remote/onsite filtering
SourceSingle SelectLinkedIn, Careers Inbox, Referral, Greenhouse, Workable, Other
RoleLinked Record → RolesWhich req they're being considered for
StageLinked Record → StagesPipeline stage
RecruiterLinked Record → RecruitersOwner
ResumeMultiple AttachmentsThe actual PDF
SubjectSingle Line TextThe email subject line, mostly for reference
BodyLong TextFull email body as markdown
Date ReceivedDateWhen they applied
Last TouchDateUpdated manually or by an automation

The Recruiter field is what stops candidates from falling through the cracks. Every candidate has an owner. Every owner can filter the table to "candidates I own where Last Touch is more than 5 days ago and Stage is not Rejected or Hired" and see exactly who needs a follow-up.

Save emails in seconds

Forward any email to your Quicktion address and it lands in Notion, Google Sheets, Airtable, Linear, or Trello automatically.

Source tagging with separate forwarding addresses

This is the part most people skip and then regret. Don't use one forwarding address for all your inbound recruiting. Use one per source.

In Quicktion, create three or four destinations, all pointing at the same Candidates table, with different Source default values:

  • careers-inbox-xxx@in.quicktion.io — Source defaults to Careers Inbox
  • linkedin-xxx@in.quicktion.io — Source defaults to LinkedIn
  • referrals-xxx@in.quicktion.io — Source defaults to Referral
  • greenhouse-xxx@in.quicktion.io — Source defaults to Greenhouse

Then in each upstream system, point the auto-forward at the matching address:

  • Careers inbox (careers@yourcompany.com): a Gmail filter for everything to that alias, forwarding to the Careers Inbox destination.
  • LinkedIn Recruiter: enable email notifications for new InMail replies, then a filter on from:noreply@linkedin.com forwarding to the LinkedIn destination.
  • Referrals: when an internal referral comes in, your team forwards manually to the Referrals address. (Or set up a shared referrals@ alias and auto-forward.)
  • Greenhouse / Workable: forward the candidate-added notification emails to the matching destination.

The point is that by the time the record exists in Airtable, the Source field is already filled in correctly. No manual tagging. You can build a Source breakdown view to see, over a month, where your best candidates actually came from. That's the kind of question every head of recruiting cares about but almost never has clean data for.

Default values are a Pro feature, but this is the workflow that makes Pro worth it for recruiting specifically.

AI extraction for candidate details

The candidate emails you get are not structured. A LinkedIn InMail reply is one paragraph and a resume PDF. A referral is "hey, my friend Maria is looking, here's her resume." A careers inbox application is sometimes a cover letter, sometimes one line.

AI Email Intelligence (Pro) reads the body of the email and the resume PDF together, and fills in fields you define. You write the prompt; it does the parsing.

The prompt I use for a Candidates destination looks roughly like this:

Extract the following from the email body and any attached resume PDF. If a value is not present, leave the field blank. Do not guess.

  • Name: the candidate's full name.
  • Current Company: where they currently work. If they are unemployed or freelancing, use that.
  • Current Role: their current job title.
  • Years of Experience: a single integer estimating total years of professional experience. If the resume only lists dates, sum the spans of full-time roles.
  • Location: city and country if available. If only one is present, use what's there.

What lands in Airtable is a draft. The Name field comes in filled, the Current Company has "Stripe" in it, the Years of Experience says 8. The Resume PDF is in the Multiple Attachments field. The full body is in Long Text in case you want to skim it.

A few honest things about this:

  • It's a draft, not a decision. The AI will sometimes parse a senior title from a side gig instead of the main job. It will sometimes count internship months as experience. Always review before you move someone to a screening stage.
  • It doesn't replace a screener's read. The point isn't to score candidates, it's to skip 90% of the data entry. The judgment stays with you.
  • It works on PDFs (and images), not DOCX or XLSX yet. If a candidate sends a Pages export or a DOCX resume, the AI sees the email body only.
  • It runs on Vertex AI (Gemini). Google doesn't retain the data or train on it.

More on how the AI feature works on the AI Email Intelligence page.

Resume attachment handling

Resumes are the reason Airtable beats every other destination for this. They go into the Multiple Attachments field, viewable in the Airtable UI, with persistent links you can share with a hiring manager or interview panel without giving anyone Drive access.

A few details that matter in practice:

  • One Resume field per candidate. Even if they send two PDFs (a resume and a portfolio), both land in the same Multiple Attachments field. Airtable handles multi-file fine.
  • Persistent URLs. The attachment URLs from Airtable don't expire, so you can paste one into a Slack thread for a panel interview and people can open it weeks later. (Drive shares often break the moment someone restructures a folder.)
  • Preview in the Airtable UI. Click the attachment, the PDF opens in the side panel. No download required. This sounds small until you're scrolling through 40 candidates in a row.

Pipeline views

This is where Airtable starts to feel like a real ATS instead of a fancy spreadsheet.

Kanban by Stage. Group the Candidates table by Stage. Drag candidates from Applied to Screened to Phone Screen to Onsite to Offer. Color cards by Role so you can spot which req is moving and which one is stuck. The drag-to-update is the part that makes a Monday morning recruiting standup actually fast.

Calendar for interviews. Filter to Stage = Phone Screen, Onsite, or Panel Interview, group by Date Received (or better, an Interview Date field you add separately). This gives you the week's interview load at a glance.

Grid for inbox. A flat grid view sorted by Date Received descending is your daily triage. New candidates at the top. Filter to "Stage is empty" to see only candidates you haven't placed in the pipeline yet.

Recruiter views. Each recruiter on the team filters to "Recruiter = me" and bookmarks it. Their personal queue, every candidate they own.

Why not just use Sheets?

Recruiting needs linked records. A candidate is connected to a Role (which req?), a Recruiter (who owns this person?), and over time a Stage history. Google Sheets can fake this with VLOOKUP, but every link is a string lookup that breaks when someone renames a row. Airtable's Linked Record fields are real two-way relationships. Open a Role record and see every candidate considered for it, open a Recruiter and see their book. Multiple Attachments also matters: Sheets has no equivalent. For one-off receipt logging Sheets is fine. For recruiting it's the wrong shape of tool.

Limits to be honest about

  • Free plan caps at 25 emails per month. If you're a solo recruiter doing 5 to 10 applications a week, that won't cut it.
  • Pro is $12/month ($120/year) for 1,000 emails/month, unlimited destinations, AI Email Intelligence, and default values. That's the plan recruiting actually needs because of the source-tagged destinations and the AI extraction.
  • Airtable's free plan caps each base at 1,000 records and 1 GB of attachments. Resumes eat the attachment quota faster than you'd think. Most recruiting users end up on Airtable Team (20 GB attachments, 50,000 records per base) within a quarter or two.
  • AI is a draft. Worth saying again. Review every extraction. Hiring decisions stay human.
  • Quicktion doesn't dedupe candidates by email. If Maria applies for two different roles, you get two rows. You can either dedupe manually by glancing at the Email field, or build an Airtable Automation that flags duplicates by matching Email values.

Get started

Sign up for Quicktion, create a Candidates destination, set up source-tagged forwarding addresses, and turn on AI extraction with the prompt above. For the underlying base structure and linked-record patterns, the Airtable CRM guide is the reference. For Gmail setup specifically, see the Gmail-to-Airtable integration guide.

The marketing walkthrough is on the Airtable integration page.

Ready to put your emails where they belong?

Quicktion lets you forward emails or use the Gmail add-on to save messages to Notion, Google Sheets, Airtable, Linear, or Trello. No code required.

LZ

Leandro Zubrezki

Founder of Quicktion

Building tools to bridge the gap between email and the tools you already use. Leandro created Quicktion to help teams save time by automating email workflows across Notion, Google Sheets, Airtable, Linear, and Trello.

Related Posts