🔓 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 Google Sheets, resumes scored and sorted

Lisa Granqvist Partner Workflow Automation Expert

Your inbox wasn’t built to be an ATS. You get a burst of resumes, attachments are named weirdly, details are scattered across PDFs, and the “quick shortlist” turns into an afternoon of copy-paste.

This resume screening automation hits recruiters first, honestly, but founders and ops leads feel it too when hiring ramps up. Instead of reading every CV top-to-bottom, you get a consistent summary, a 1–10 score, and a clean row in Google Sheets that you can sort in seconds.

Below, you’ll see how the workflow routes resumes from Gmail into Google Drive, turns them into text, evaluates them with an AI agent, and logs everything into Sheets (and Airtable) for a tidy shortlist.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: Gmail to Google Sheets, resumes scored and sorted

The Challenge: Resume screening turns into inbox chaos

Manual screening sounds manageable until it isn’t. One role goes live, resumes start arriving through Gmail (and sometimes a form), and suddenly you’re opening attachments, hunting for phone numbers, and trying to remember which candidate had “that Kubernetes project.” Then you create a sheet, but the data isn’t consistent because you typed it differently each time. A few days later, you can’t confidently answer basic questions like “Who are our top 10?” or “Which resumes did we already review?” The time cost hurts, but the mental load is what really drags you down.

It adds up fast. Here’s where it breaks down.

  • Opening, renaming, and filing resume attachments steals about 2 hours a week once volume picks up.
  • Contact details get missed because they’re buried in headers, footers, or non-standard layouts.
  • Scoring is inconsistent when five people “just skim” and everyone uses different criteria.
  • Without a centralized log in Google Sheets (or Airtable), follow-ups and shortlists become guesswork.

The Fix: Gmail-to-Sheets screening with AI summaries and scoring

This workflow builds a simple, dependable resume screening pipeline using n8n. New resumes arrive through Gmail (or a form submission), and the attachments are immediately stored in a Google Drive folder so you always have a source of truth. The workflow then downloads the stored file and extracts the text from the PDF/DOC so it can be analyzed reliably. From there, it splits into two parallel checks: one pulls structured contact info (name, email, phone) and the other uses an AI agent to summarize education, job history, and skills, then assigns a suitability score from 1–10 with a short justification. Finally, it cleans and normalizes the AI output, merges everything into one candidate record, and logs that record into Google Sheets and Airtable.

The workflow starts when a resume hits Gmail or your form endpoint. Google Drive handles storage and retrieval, then the extracted text feeds both the information extractor and the AI agent. At the end, Google Sheets becomes your sortable shortlist, while Airtable can power dashboards and a lightweight ATS-style view.

What Changes: Before vs. After

Real-World Impact

Say you’re hiring for one role and you receive 30 resumes in a week. Manually, you might spend about 10 minutes per resume to download, skim, grab contact details, and paste notes into a sheet, which is roughly 5 hours. With this workflow, intake is automatic, storage is automatic, and the summary + score are generated for you; your “work” becomes reviewing the top 10 scored rows in Google Sheets. That usually looks like 30–45 minutes, not half a day.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Gmail to capture incoming resume attachments.
  • Google Drive for storing and retrieving resume files.
  • Google Sheets to log candidates into a sortable shortlist.
  • Airtable for dashboards and longer-term record-keeping.
  • OpenAI or OpenRouter API key (get it from your OpenAI/OpenRouter dashboard)

Skill level: Intermediate. You’ll connect credentials, set a Drive folder, and adjust a few fields/prompts.

Need help implementing this? Talk to an automation expert (free 15-minute consultation).

The Workflow Flow

A resume arrives in Gmail or your form. The workflow watches your inbox for applications (you can filter by job title or keywords), and it also supports a form-trigger route for career pages and portals.

The file is stored, then converted to usable text. The attachment is uploaded into Google Drive, then downloaded back from Drive to keep the pipeline consistent. Next, the workflow extracts text from the resume so downstream steps aren’t guessing from a binary PDF.

Two parallel analyses run. One path extracts structured contact information (candidate name, email, phone). The other path uses an AI agent to produce education, job history, skills, plus a 1–10 score and justification using your chosen model via OpenRouter or OpenAI.

The result is cleaned, merged, and logged. A set-and-transform phase normalizes the AI output into predictable fields, then both branches are merged into one candidate record. That record is appended to Google Sheets and also created in Airtable for dashboards and filtering.

You can easily modify the scoring criteria to match one role, or swap the destination from Google Sheets to another system based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Gmail Trigger

This workflow starts when a CV arrives via Gmail or a form submission.

  1. Open Incoming Gmail Watcher and set the filter query in Filters to Senior Software Engineer.
  2. Enable attachment download in Options and set Data Property Attachments Prefix Name to CV.
  3. Set Poll Times to run everyMinute.
  4. Credential Required: Connect your gmailOAuth2 credentials in Incoming Gmail Watcher.
  5. Open Form Submission Trigger and set Form Title to Senior Software Engineer so form uploads can also start the workflow.

Execution Note: Both Incoming Gmail Watcher and Form Submission Trigger output to Store Attachment in Drive.

Step 2: Connect Google Drive for CV Storage

