Skip to main content

Fast-track CV screening with AI analysis from Gmail to Slack and Google Sheets

Workflow preview

Workflow preview
100%
Fast-track CV screening with AI analysis from Gmail to Slack and Google Sheets preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

CV → Match → Screen → Decide, all automated This workflow automatically processes candidate CVs from email, intelligently matches them to job descriptions, performs AI powered screening analysis, a...

Best for

  • HR automation workflows
  • AI Summarization automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.httprequest, n8n-nodes-base.code, n8n-nodes-base.merge, n8n-nodes-base.set, n8n-nodes-base.extractfromfile, @n8n/n8n-nodes-langchain.informationextractor, n8n-nodes-base.googlesheets, n8n-nodes-base.googledrive

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Dean Pike.

Original n8n.io source

1.1 Workflow description

Title
Fast-track CV screening with AI analysis from Gmail to Slack and Google Sheets
Workflow name
Fast-track CV screening with AI analysis from Gmail to Slack and Google Sheets

CV → Match → Screen → Decide, all automated

This workflow automatically processes candidate CVs from email, intelligently matches them to job descriptions, performs AI-powered screening analysis, and sends actionable summaries to your team in Slack.

Good to know

  • Handles both PDF and Word document CVs automatically
  • Two-stage JD matching: prioritizes role mentioned in candidate's email, falls back to CV analysis if needed
  • Uses Google Gemini API for AI screening (generous free tier and rate limits, typically enough to avoid paying for API requests, but check latest pricing at Google AI Pricing)
  • All CVs stored in Google Drive with standardized naming (candidate name + date/time)
  • Complete audit trail logged in Google Sheets

Who's it for

Hiring teams and recruiters who want to automate first-round CV screening while maintaining quality. Perfect for companies
receiving high volumes of applications across multiple roles, especially in tech, sales, or automation-focused positions.

How it works

  1. Gmail monitors inbox for CVs with specific label and downloads attachments
  2. Detects file type (PDF or Word) and converts/standardizes format for text extraction
  3. AI agent matches candidate to best-fit job description by analyzing email context first (if candidate mentioned a role), or
    CV content as fallback (selects up to 3 potential JD matches)
  4. If multiple JDs matched, second AI agent selects the single best fit
  5. AI recruiter agent analyzes CV against selected JD and generates structured screening report (strengths, weaknesses, risk/reward factors, overall fit score 0-10 with justification)
  6. Extracts candidate details (name, email) from CV text
  7. Logs complete analysis to Google Sheets tracker
  8. Sends formatted summary to Slack with Proceed/Reject action buttons for instant team decisions

Requirements

  • Gmail account with API access
  • Google Drive account (OAuth2)
  • Google Sheets account (OAuth2)
  • Slack workspace with bot permissions
  • Google Gemini API key (Get free key here)
  • Google Drive folders: one for CVs, one for Job Descriptions (as PDFs or Google Docs)

How to set up

  1. Add credentials: Gmail OAuth2, Google Drive OAuth2, Google Sheets OAuth2, Slack OAuth2, Google Gemini API
  2. Create Gmail label (e.g., "CV-Screening") for incoming candidate emails
  3. In "Receive CV via Email" node: select your Gmail label for filtering
  4. Create two Google Drive folders: "Candidate CVs" and "Job Descriptions"
  5. In "Upload CV - PDF" and "Stream Doc/Docx File" nodes: update folder ID to your "Candidate CVs" folder
  6. In "Access JD Files" node: update folder ID to your "Job Descriptions" folder
  7. Create Google Sheet named "AI Candidate Screening" with columns matching the sample AI Candidate Screening sheet
  8. In "Append row in sheet" node: select your Google Sheet
  9. In "Send Candidate Screening Confirmation" node: select your Slack channel
  10. Activate workflow

Customizing this workflow

  • Change JD matching logic: Edit "JD Matching Agent" node prompt to adjust how CVs are matched to roles (e.g., weight technical skills vs. experience).
  • Change "Company Description" in AI prompts: Insert your "Company Description" in System Message sections in "JD Matching Agent" and "Detailed JD Matching Agent" nodes
  • Modify screening criteria: Edit "Recruiter Scoring Agent" node system message to focus on specific qualities (culture
    fit, leadership, technical depth, etc.)
  • Add more storage locations: Add nodes to save CVs to other systems (Notion, Airtable, ATS platforms)
  • Customize Slack message: Edit "Send Candidate Screening Confirmation" node to change formatting, add more context, or
    include additional candidate data
  • Auto-proceed logic: Add IF node after screening to auto-proceed candidates with fit score above threshold (e.g., 8+/10)
  • Add email responses: Connect nodes to automatically email candidates (confirmation, rejection, interview invite)
  • Add human-in-the-loop: Sub-workflow triggered by Slack response or email response, to update Sheet with approve/reject status
  • Add candidate email responses + interview scheduling: For approved candidates, trigger email to candidate with Cal.com or Calendly link so they can book their interview

