🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Gmail to Airtable, ranked resumes without the slog

Lisa Granqvist Partner Workflow Automation Expert

Your hiring inbox fills up fast. Then comes the real time-sink: downloading PDFs, trying to spot the job code in the subject line, copying names and emails into a tracker, and hoping your “quick scan” is consistent from one candidate to the next.

This resume scoring automation hits HR managers first, but founders hiring their first team and recruiters supporting multiple roles feel it too. The outcome is simple: every new CV gets captured, parsed, scored, and logged in Airtable so you review ranked candidates instead of messy attachments.

Below, you’ll see exactly how the workflow moves from Gmail to Airtable, what gets extracted and scored, and what you can tweak to match your hiring process.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Gmail to Airtable, ranked resumes without the slog

The Problem: Resume screening turns into inbox archaeology

Most resume “processes” start as good intentions and end as a messy folder. A candidate emails a PDF, the subject line includes a job code (sometimes), you download the attachment, and then you retype the same details into a spreadsheet or ATS notes. It’s not just slow. It’s mentally tiring, which is when mistakes happen: the wrong job gets matched, a strong applicant gets buried, or you forget to follow up because the information is split across Gmail, PDFs, and a half-updated tracker. Honestly, the worst part is inconsistency. Two similar CVs can get wildly different treatment depending on how busy you are that day.

The friction compounds. Here’s where it breaks down.

  • Every attachment becomes manual work, and five applications can easily eat about an hour of admin.
  • Job codes get misread or skipped, so applicants end up logged under the wrong role.
  • Quick scanning rewards flashy formatting, not relevant skills and experience.
  • Notes live in people’s heads or scattered docs, which makes collaboration awkward and subjective.

The Solution: Auto-capture, parse, and score resumes from Gmail to Airtable

This n8n workflow watches a specific Gmail label for new emails that include resume attachments. When an application arrives, it pulls a job code from the email subject (for example, FN-001), then extracts raw text from the attached CV PDF. From there, an AI model (Gemini in this workflow) turns that unstructured resume text into structured fields like name, email, skills, and years of experience. Next, the workflow looks up the matching job post in Airtable using the extracted job code, combines the job requirements with the applicant profile, and runs an AI scoring step that assigns a 1–100 score plus a short reasoning summary (written in Bahasa Indonesia). Finally, it records everything to your Airtable “Applications” table so your pipeline stays clean and searchable.

The workflow starts with a Gmail label trigger and ends with a new Airtable record. In between, it extracts the job code, parses the PDF into usable fields, then scores the candidate against the exact requirements stored in Airtable.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you hire for two roles and get 25 resumes in a week. Manually, even a “quick” routine can take about 10 minutes per application to download the PDF, grab the email/name, find the job code, and log notes, which is roughly 4 hours weekly. With this workflow, your work is basically: label the email (or route it into the label), then review the ranked Airtable list once a day. The AI parsing and scoring runs in the background, so your admin time drops to more like 30 minutes for the whole week’s intake.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Gmail to receive labeled applications with attachments.
  • Airtable to store job posts and applications.
  • Google AI (Gemini) API access (get it from Google AI Studio / Google Cloud console)

Skill level: Intermediate. You’ll connect accounts, map a few fields, and confirm your Airtable tables match the required columns.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

Gmail label trigger. The workflow monitors a Gmail label (for example, job-applications) and fires when a new email arrives with an attachment.

Job code + resume text extraction. It pulls the job code from the email subject using a pattern like ([A-Z]{2}-\d{3}), then extracts text from the attached PDF so the content becomes machine-readable.

AI parsing and candidate scoring. Gemini parses the CV into fields (name, email, skills, years), Airtable provides the job requirements, and the scoring step compares the two to generate a 1–100 score plus a short justification in Bahasa Indonesia.

Airtable logging. A new record is created in your “Applications” table, typically linked to the matching job post, so you can sort, filter, and review in one place.

You can easily modify the scoring criteria to match your hiring rubric based on role seniority, must-have skills, or minimum experience. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Gmail Trigger

Set up the email trigger so new applications with CV attachments are captured automatically.

  1. Add the Monitor New Applications node as your trigger.
  2. Credential Required: Connect your gmailOAuth2 credentials.
  3. Set Filters → Query to has:attachment OR has:document.
  4. Enable Options → Download Attachments and set Data Property Attachments Prefix Name to CV_.
  5. Set Poll Times to Every Minute to monitor new applications continuously.

⚠️ Common Pitfall: If attachments aren’t downloaded, Extract CV Text won’t find CV_0. Double-check the attachment prefix.

Step 2: Connect Airtable

Configure Airtable to look up job postings and store applicant records.

  1. Open Lookup Job Posting and set the Base to [YOUR_ID] and Table to Job Posts.
  2. Credential Required: Connect your airtableTokenApi credentials in Lookup Job Posting.
  3. Set Operation to search and Filter By Formula to ={Job Code} = '{{ $json["Job Code"] }}'.
  4. Open Record Applicant and set the Base to [YOUR_ID] and Table to Applications.
  5. Credential Required: Connect your airtableTokenApi credentials in Record Applicant.

Step 3: Configure Email Parsing & CV Extraction

