Automate Resume Screening Using Gmail, AI & Google Sheets

Discover how to automate resume screening from Gmail attachments using n8n, AI, and Google Sheets. This workflow reduces manual review time by extracting, analyzing, and scoring resumes automatically.
gmailTrigger
extractFromFile
agent
+3
Learn how to Build this Workflow with AI:
Workflow Identifier: 1576
NODES in Use: gmailTrigger, extractFromFile, agent, outputParserStructured, lmChatOpenAi, googleSheets

Press CTRL+F5 if the workflow didn't load.

Visit through Desktop for Best experience

1. Real Problem Resume Screeners Face

Meet Emma, a busy HR recruiter at a growing tech company. Every day, she receives dozens of job applications via email, mostly with PDF resumes attached. Emma spends hours opening each email, downloading the PDF, trying to skim through sometimes lengthy resumes, and then manually entering details like candidates’ names, emails, LinkedIn profiles, and a subjective score into a spreadsheet. This manual process wastes at least 3-4 hours daily, introducing human error and delaying the hiring process.

Emma’s company needs a faster, more accurate system to filter resumes and keep track of candidate details without repetitive data entry or lost emails.

2. What This Automation Does

This n8n workflow automates the entire resume screening process directly from Gmail attachments using AI to analyze the resumes and store results in Google Sheets. When the workflow runs, it:

  • Automatically triggers on receiving a new unread Gmail email with an attachment (resumes in PDF format).
  • Extracts the text content from each PDF resume attachment.
  • Uses an AI model (OpenAI GPT-4o-mini) via Langchain nodes to analyze the resume content, extracting candidate’s name, email, LinkedIn profile, and generating a suitability score.
  • Parses the AI response structured as JSON with specified fields to ensure consistent data extraction.
  • Automatically appends all extracted and scored candidate information into a dedicated Google Sheets document for centralized tracking.
  • Eliminates manual data entry, saving Emma at least 3-4 hours daily and reduces human error.

3. Prerequisites ⚙️

  • n8n account or self-hosted instance: You need an active n8n environment to build and run the workflow.
  • Gmail account: The Gmail node in n8n listens to incoming emails.
  • Google Sheets with API access: The Google Sheets API must be enabled in Google Cloud, with OAuth 2.0 credentials configured for n8n.
  • OpenAI API key: To leverage GPT-4o-mini for resume analysis.
  • Google Sheets API enabled and Google Drive API enabled.

4. Step-by-Step Guide to Set Up the Resume Screening Automation

Step 1: Set up the Gmail Trigger Node

Navigate in n8n to Nodes > Add Node > Gmail > Gmail Trigger. Configure it to monitor your hiring Gmail inbox for new unread emails with attachments.

Configuration details:

  • Set filter query to has:attachment to only catch emails with resumes.
  • Use label filter to target your inbox or a specific label.
  • Enable Download Attachments option.
  • Set polling interval e.g., every hour.

Save and activate this trigger. You should see it start listening for emails.

Common mistake: Forgetting to enable attachment download results in no file data downstream.

Step 2: Use the Extract Text from PDF File Node

Add the Extract from File (PDF) node to parse the PDF resume content extracted from the Gmail attachments.

Configuration: Set binaryPropertyName to attachment_0 (default Gmail attachment property).

Execute this node to confirm it outputs the resume text correctly.

Common mistake: Incorrect binary property name disables text extraction.

Step 3: Apply the AI Agent Node for Resume Evaluation

Add the AI Agent to evaluate Resume node (Langchain Agent) to analyze resume text.

Configuration:

  • Text input: Use expression {{ $json.text }} to pass resume text.
  • System message prompt: You are an invaluable assistant. You were given a resume. You have to help me analyze the resume and give it a score based on details available. Extract name, email, LinkedIn.
  • Enable structured output parser with a schema expecting name, email, linkedin, and score.
  • Link the OpenAI Chat Model (GPT 4o-mini) node as the language model.

This AI evaluates resumes and returns structured data in JSON.

Common mistake: Not using structured output parser results in inconsistent responses.

Step 4: Configure the OpenAI Chat Model Node

Add the OpenAI Chat Model (GPT 4o-mini) node to provide AI capabilities to the Agent.

Setup: Choose model gpt-4o-mini and link your OpenAI API credentials here.

This node powers the AI Agent for natural language processing.

Step 5: Append Results to Google Sheets

Add the Google Sheets node named Add Resume Evaluation to Google Sheets.

Configuration details:

  • Operation: Append (to add new rows).
  • Document ID: Use your Google Sheets resume tracking sheet ID.
  • Sheet name or ID: Select the specific tab for resume scores.
  • Map data fields:
    • Name: {{ $json.output.name }}
    • Email: {{ $json.output.email }}
    • LinkedIn: {{ $json.output.linkedin }}
    • Score: {{ $json.output.score }}
    • Resume Text: {{ $('Extract text from PDF File').item.json.text }}

After execution, confirm rows are added to your sheet.

Common mistake: Incorrect document ID or missing authentication causes write failure.