Attachments are saved to Drive and then downloaded for text extraction.

  1. In Store Attachment in Drive, set Name to ={{ $json.from.value[0].name }}.
  2. Set the Folder to your target folder and keep Input Data Field Name as CV0.
  3. Credential Required: Connect your googleDriveOAuth2Api credentials in Store Attachment in Drive.
  4. In Fetch Drive File, set Operation to download and File ID to ={{ $json.id }}.
  5. Credential Required: Connect your googleDriveOAuth2Api credentials in Fetch Drive File.

Step 3: Set Up AI Extraction and Summarization

Extract text from the PDF and send it through parallel AI flows for structured fields and summarization.

  1. Open Extract PDF Text and set Operation to pdf.
  2. In Structured Info Parser, set Text to ={{ $json.text }} and keep the Input Schema as provided to extract candidate_name, email_address, and contact_number.
  3. OpenRouter Chat Engine is connected as the language model for Structured Info Parser — ensure credentials are added to OpenRouter Chat Engine.
  4. In CV Summary Agent, set Text to =CV: {{ $json.text }} and keep the Prompt Type as define to use the built-in system message.
  5. OpenRouter Chat Engine 2 is connected as the language model for CV Summary Agent — ensure credentials are added to OpenRouter Chat Engine 2.

Parallel Execution: Extract PDF Text outputs to both Structured Info Parser and CV Summary Agent in parallel.

Step 4: Transform and Merge Results

Normalize the summary output and merge it with the structured fields.

  1. In Map Output Fields, set the assignment output to ={{ $json.output }} to standardize the agent response.
  2. Review Transform Summary Script and keep the provided JavaScript to extract Educational Qualifications, Job History, Skill Set, and the Score and Justification.
  3. In Combine Results, set Mode to combine and Combine By to combineAll.

Step 5: Configure Output Destinations

Write the combined results to Google Sheets and Airtable at the same time.

  1. In Append Spreadsheet Row, set Operation to append and map columns using the existing expressions such as ={{ $json.output.candidate_name }} and ={{ $json.score }}.
  2. Credential Required: Connect your googleSheetsOAuth2Api credentials in Append Spreadsheet Row.
  3. In Insert Airtable Entry, set Operation to create and map fields using the expressions like ={{ $json.jobHistory }} and ={{ $json.justification }}.
  4. Credential Required: Connect your airtableTokenApi credentials in Insert Airtable Entry.

Parallel Execution: Combine Results outputs to both Append Spreadsheet Row and Insert Airtable Entry in parallel.

Tip: Validate that your Google Sheet column headers and Airtable field names exactly match the mapped keys (including capitalization like Educational Qualifications and Skill set) to avoid empty writes.

Step 6: Test and Activate Your Workflow

Run a full test to confirm CV processing, AI outputs, and data writes.

  1. Use Incoming Gmail Watcher with a test email containing a PDF attachment or submit a test file via Form Submission Trigger.
  2. Verify that Store Attachment in Drive creates a file and Fetch Drive File downloads it successfully.
  3. Confirm Structured Info Parser outputs candidate_name, email_address, and contact_number, and that Transform Summary Script outputs score and justification.
  4. Check that Append Spreadsheet Row creates a new row and Insert Airtable Entry creates a new record with the mapped fields.
  5. When successful, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • Gmail credentials can expire or need specific permissions. If things break, check the n8n Credentials screen and your Google OAuth consent/refresh status first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • OpenRouter/OpenAI prompts default to “generic recruiter.” Add your role requirements and scoring rubric early, or you will keep tweaking summaries by hand.

Common Questions

How quickly can I implement this resume screening automation?

About an hour if your Google and Airtable accounts are ready.

Can non-technical teams implement this resume screening automation?

Yes, but you’ll want someone comfortable connecting OAuth accounts in n8n. No coding is required unless you choose to tweak the parsing logic.

Is n8n free to use for this resume screening 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 OpenAI/OpenRouter usage (often a few cents per resume, depending on model and prompt size).

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.

How do I adapt this resume screening automation solution to my specific challenges?

Start by editing the Gmail search filter so it only captures applications for the role you care about. Then adjust the AI agent prompt to reflect your rubric (must-have skills, years of experience, location, clearance, whatever matters). If you don’t want Airtable, disable the Airtable “create record” action and keep only the Google Sheets append. You can also change the Drive folder ID so each open role stores resumes in its own folder.

Why is my Gmail connection failing in this workflow?

Usually it’s an expired OAuth token or the wrong Google account connected in n8n. Reconnect Gmail credentials, confirm the mailbox has access to the target label/search results, and check that attachments are actually included in the emails you’re testing. If it works sometimes and fails in bursts, you may be hitting API limits during high-volume periods.

What’s the capacity of this resume screening automation solution?

On n8n Cloud, capacity depends on your plan’s monthly executions, while self-hosting is mainly limited by your server. Practically, most teams run this continuously and screen dozens (or a few hundred) resumes per week without issues, as long as the AI step isn’t overloaded.

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

Often, yes. This workflow has parallel branches (contact extraction plus AI evaluation), a cleanup/merge phase, and two destinations (Google Sheets and Airtable), which is the kind of logic that gets awkward and expensive in simpler tools. n8n also gives you a self-hosted path when volume increases, so you don’t have to count every run like it’s precious. Zapier or Make can still be fine if you only want “Gmail attachment → save file” with no scoring. If you’re unsure, Talk to an automation expert and you’ll get a straight answer.

Once this is running, screening stops being a dreaded “catch-up task” and turns into a quick review of the best candidates. Set it up once, then spend your time interviewing instead of sorting PDFs.

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