Screen and score CV candidates with Mistral OCR and Gemini

AI-Powered Hiring Pipeline: Auto-Screen CVs, Score Candidates & Send Interview Invites

Stop manually reading every CV. This workflow watches your inbox, extracts CV text using Mistral OCR, scores every candidate against your job description using Google Gemini AI, and automatically routes them - shortlisted candidates get a professional interview invite, rejected ones get a polite decline, and HR receives a full AI summary with the CV attached. All hands-free.

Who Is This For?

HR teams and recruiters** at startups or growing companies who receive a high volume of CV emails Technical hiring managers** who want AI-assisted pre-screening before spending time on interviews Solo founders** who are hiring but don't have a dedicated recruiter No-code automation builders** looking for a production-ready hiring automation template

What Problem Does This Solve?

Manually reviewing CVs is time-consuming, inconsistent, and expensive. This workflow eliminates the bottleneck by automatically:

Extracting CV text from PDF attachments (including scanned documents) via Mistral OCR Evaluating every candidate against your specific job description using Gemini AI Routing candidates and sending the right email to the right person - instantly

You focus on interviewing. The pipeline handles everything else.

Key Features

๐Ÿ“ฅ Email-triggered** โ†’ fires automatically when a CV arrives in your inbox, no manual steps ๐Ÿ“„ Mistral OCR** โ†’ works on both digitally-created and scanned/image-based PDF CVs ๐Ÿค– Gemini AI scoring** โ†’ returns a 0โ€“100 score, shortlist/reject decision, candidate summary, and key skills ๐Ÿ”€ Smart routing** โ†’ shortlisted and rejected candidates are handled differently in the same workflow ๐Ÿ“ง 3 beautiful HTML email templates** โ†’ HR notification (with CV attached), interview invite, and polite decline โš™๏ธ Binary passthrough** โ†’ original CV PDF is preserved and forwarded to HR's email as an attachment ๐Ÿ“‹ Sticky note documentation** โ†’ every node is documented inside the workflow canvas

How It Works (Step-by-Step)

๐Ÿ“ฅ Watch Inbox โ†’ IMAP trigger fires when a new email arrives with a CV attachment ๐Ÿ“„ OCR Extraction โ†’ Mistral's mistral-ocr-latest model reads the CV and outputs clean structured text ๐Ÿค– AI Scoring โ†’ Google Gemini evaluates the CV against your job description and returns a structured JSON with score, decision, candidate name, 3โ€“4 sentence summary, and top 5 skills โš™๏ธ Parse & Route โ†’ a Code node cleans Gemini's response, extracts candidate email from the IMAP from field, and passes the binary CV forward ๐Ÿ”€ IF Decision โ†’ routes shortlisted candidates to the true branch and rejected to the false branch ๐Ÿ“ง HR Email โ†’ HR receives a branded email with the AI score, candidate summary, key skills, and the original CV attached ๐Ÿ“ง Interview Invite โ†’ shortlisted candidate receives a professional invitation with a scheduling link and "What to Expect" section ๐Ÿ“ง Polite Decline โ†’ rejected candidate receives a warm, empathetic decline with a link to your careers page

๐Ÿ› ๏ธ Setup Instructions

Step 1 - Credentials Required

You need to set up 4 credentials in n8n:

| Credential | Node Used | Where to Get It | |---|---|---| | IMAP account | Email Trigger | Your email provider settings (Gmail: use App Password) | | Mistral Cloud API | OCR Extraction | Mistral AI Studio โ†’ API Keys | | Google Gemini (PaLM) API | AI Scoring | Google AI Studio โ†’ Get API Key | | SMTP account | All 3 email nodes | Your email provider SMTP settings |

> ๐Ÿ’ก Gmail users: Enable 2FA and generate an App Password for both IMAP and SMTP. Use imap.gmail.com:993 and smtp.gmail.com:587.

Step 2 - Update Email Addresses

In all 3 Send Email nodes, replace the placeholder emails: fromEmail โ†’ your sending address (e.g. hr@yourcompany.com) toEmail in the HR node โ†’ your HR team's inbox The candidate email fields are already dynamic ({{ $json.candidate_email }})

Step 3 - Add Your Job Description

Open the ๐Ÿค– AI Score CV (Gemini) node and replace the JOB DESCRIPTION: section in the prompt with your actual role requirements. The current template uses an AI Engineer JD from AppStoneLab as a working example.

Step 4 - Add Your Interview Scheduling Link

In the ๐Ÿ“ง Send Interview Invite to Candidate node, find YOUR_CALENDLY_OR_CAL_LINK_HERE in the HTML and replace it with your actual booking link (Calendly, Cal.com, TidyCal, etc.).

How to Customize for Your Use Case

| What to Change | Where | Example | |---|---|---| | Job description | Gemini node prompt | Swap in your own role requirements | | Scoring threshold | IF node condition | Change "shortlisted" to score-based logic e.g. score >= 70 | | Company name & branding | All 3 HTML email templates | Replace "AppStoneLab Technologies" with your company | | Careers page URL | Decline email HTML | Replace appstonelab.com/career with your URL | | AI model | Gemini node | Switch to gemini-3-flash-preview or gemini-3.1-pro-preview for different speed/quality | | Watched mailbox | IMAP trigger | Change INBOX to a dedicated folder like INBOX.careers | | Interview questions | Invite email HTML | Add/edit the "What to Expect" section steps |

API Keys โ€” Quick Links

Mistral AI** โ†’ Mistral AI Studio - Free tier includes OCR. Pricing: $1 per 1,000 pages for mistral-ocr-latest Google Gemini** โ†’ Google AI Studio - Free tier available. gemini-3-flash-preview is fast and cheap for production Gmail App Password** โ†’ Google App Passwords n8n IMAP docs** โ†’ docs.n8n.io/integrations/core-nodes/n8n-nodes-base.emailimap n8n SMTP docs** โ†’ docs.n8n.io/integrations/core-nodes/n8n-nodes-base.sendemail

Important Notes

The IMAP Format field must be set to Resolved (not Simple) - this is required for binary attachment data to flow correctly through the workflow The Code node carries the binary CV attachment forward from the IMAP trigger to the HR email node. If you add new nodes between them, make sure binary passthrough is preserved Mistral OCR works on both text-based and scanned/image PDFs, making it more reliable than n8n's built-in Extract from File node The workflow uses the from.value[0].address path to extract the candidate's email from the IMAP trigger output - this is the correct path for the Resolved format

๐Ÿ’ฌ Questions or Issues?

Drop a comment on this template or reach out on the n8n community forum. Happy to help you adapt this for your specific hiring use case.

0
Downloads
0
Views
8.72
Quality Score
beginner
Complexity
Author:AppStoneLab Technologies LLP(View Original โ†’)
Created:3/15/2026
Updated:3/31/2026

๐Ÿ”’ Please log in to import templates to n8n and favorite templates

Workflow Visualization

Loading...

Preparing workflow renderer

Comments (0)

Login to post comments