🔓 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 + Gemini, consistent CV fit scores by email

Lisa Granqvist Partner Workflow Automation Expert

Reviewing CVs manually sounds manageable until you’re on your fifth “quick skim” of the day and everything starts blending together. Notes get inconsistent. Good candidates slip through. And you still have to write a coherent email summary afterward.

This is where recruiters feel the grind first, but hiring managers and career coaches running weekly reviews get dragged into it too. A solid CV scoring automation keeps every CV assessed the same way, with the same rubric, every time.

This workflow uses Gemini to score a CV against a job post, extract gaps, and email a clean report through Gmail. You’ll learn what it does, what you need, and how to run it without turning your hiring process into a spreadsheet nightmare.

How This Automation Works

Here’s the complete workflow you’ll be setting up:

n8n Workflow Template: Gmail + Gemini, consistent CV fit scores by email

Why This Matters: Inconsistent CV Reviews Waste Great Candidates

Most CV screening processes break in boring ways. You read a CV, open the job post, copy a few lines into notes, then try to remember what you said about the last three candidates. By the end of the day, “strong communicator” means something different in every email you send. Honestly, it’s not laziness. It’s context switching. And it creates uneven decisions that are hard to justify later when someone asks, “Why did we reject them?”

The friction compounds. Here’s where it usually falls apart.

  • Review criteria drift over time, so your “fit” score quietly becomes a feeling instead of a repeatable standard.
  • Job posts are messy, which means key requirements get missed or interpreted differently by different reviewers.
  • Writing candidate feedback emails turns into a second task, and it’s easy to delay or send something vague.
  • When volume spikes, you either rush or you stop responding, and neither outcome helps your hiring brand.

What You’ll Build: CV-to-Job Fit Scoring + Email Reports

This automation starts when a CV is submitted through a simple web form (powered by an n8n webhook). The workflow extracts the resume text from the uploaded file, then pulls the job listing content via an HTTP request. Next, it cleans up the job text, combines the job and CV into one structured prompt, and sends it into Gemini for analysis. Gemini returns a structured result: a fit score on a 1–10 scale, a recommendation (Apply, Consider, or Not a fit), plus gaps and next steps. Finally, n8n formats everything into a readable report and sends it via Gmail to the candidate (or to your internal review inbox, if you prefer).

The workflow begins with a CV upload and a job post fetch. AI then evaluates alignment and produces a JSON-style response you can reliably parse. Gmail delivers the final report so the outcome is immediate and easy to act on.

What You’re Building

Expected Results

Say you review 20 CVs for one role in a week. Manually, even a “fast” process can take about 15 minutes per CV (reading, checking the job post, writing notes, then emailing a summary), which is roughly 5 hours total. With this workflow, you submit the CV once and wait for the report, usually a few minutes, then spend about 2 minutes sanity-checking the result and deciding what to do next. That’s about 4 hours back per role, and the decision trail is cleaner.

Before You Start

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Gemini API for CV scoring and recommendations
  • Gmail account to send the report email
  • Gemini API key (get it from Google AI Studio / Google Cloud)

Skill level: Beginner. You’ll connect accounts, paste an API key, and adjust a few text fields like your email template.

Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).

Step by Step

A CV upload triggers the workflow. The candidate submits a resume through a simple form connected to an n8n webhook, which means you don’t need a separate landing page tool just to start.

The workflow extracts and prepares the inputs. n8n pulls readable text from the CV file, fetches the job listing via HTTP request, then cleans the job text so the AI isn’t distracted by navigation, cookie banners, or random page clutter.

Gemini scores the candidate against the role. The “Analyze CV Against Role” agent runs the core evaluation, and Gemini produces a structured response that includes the 1–10 fit score, a recommendation, and missing skills you can act on.

Gmail sends a clean report. The workflow parses the AI response, optionally runs a second Gemini pass to tighten clarity, then emails the final summary to the candidate or your internal inbox for review.

You can easily modify the scoring thresholds to change “Apply” vs “Consider” based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Webhook Trigger

Set up the inbound form endpoint that receives CV uploads, job URLs, and email addresses.

  1. Add the Incoming CV Webhook node and set Path to cv-optimizer.
  2. Enable Multiple Methods in Incoming CV Webhook and set Response Mode to responseNode.
  3. Connect Incoming CV Webhook to Return HTML Form to serve the form UI to users.
  4. In Return HTML Form, set Respond With to text and Response Body to the provided HTML expression.
The response body in Return HTML Form is a full HTML page. Keep it as a single expression so the form renders correctly for users.

Step 2: Extract and Map CV Content

Convert the uploaded PDF into text and map it into a clean field for downstream processing.

  1. Connect Incoming CV Webhook to Extract Resume Text to process the uploaded PDF.
  2. In Extract Resume Text, set Operation to pdf and Binary Property Name to =cv.
  3. Add Map CV Text and set a field named cv_text to {{ $json.text }}.
⚠️ Common Pitfall: Ensure the form field name for the file upload is cv so Extract Resume Text can access it via =cv.

Step 3: Retrieve and Clean the Job Listing (Parallel Branch)

