π₯ Score and triage Indeed CVs with Mistral OCR, Groq, and Google Sheets
β‘ 80 views Β· π₯ HR & Recruitment
π‘ Pro Tip β Job boards are notoriously hard to scrape β CAPTCHAs, rate limits, constantly changing layouts. ScraperNode has maintained scrapers for Indeed jobs, Glassdoor reviews, and Glassdoor jobs that handle all of that for you.
Description
Who is it for
This template is for HR teams, recruitment agencies, and startups that receive job applications via Indeed and want to eliminate manual CV screening. If youβre spending hours reading CVs before deciding who to call, this workflow automates that first-pass evaluation entirely.
What it does
Every time a candidate applies through Indeed, this workflow:
- Picks up the application email via IMAP and extracts the CV attachment
- Uploads the CV to a dedicated Google Drive folder (organized by job position)
- Runs OCR on the PDF using Mistral AI to extract clean text
- Sends the CV text to Groq (Llama 3.3 70B) for structured analysis
- Validates the AI output and enforces score/recommendation consistency
- Appends every candidate to a Google Sheets HR dashboard
- Sends a formatted HTML email to the recruiter β but only for candidates scoring β₯ 75
Each candidate receives a score from 0 to 100 and one of four recommendations: REJECT, REVIEW, INTERVIEW, or STRONG_HIRE. The AI also extracts key skills, years of experience, languages, education, strengths, and weaknesses.
Estimated cost: ~β¬0.005 per CV (OCR + LLM combined).
How to set up
- Import the workflow into your n8n instance
- Open the βοΈ Configuration node and fill in your values:
- Google Drive root folder ID
- Google Sheets ID
- Recruiter and ops email addresses
- Score threshold for notifications (default: 75)
- IMAP subject filter: set it to
Nuova candidatura per(the subject prefix Indeed uses for Italian accounts β adapt it to your language, e.g.New application forfor English)
- Connect your credentials: IMAP, Google Drive OAuth2, Google Sheets OAuth2, Mistral AI, Groq, SMTP
- Set up a dedicated mailbox to receive Indeed applications
- Activate the workflow
Requirements
- n8n (cloud or self-hosted)
- Mistral AI API key β used for PDF OCR (
mistral-ocr-latest) - Groq API key β used for LLM analysis (free tier: 30 RPM)
- Google Drive and Google Sheets OAuth2 credentials
- An IMAP mailbox configured to receive Indeed application emails
- SMTP credentials for outgoing notifications
> For high-volume hiring, a self-hosted n8n instance with queue mode (Redis + PostgreSQL) is recommended to handle parallel CV processing.
How to customize
- Change the AI model: swap the Groq model in the
Groq Chat Modelnode (e.g.mixtral-8x7b) - Adjust the scoring threshold: update
SCORE_THRESHOLDin the Configuration node - Extend the output: add Slack or Telegram notifications, auto-create tasks in Asana/Trello, or trigger a rejection email for scores below 30
- Use a different OCR: for text-only CVs, replace Mistral OCR with the free
Extract from Filenode - Change the destination: Google Sheets can be replaced with Notion, Airtable, Baserow, or a direct PostgreSQL insert
How Indeed email notifications work
Indeed does not offer a public API or webhooks for receiving applications in real time. Instead, every time a candidate applies to one of your job postings, Indeed automatically sends an email notification to your registered employer address β with the CV attached as a PDF.
The subject line follows the format:
> Nuova candidatura per [Job Title] - [Candidate Name] (Italian)
> New application for [Job Title] - [Candidate Name] (English)
This workflow connects to that mailbox via IMAP, polls it every minute for unseen emails matching that subject prefix, downloads the CV attachment, and kicks off the automation. No manual steps required.
> Tip: use a dedicated mailbox (e.g. applications@yourcompany.com) forwarded from your Indeed account to keep things clean and avoid false positives.
π Nodes Used
Email Trigger (IMAP), Send Email, Google Sheets, HTTP Request, Google Drive, Basic LLM Chain
π₯ Import
Download workflow.json and import into n8n:
Workflow menu β Import from File