Quick Troubleshooting

  • No CVs being processed: Check Gmail label is correctly set in "Receive CV via Email" node and emails are being labeled
  • Word documents failing: Verify "Stream Doc/Docx File" node has correct parent folder ID and Google Drive credentials
    authorized
  • JD matching returns no results: Check "Access JD Files" node folder ID points to your Job Descriptions folder, and JD
    files are named clearly (e.g., "Marketing Director JD.pdf")
  • JD matching is not relevant for my company: Update the "Company Description" in the System Messages in the "JD Matching Agent" and "Detailed JD Matching Agent" nodes
  • "Can't find matching JD": Ensure candidate's email mentions role name OR their CV clearly indicates relevant experience
    for available JDs
  • Google Sheets errors: Verify sheet name is "AI Candidate Screening" and column headers exactly match workflow expectations (Submission ID, Date, CV, First Name, etc.)
  • Slack message not appearing: Re-authorize Slack credentials and confirm channel ID in "Send Candidate Screening Confirmation" node
  • Missing candidate name/email: CV text must be readable - check PDF extraction quality or try converting complex CVs to
    simpler format
  • 401/403 API errors: Re-authorize all OAuth2 credentials (Gmail, Google Drive, Google Sheets, Slack)
  • AI analysis quality issues: Edit system prompts in "JD Matching Agent" and "Recruiter Scoring Agent" nodes to refine
    screening criteria

Sample Outputs

Acknowledgments

This workflow was inspired by Nate Herk's YouTube demonstration on building a resume analysis system. This implementation builds upon that foundation by adding dynamic job description matching (initial + detailed JD matching agents), Slack Block Kit integration with interactive buttons, updated Google Drive API methods for document handling, and enhanced candidate data capture in Google Sheets.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Trigger Google Docs Conversion

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 2 - Stream Doc/Docx File

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 3 - Preserve CV file

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 4 - Merge

Type / Role
n8n-nodes-base.merge - merge
Config choices
Version 3.2

Block 5 - Standardize

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 6 - Extract from File

Type / Role
n8n-nodes-base.extractFromFile - extractFromFile
Config choices
Version 1

Block 7 - Information Extractor

Type / Role
@n8n/n8n-nodes-langchain.informationExtractor - informationExtractor
Config choices
Version 1.2

Block 8 - Append row in sheet

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 9 - Get Web Link

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 10 - Download CV - PDF

Type / Role
n8n-nodes-base.googleDrive - googleDrive
Config choices
Version 3

Block 11 - Download CV - GDoc as PDF

Type / Role
n8n-nodes-base.googleDrive - googleDrive
Config choices
Version 3

Block 12 - Switch - File Type

Type / Role
n8n-nodes-base.switch - switch
Config choices
Version 3.2

Block 13 - Upload CV - PDF

Type / Role
n8n-nodes-base.googleDrive - googleDrive
Config choices
Version 3

Block 14 - Extract from PDF Download

Type / Role
n8n-nodes-base.extractFromFile - extractFromFile
Config choices
Version 1

Block 15 - Extract from PDF

Type / Role
n8n-nodes-base.extractFromFile - extractFromFile
Config choices
Version 1

Block 16 - Download Selected JD

Type / Role
n8n-nodes-base.googleDrive - googleDrive
Config choices
Version 3

Block 17 - Receive CV via Email

Type / Role
n8n-nodes-base.gmailTrigger - gmailTrigger
Config choices
Version 1.3

Block 18 - JD Matching Agent

Type / Role
@n8n/n8n-nodes-langchain.agent - agent
Config choices
Version 2.2

Block 19 - Sticky Note2

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 20 - Sticky Note3

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 21 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 22 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 23 - Detailed JD Matching Agent

Type / Role
@n8n/n8n-nodes-langchain.agent - agent
Config choices
Version 2.2

Block 24 - Loop Over Items

Type / Role
n8n-nodes-base.splitInBatches - splitInBatches
Config choices
Version 3

Showing the first 24 of 50 workflow blocks. Download the JSON for the full node graph.

3. Summary Table

Workflow Fast-track CV screening with AI analysis from Gmail to Slack and Google Sheets
Complexity advanced
Nodes 50
Categories HR, AI Summarization
Author Dean Pike
Published 16 Oct 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/9764/9764.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Fast-track CV screening with AI analysis from Gmail to Slack and Google Sheets do?

CV → Match → Screen → Decide, all automated This workflow automatically processes candidate CVs from email, intelligently matches them to job descriptions, performs AI powered screening analysis, a...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your HR, AI Summarization use case.