Fetch the job page HTML and normalize it into plain text for the AI comparison.

  1. From Map CV Text, branch to Retrieve Job Listing and Combine CV and Job Info in parallel.
  2. In Retrieve Job Listing, set URL to {{ $('Incoming CV Webhook').item.json.body.job_url }}.
  3. Connect Retrieve Job Listing to Clean Job Text and keep the JavaScript that strips HTML and returns { job_text: text }.
  4. Connect Clean Job Text to Combine CV and Job Info.

Map CV Text outputs to both Retrieve Job Listing and Combine CV and Job Info in parallel.

Step 4: Merge CV and Job Data for Analysis

Combine the cleaned CV and job text into a single payload for the AI agent.

  1. In Combine CV and Job Info, set Mode to combine and Combine By to combineByPosition.
  2. Ensure Combine CV and Job Info receives one input from Map CV Text and one from Clean Job Text.

Step 5: Configure the AI Analysis Chain

Set up the Gemini language model, output parser, and agent to evaluate CV fit and create a structured report.

  1. Add Primary Gemini Chat and connect it to Analyze CV Against Role as the language model.
  2. Credential Required: Connect your googlePalmApi credentials to Primary Gemini Chat.
  3. Add Parse AI Response JSON and connect it to Analyze CV Against Role as the output parser with Auto Fix enabled and the provided JSON schema.
  4. Add Secondary Gemini Chat and connect it to Parse AI Response JSON as the language model used by the parser.
  5. Credential Required: Connect your googlePalmApi credentials to Secondary Gemini Chat.
  6. In Analyze CV Against Role, set Text to the provided prompt, including the expressions {{ $json["cv_text"] ? $json["cv_text"].slice(0, 18000) : "" }} and {{ $json["job_text"] ? $json["job_text"].slice(0, 18000) : "" }}.
The Parse AI Response JSON node is a parser sub-node. Ensure credentials are attached to Secondary Gemini Chat, not the parser itself.

Step 6: Send the CV Report via Email

Email the structured AI results back to the candidate.

  1. Connect Analyze CV Against Role to Send CV Report Email.
  2. Credential Required: Connect your gmailOAuth2 credentials to Send CV Report Email.
  3. Set Send To to {{ $('Incoming CV Webhook').item.json.body.email }}.
  4. Set Subject to Your CV Review: {{ $json.output.job_title }} in {{ $json.output.location }}.
  5. Set Message to the provided HTML template that references $json.output fields for summary, gaps, and recommendations.

Step 7: Test and Activate Your Workflow

Validate the full flow and then enable it for production.

  1. Click Execute Workflow and open the test URL from Incoming CV Webhook.
  2. Submit the form with a PDF CV, a live job posting URL, and a valid email address.
  3. Confirm that Extract Resume Text outputs text, Retrieve Job Listing fetches HTML, and Clean Job Text returns job_text.
  4. Verify that Analyze CV Against Role returns structured JSON parsed by Parse AI Response JSON.
  5. Check that Send CV Report Email delivers the formatted email to the submitted address.
  6. Toggle the workflow to Active for live use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Troubleshooting Tips

  • Gmail credentials can expire or need specific permissions. If things break, check the Gmail node’s connected account and re-auth in n8n credentials first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Quick Answers

What’s the setup time for this CV scoring automation?

About 30 minutes if you already have Gemini and Gmail ready.

Is coding required for this CV scoring automation?

No. You’ll mostly connect accounts and tweak prompts or email text.

Is n8n free to use for this CV scoring automation 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 Gemini API usage costs (usually small per analysis, but it depends on CV length and prompt size).

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.

Can I modify this CV scoring automation workflow for different use cases?

Yes, and you probably should. You can adjust the decision thresholds inside the “Analyze CV Against Role” agent prompt (for example, what qualifies as “Apply” vs “Consider”), and you can edit the “Send CV Report Email” Gmail node to change tone, branding, or who receives the report. Many teams also swap the “Retrieve Job Listing” HTTP request so it pulls from an ATS, a Google Doc, or a pinned internal URL. If you want multi-language output, add a translation step right before the email is generated.

Why is my Gmail connection failing in this workflow?

Usually it’s an expired OAuth session or the wrong Gmail account connected in n8n credentials. Reconnect the Gmail credential, then confirm the “From” address matches what Gmail allows you to send from. If it fails only on some runs, check quota limits or security settings on the Google workspace.

What volume can this CV scoring automation workflow process?

On most setups, dozens of CVs per day is fine, because each execution is just “fetch job post → analyze → email.” On n8n Cloud, your practical limit is your plan’s monthly executions, and on self-hosting there’s no hard execution cap (your server and AI rate limits are the real bottlenecks). If you’re running batches of hundreds, add simple queueing: throttle requests to Gemini and stagger sends through Gmail to avoid provider limits.

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

Often, yes. n8n is more comfortable with “real” workflow logic like branching, merging, and structured parsing, which matters when you’re turning AI output into reliable fields. You also get a self-hosting option, which is a big deal when volume grows. Zapier or Make can still work if you only need a basic CV-to-email pipeline, but things get fiddly when you want consistent scoring logic, retries, and cleaner data handling. If you want help choosing, talk it through with an automation specialist. Talk to an automation expert.

This workflow turns CV screening into a repeatable system instead of a mood-dependent task. Set it up once, tune the rubric, and get your evenings back.

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