🔓 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 + Google Sheets: CV scores sorted for you

Lisa Granqvist Partner Workflow Automation Expert

Your inbox shouldn’t be your hiring system. But when CVs arrive in Gmail all day, it quietly becomes one: downloads, renames, “where did I save that file?”, then a rushed first-pass review that changes depending on who’s reading.

This Gmail CV scoring automation hits HR managers first, honestly. Recruiters feel it too. Founders doing hiring between meetings get the worst of it, because screening time steals from everything else.

This workflow pulls CVs from Gmail, stores the original in Google Drive, scores the candidate with GPT-4 against the right job details, then logs everything into Google Sheets so you can shortlist faster and more consistently.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: Gmail + Google Sheets: CV scores sorted for you

The Challenge: Consistent CV Screening Without Living in Your Inbox

Manual resume review feels simple until volume shows up. A candidate emails a PDF, you download it, scan it, and try to remember the job requirements from a doc you opened yesterday. Then another CV lands, and another, and suddenly you have three versions of the “shortlist” living in different places. The real pain isn’t just time. It’s inconsistency, lost context, and the nagging sense you might be missing strong candidates because you’re tired or rushed.

It adds up fast. Here’s where it breaks down in day-to-day hiring.

  • CVs get reviewed with different standards because the job criteria isn’t right in front of you every time.
  • Attachments get saved “somewhere,” which becomes a scavenger hunt when a hiring manager asks for the original file.
  • Good candidates slip through because the first pass takes too long, so follow-ups happen late.
  • Notes live in email threads or sticky docs, which makes filtering and comparing candidates a chore.

The Fix: Auto-Score CVs From Gmail and Sort Them in Sheets

This workflow turns your incoming CV emails into a clean, searchable screening pipeline. When a new email hits your CV inbox, it first checks if the message is actually an application (not a vendor pitch or a random newsletter). If it is, the workflow looks for the resume attachment, stores the original file in Google Drive, and extracts the text from the PDF so it’s usable for evaluation. Next, it pulls the relevant job details from a connected Google Sheet and asks GPT-4 to score the candidate against that role. Finally, it writes the score and key notes back into your central Google Sheet and sends a receipt email to the applicant so they know you got it.

The workflow starts with Gmail monitoring your inbox. From there, an AI classifier filters noise, PDF text extraction makes the resume readable, and Google Drive keeps the original safe. Then GPT-4 evaluates fit using job data from Sheets, and the final score lands in a single spreadsheet row you can sort and filter.

What Changes: Before vs. After

Real-World Impact

Say you receive 20 CVs a week for one role. Manually, you might spend about 10 minutes per email to download the file, skim it, compare it to the job description, then log notes somewhere, which is roughly 3 hours a week. With this workflow, you spend maybe 5 minutes setting it up once, then each new CV is automatically filed in Drive and scored into Sheets while you keep working. You just open the spreadsheet and sort by score.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Gmail to detect new CV emails and reply.
  • Google Sheets to store job details and candidate scores.
  • Google Drive to store original resume files securely.
  • OpenAI API key (get it from your OpenAI dashboard).

Skill level: Intermediate. You’ll connect Google accounts in n8n and paste an API key, then adjust a few sheet columns and prompts.

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

The Workflow Flow

Gmail detects a new CV email. The workflow watches the inbox you use for applications, then grabs the message content and attachments as soon as it arrives.

An AI classifier filters out non-applications. Using an OpenAI chat model plus a text classification step, it separates actual candidates from everything else so your sheet doesn’t fill with junk.

The resume is stored and converted into usable text. If there’s an attachment, the PDF is uploaded to Google Drive, and the workflow extracts the resume text so GPT-4 can evaluate it reliably.

Job details are pulled from Google Sheets, then scoring happens. The workflow fetches the job offer row (or sheet) you maintain, sends the job criteria plus resume text into the AI scoring agent, and parses the structured output into a clean score and notes.

Results land in Sheets and the applicant gets a receipt. Candidate name, score, notes, and a Drive link are recorded, and Gmail sends a simple confirmation email back to the applicant.

You can easily modify the scoring criteria to match each role, or expand the sheet columns to include “Stage,” “Owner,” or “Interview date” based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Gmail Trigger

Set up the inbound email trigger so only unread emails with attachments are processed for resume intake.

  1. Open Gmail CV Watcher and confirm the filter query is set to has:attachment.
  2. Set Read status to unread and ensure Download attachments is enabled.
  3. Set the polling schedule to run everyHour at minute 1.
  4. Credential Required: Connect your gmailOAuth2 credentials to Gmail CV Watcher.

Tip: Test with a real resume email marked as unread to confirm attachments download correctly.

Step 2: Connect Google Drive and Google Sheets

Store attachments in Drive and log links and scoring data into Sheets.

  1. In Store Resume in Drive, set Name to {{ $('Gmail CV Watcher').item.json.from.value[0].address }} and Input Data Field Name to attachment_0.
  2. Select the target folder for resumes in Store Resume in Drive (e.g., the folder labeled CV - HR).
  3. Credential Required: Connect your googleDriveOAuth2Api credentials to Store Resume in Drive.
  4. In Append CV Link Sheet, keep Operation as append and map Email to {{ $('Gmail CV Watcher').item.json.from.value[0].address }} and Link CV to {{ $('Store Resume in Drive').item.json.webViewLink }}.
  5. In Fetch Job Offer Sheet, select the correct Document and Sheet where job descriptions live.
  6. In Record Score in Sheets, keep Operation as appendOrUpdate and Matching Columns set to Email.
  7. Credential Required: Connect your googleSheetsOAuth2Api credentials to Append CV Link Sheet, Fetch Job Offer Sheet, and Record Score in Sheets.

⚠️ Common Pitfall: If the Document or Sheet selectors are blank, the nodes will run but log no data. Make sure each Sheets node points to an actual file and tab.

Step 3: Set Up Classification and Routing

Classify the email intent and route only valid job applications with attachments.

  1. In Categorize Email Intent, set Input Text to {{ $json.text }}.
  2. Ensure OpenAI Classifier Model is connected as the language model for Categorize Email Intent.
  3. Credential Required: Connect your openAiApi credentials to OpenAI Classifier Model.
  4. In Route Attachment Presence, keep the rules that check for attachment_0 existence.
  5. Confirm the route from Categorize Email Intent to Ignore Non-Applications handles the “Doesn't apply” category.

Tip: If classification is too strict, adjust the category descriptions in Categorize Email Intent before running live.

Step 4: Set Up Resume Extraction and AI Scoring

Extract PDF text, fetch the job description, and run the AI agent to score candidates.

  1. In Extract PDF Resume Text, set Operation to pdf and Binary Property Name to attachment_0.
  2. In AI Resume Scoring Agent, set the Text field to the full prompt including {{ $('Extract PDF Resume Text').item.json.text }}, {{ $json['Title offer'] }}, and {{ $json.Description }}.
  3. Ensure OpenAI Scoring Model is connected as the language model for AI Resume Scoring Agent.
  4. Credential Required: Connect your openAiApi credentials to OpenAI Scoring Model.
  5. Confirm Parse Scoring Output is connected as the output parser for AI Resume Scoring Agent and uses the provided JSON schema.

⚠️ Common Pitfall: Parse Scoring Output is an AI sub-node—add credentials to OpenAI Scoring Model and not to the parser itself.

Step 5: Configure Output Actions

Log the AI results and send a confirmation email to the candidate.

  1. In Record Score in Sheets, map fields to the AI output and resume text, including {{ $json.output.name }}, {{ $json.output.score }}, and {{ $('Extract PDF Resume Text').item.json.text }}.
  2. In Send Receipt Email, set Send To to {{ $('Gmail CV Watcher').item.json.from.value[0].address }} and Subject to Application Received.
  3. Leave the AI-generated message as {{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }} so the agent can compose it.
  4. Credential Required: Connect your gmailOAuth2 credentials to Send Receipt Email.

Tip: Send Receipt Email is an AI tool sub-node—ensure credentials are added to the Gmail tool itself, and verify the agent has permission to use it.

Step 6: Test and Activate Your Workflow

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

  1. Manually run the workflow by sending an unread email with a PDF resume attachment to the monitored inbox.
  2. Confirm that Store Resume in Drive creates a file and Append CV Link Sheet logs the email and Drive link.
  3. Verify that Record Score in Sheets writes the candidate’s extracted details and score.
  4. Check the inbox for the confirmation email sent by Send Receipt Email.
  5. Once successful, toggle the workflow to Active for continuous processing.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • Google OAuth credentials can expire or need specific permissions. If things break, check the n8n credential connection status and your Google Cloud API access first (Gmail, Drive, and Sheets).
  • If your resumes are large or scanned PDFs, PDF text extraction can return thin results. In that case, you may need a different extraction method, or you’ll see vague AI scoring because there’s not enough text.
  • Default AI prompts are generic. Add your must-haves (years of experience, required tools, location rules) early, or you will be second-guessing scores in the sheet every day.

Common Questions

How quickly can I implement this Gmail CV scoring automation?

About an hour if your Google accounts and OpenAI key are ready.

Can non-technical teams implement this CV scoring?

Yes, but you’ll want one person comfortable with connecting OAuth credentials in n8n. No coding, just setup and a bit of testing with real emails.

Is n8n free to use for this Gmail CV scoring 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 API usage, which is usually a few cents per CV depending on resume length and your prompt.

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 Gmail CV scoring solution to my specific challenges?

You can change the evaluation criteria inside the AI Resume Scoring Agent prompt so the score reflects your hiring rubric, not a generic “good resume” standard. Many teams add columns like “Must-have match,” “Concerns,” and “Recommended stage,” then map those fields from Parse Scoring Output straight into Record Score in Sheets. If you hire for multiple roles, pull different job profiles in Fetch Job Offer Sheet and route to different prompts based on the role name. You can also replace the receipt message in Send Receipt Email to match your tone and include next steps.

Why is my Gmail connection failing in this workflow?

Usually it’s expired Google OAuth credentials or a missing Gmail API permission in your Google Cloud project. Reconnect the Gmail credential in n8n, then confirm Gmail API is enabled and your consent screen is still valid. If it fails only sometimes, rate limits or inbox rules can be involved, especially when you receive many CVs at once.

What’s the capacity of this Gmail CV scoring solution?

It scales fine for most small teams, and the practical limit is usually your n8n plan and OpenAI usage, not the logic itself.

Is this Gmail CV scoring automation better than using Zapier or Make?

Often, yes, especially if you want structured parsing, branching logic, and the option to self-host. This workflow uses AI classification, file handling, and structured output parsing, which tends to get awkward (and pricey) in simpler automation tools once you add real screening rules. n8n also makes it easier to keep everything in one workflow: Gmail in, Drive storage, Sheets updates, then an email out. Zapier or Make can still be a good choice if you only need “email received → add row to sheet” and nothing more. Talk to an automation expert if you want a quick recommendation for your exact stack.

You end up with one sheet that tells the truth: who applied, where the CV is, and how strong the fit looks. The workflow handles the repetitive parts so your hiring decisions can get the attention.

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