5. Customizations ✏️

  • Adjust scoring criteria in AI prompt: Edit the system message in the AI Agent node to reflect your company’s hiring standards or add more evaluation metrics.
  • Expand extracted fields: Modify the JSON schema in the Structured Output Parser node to include phone number or skills if needed.
  • Change email trigger filter: In the Gmail Trigger node, modify the filter query to include specific job titles or keywords to screen only relevant applications.
  • Save resumes to Google Drive: Add a Google Drive node to automatically store PDF attachments for backup and easy reference.
  • Set up notifications: Integrate Slack or email nodes to notify HR instantly when a new candidate is added.

6. Troubleshooting 🔧

Problem: Workflow does not trigger on new emails with attachments

Cause: Gmail filters not correctly set or OAuth credentials missing.

Solution: Go to Gmail Trigger node and ensure the filter query includes has:attachment, labels are correct, and OAuth credentials are valid.

Problem: AI Agent returns errors or inconsistent JSON output

Cause: Output parser schema mismatch or API rate limits.

Solution: Review the JSON schema in Structured Output Parser node to match expected fields. Check OpenAI API usage limits and regenerate API keys if necessary.

Problem: Google Sheets node fails to append data

Cause: Incorrect Google Sheet ID or insufficient permissions.

Solution: Verify Document ID and OAuth credentials in Google Sheets node. Confirm the bot has edit permissions on the specified sheet.

7. Pre-Production Checklist ✅

  • Verify that the Gmail account is receiving emails in the configured label and attachments download.
  • Test the Extract from File node with sample PDF attachments to ensure correct text extraction.
  • Test the AI Agent node independently by sending sample resume texts and verifying structured output.
  • Ensure OpenAI credentials are valid and no API limits are hit.
  • Confirm Google Sheets document is shared properly with your OAuth client and is write-accessible.
  • Run a full test by sending an email with a PDF resume attachment and confirming the row appears in Google Sheets.

8. Deployment Guide

Once all nodes are configured and tested, activate the workflow in n8n. It will run automatically every hour, fetching new resumes, analyzing them, and appending results to your spreadsheet without further intervention.

Monitor workflow executions in the n8n dashboard and check logs for any failures. Use built-in retry and error handling options in n8n to ensure reliable operation.

9. Frequently Asked Questions (FAQs)

  • Q: Can I use a different AI model instead of GPT-4o-mini?
    A: Yes, as long as the model supports chat completions and is configured in the OpenAI Chat Model node.
  • Q: Does this automation consume a lot of OpenAI API credits?
    A: Each resume analysis uses a moderate API call; consider API limits in production setup.
  • Q: Is candidate data stored securely?
    A: All processing happens within your n8n environment and Google Sheet; secure your credentials carefully.
  • Q: Can it handle hundreds of resumes daily?
    A: With proper n8n scaling and API limits accounted for, yes.

10. Conclusion

By following this guide, you’ve built a powerful automation that takes resumes directly from Gmail attachments, extracts key candidate data, scores their suitability with AI, and logs everything into Google Sheets effortlessly.

This workflow saves recruiters like Emma several hours daily, eliminates tedious data entry, and speeds up the hiring process with more consistent and objective screening.
Next, consider expanding this automation to integrate candidate notifications, backup resumes to cloud storage, or even initiate interview scheduling automatically.

Automating resume screening with n8n, AI, Gmail, and Google Sheets transforms HR workflows and brings tangible time and cost savings to hiring teams. Give it a try and watch your recruiting process become smarter and faster!

Related Workflows

Automate Viral UGC Video Creation Using n8n + Degaus (Beginner-Friendly Guide)

Learn how to automate viral UGC video creation using n8n, AI prompts, and Degaus. This beginner-friendly guide shows how to import, configure, and run the workflow without technical complexity.
Form Trigger
Google Sheets
Gmail
+37
Free

AI SEO Blog Writer Automation in n8n (Beginner Guide)

A complete beginner guide to building an AI-powered SEO blog writer automation using n8n.
AI Agent
Google Sheets
httpRequest
+5
Free

Automate CrowdStrike Alerts with VirusTotal, Jira & Slack

This workflow automates processing of CrowdStrike detections by enriching threat data via VirusTotal, creating Jira tickets for incident tracking, and notifying teams on Slack for quick response. Save hours daily by transforming complex threat data into actionable alerts effortlessly.
scheduleTrigger
httpRequest
jira
+5
Free

Automate Telegram Invoices to Notion with AI Summaries & Reports

Save hours on financial tracking by automating invoice extraction from Telegram photos to Notion using Google Gemini AI. This workflow extracts data, records transactions, and generates detailed spending reports with charts sent on schedule via Telegram.
lmChatGoogleGemini
telegramTrigger
notion
+9
Free

Automate Email Replies with n8n and AI-Powered Summarization

Save hours managing your inbox with this n8n workflow that uses IMAP email triggers, AI summarization, and vector search to draft concise replies requiring minimal review. Automate business email processing efficiently with AI guidance and Gmail integration.
emailReadImap
vectorStoreQdrant
emailSend
+12
Free

Automate Email Campaigns Using n8n with Gmail & Google Sheets

This n8n workflow automates personalized email outreach campaigns by integrating Gmail and Google Sheets, saving hours of manual follow-up work and reducing errors in email sequences. It ensures timely follow-ups based on previous email interactions, optimizing communication efficiency.
googleSheets
gmail
code
+5
Free