Derive the job code from the email subject and extract text from the CV attachment.

  1. In Derive Job Code, enable Include Other Fields.
  2. Add an assignment with Name set to =Job Code and Value set to ={{ ($json.subject.match(/([A-Z]{2}-\d{3})/) || [])[1] || null }}.
  3. In Extract CV Text, set Operation to pdf and Binary Property Name to CV_0.
  4. Confirm execution flow: Monitor New Applications outputs to both Derive Job Code and Extract CV Text in parallel.

Step 4: Set Up AI Extraction & Scoring

Use Gemini to extract structured CV data and score applicants against job requirements.

  1. In Gemini Chat Engine, set Model Name to models/gemini-2.5-flash-preview-04-17.
  2. Credential Required: Connect your googlePalmApi credentials in Gemini Chat Engine (this powers AI Resume Extractor).
  3. In AI Resume Extractor, set Text to =CV Text: {{ $json.text }} Email Subject: {{ $('Monitor New Applications').item.json.subject }} and keep Schema Type as fromJson.
  4. In Secondary Gemini Engine, set Model Name to models/gemini-2.5-flash-preview-04-17.
  5. Credential Required: Connect your googlePalmApi credentials in Secondary Gemini Engine (this powers AI Candidate Scoring).
  6. In AI Candidate Scoring, keep Prompt Type as define and ensure Has Output Parser is enabled.
  7. In Structured Result Parser, set JSON Schema Example to { "score": 100, "fit_summary": "Los Angeles" } and note that it is linked to AI Candidate Scoring (credentials are added to Secondary Gemini Engine).

Step 5: Merge Job Data & CV Data

Combine job posting data with CV extraction output before scoring.

  1. In Merge Job and CV, set Mode to combine and enable Advanced.
  2. Set Merge By Fields to map field1 Job Code with field2 output.job_code.
  3. Confirm the flow: Lookup Job PostingMerge Job and CV and AI Resume ExtractorMerge Job and CV.

⚠️ Common Pitfall: If the subject line doesn’t contain a matching job code pattern, Lookup Job Posting won’t return data and the merge can fail. Keep subject lines consistent with AB-001 format.

Step 6: Configure Output Destination

Store the AI scoring results and applicant details in Airtable.

  1. In Record Applicant, map Notes to ={{ $json.output.fit_summary }}.
  2. Map Score to ={{ $json.output.score }}.
  3. Map Job Post to ={{ $('Merge Job and CV').item.json['Job Code'] }}.
  4. Map Email Address to ={{ $('Merge Job and CV').item.json.output.email }} and Applicant Name to ={{ $('Merge Job and CV').item.json.output.name }}.
  5. Leave Years of Experience at 0 or update to a dynamic value if you add it later.

Step 7: Test & Activate Your Workflow

Validate the end-to-end flow before turning it on for production.

  1. Click Execute Workflow and send a test email with a PDF CV attachment that includes a subject like Application for AB-001.
  2. Confirm Derive Job Code extracts AB-001 and Extract CV Text outputs text content.
  3. Verify AI Resume Extractor returns JSON fields and AI Candidate Scoring outputs score and fit_summary via Structured Result Parser.
  4. Check Airtable to confirm Record Applicant creates a new row with the mapped fields.
  5. When everything looks correct, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Gmail permissions and labels can be finicky. If no emails trigger the workflow, confirm the label name matches your Gmail filter and re-check the Gmail credentials in n8n.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Airtable “Find record” steps often fail quietly when the job code format is inconsistent. Make sure your subject regex (like FN-001) matches what your Job Posts table uses, and keep the AI notes format stable so long text doesn’t get truncated.

Frequently Asked Questions

How long does it take to set up this resume scoring automation?

About 45 minutes if your Airtable base is ready.

Do I need coding skills to automate resume scoring?

No coding required. You will mostly be connecting accounts and mapping a few fields in Airtable.

Is n8n free to use for this resume scoring automation workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Google Gemini API usage costs, which depend on how many PDFs you process.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this resume scoring automation workflow for English notes instead of Bahasa Indonesia?

Yes, but you’ll need to change the instruction text in the AI Candidate Scoring prompt. Most teams also tweak the AI Resume Extractor fields (for example, adding location or notice period) and adjust the scoring logic so “must-have” skills weigh more than nice-to-haves.

Why is my Airtable connection failing in this workflow?

Usually it’s an expired token or the Airtable integration doesn’t have access to the base you selected. Reconnect Airtable in n8n, then confirm the “Lookup Job Posting” node points to the right base and table. Another common cause is a job code mismatch: the workflow extracts FN-001 but your Airtable record says FN001 or uses a different field name. Fix the formatting, rerun one email, and the failures typically disappear.

How many resumes can this resume scoring automation handle?

On n8n Cloud, it depends on your plan’s monthly executions, and each processed email counts as an execution. If you self-host, there’s no platform execution cap, but you’re limited by your server size and how fast PDF extraction plus AI scoring runs; for most small teams, dozens to a few hundred resumes a week is comfortable.

Is this resume scoring automation better than using Zapier or Make?

Often, yes. This workflow has multiple stages (PDF text extraction, structured parsing, job lookup, scoring, then logging), and n8n handles that kind of branching and data shaping without turning your automation into a fragile chain of tiny zaps. It’s also easier to self-host, which matters if you want predictable costs as volume increases. Zapier and Make can still work if you want the simplest possible setup, but you may hit limits once you add AI parsing and richer logic. If you want a second opinion before building, Talk to an automation expert.

Once this is running, new applications stop feeling like interruptions and start showing up as a ranked list you can actually work through. Set it up once, then spend your time interviewing the right people.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal