Gmail + OpenAI, faster CV screening and replies
Your inbox fills up with CVs. Then the real work starts: opening attachments, scanning for must-have skills, trying to “be fair,” and still getting back to candidates days later.
This is the kind of mess that hits HR Managers first. But founders hiring their first 10 people and recruiters juggling multiple roles feel it too. With this Gmail OpenAI screening automation, you get consistent scoring plus fast, professional replies without spending your evenings reading PDFs.
You’ll see how the workflow routes candidates into “shortlist,” “interview,” or “decline,” and how you can tune the criteria so the AI evaluates people the way your team actually hires.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Gmail + OpenAI, faster CV screening and replies
flowchart LR
subgraph sg0["Flow 1"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>CV Submission Webhook"]
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Job Requirements", pos: "b", h: 48 }
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Parse CV with AI"]
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Score Candidate"]
n4@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check If Top Candidate", pos: "b", h: 48 }
n5@{ icon: "mdi:message-outline", form: "rounded", label: "Alert HR Team", pos: "b", h: 48 }
n6@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check If Interview Worthy", pos: "b", h: 48 }
n7@{ icon: "mdi:message-outline", form: "rounded", label: "Send Interview Invitation", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check If Rejected", pos: "b", h: 48 }
n9@{ icon: "mdi:message-outline", form: "rounded", label: "Send Rejection Email", pos: "b", h: 48 }
n3 --> n4
n3 --> n6
n3 --> n8
n1 --> n2
n2 --> n3
n8 --> n9
n0 --> n1
n4 --> n5
n6 --> n7
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n4,n6,n8 decision
class n0,n2 api
class n3 code
classDef customIcon fill:none,stroke:none
class n0,n2,n3 customIcon
The Problem: CV Screening Becomes a Bottleneck
Manual CV screening sounds simple until you are doing it at volume. You’re reading the same patterns over and over, switching between Gmail, notes, and whatever spreadsheet you swear you’ll keep updated. Meanwhile, you’re trying to be consistent across candidates, but your “gut feel” changes depending on the day, the role, and how rushed you are. Add the pressure to reply quickly (even to declines), and the whole process turns into a backlog that quietly harms your hiring brand.
It’s not one big failure. It’s the pile-up.
- A single CV can take about 10 minutes to review properly once you include notes and decision-making.
- Candidates get inconsistent evaluations because humans remember the last great CV more than the first average one.
- Replies slip from “tomorrow” to “next week,” which leads to follow-ups, stress, and missed talent.
- Teams end up arguing over vague feedback like “not senior enough,” instead of comparing consistent criteria.
The Solution: AI-Scored CVs + Automated Gmail Replies
This workflow turns incoming CVs into structured candidate data, a score, and the right next action. It starts when a new application hits your intake webhook (usually connected to job boards or forms), then applies role criteria you define for the open position. Next, the AI parsing step extracts what matters from the CV, like skills, experience, and education, so you’re not skimming for keywords. A scoring step evaluates fit against your criteria, then decision checks route the candidate into one of three paths. Finally, Gmail sends the appropriate message: a notify-the-team email for top candidates, an interview invite for suitable ones, or a polite decline for everyone else.
The workflow begins with CV intake, then standardizes each resume into the same “shape.” After that, it scores and routes candidates using simple yes/no checks. Gmail handles the communication so you’re not copying templates or forgetting who you already replied to.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you’re hiring for one role and you get 40 applications in a week. Manually, if each CV takes about 10 minutes to read and reply to, that’s roughly 6–7 hours, plus context switching. With this workflow, intake is automatic, the AI parsing and scoring runs in the background, and you only spend time on the 8–12 candidates worth a real look. Even if you still review those top profiles carefully, you’re usually saving about 4 hours every week while replying faster to everyone.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Gmail for sending notifications and candidate emails
- OpenAI to parse CV text into structured data
- OpenAI API key (get it from your OpenAI dashboard)
Skill level: Intermediate. You’ll connect accounts, paste an API key, and adjust role criteria and email templates.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
CV intake via webhook. A new application triggers the workflow the moment the CV hits your system, so nothing gets lost in someone’s inbox.
Role criteria is applied before scoring. You define what “good” looks like for the role (skills, experience level, education requirements, nice-to-haves), and the workflow uses that as the yardstick for every candidate.
OpenAI parsing and scoring happens in the middle. The workflow sends the resume content for extraction, then runs scoring logic that turns messy text into a structured evaluation you can compare across candidates.
Gmail sends the outcome. Top candidates can trigger an internal “review now” email, suitable candidates get an interview invite, and declines are sent quickly with a consistent, polite message.
You can easily modify the role criteria and decision thresholds to match different job openings 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 webhook that receives CV submissions and starts the workflow.
- Add the CV Intake Webhook node and set Path to
cv-received. - Set HTTP Method to
POST. - Send a test POST with a
cv_contentfield to ensure the webhook receives data.
Step 2: Connect OpenAI for CV Parsing
Configure the OpenAI API call that extracts structured candidate data from the incoming CV.
- In AI CV Parsing, set URL to
https://api.openai.com/v1/chat/completionsand Method toPOST. - In Headers, confirm Content-Type is
application/jsonand Authorization isBearer {{ $credentials.openai.apiKey }}. - In Body, keep the model as
gpt-4and the user prompt that injects{{ $json.cv_content }}.
{{ $credentials.openai.apiKey }} resolves correctly.Step 3: Set Up Role Criteria and Scoring Logic
Define the hiring criteria and calculate a recommendation score based on the parsed CV data.
- In Role Criteria Setup, add minExperience as
5and passingScore as75. - Add requiredSkills as
JavaScript,React,Node.js,Pythonin Role Criteria Setup. - Add additional fields in Role Criteria Setup for downstream use, such as jobTitle and hrEmail.
- In Candidate Scoring Logic, keep the JavaScript that parses
$json.choices[0].message.contentand calculatestotalScore,recommendation, andpriority.
Step 4: Configure Parallel Decision Routing
Route candidates into different outcomes based on the recommendation produced by the scoring logic.
- Set Top Candidate Check to evaluate
={{ $json.scoring.recommendation }}equalshire. - Set Interview Suitability Check to evaluate
={{ $json.scoring.recommendation }}equalsinterview. - Set Rejection Decision Check to evaluate
={{ $json.scoring.recommendation }}equalsreject. - Confirm the execution pattern: Candidate Scoring Logic outputs to both Top Candidate Check and Interview Suitability Check and Rejection Decision Check in parallel.
Step 5: Configure Email Notifications
Send the appropriate email based on each decision branch.
- In Notify HR Team, set Send To to
={{ $node['Role Criteria Setup'].json.hrEmail }}and keep the HTML message for the top-candidate alert. - In Dispatch Interview Invite, set Send To to
={{ $json.candidateData.email }}and keep the interview invitation HTML. - In Send Decline Notice, set Send To to
={{ $json.candidateData.email }}and keep the decline message HTML.
Step 6: Test and Activate Your Workflow
Validate the full flow end-to-end and enable it for production use.
- Click Execute Workflow and send a test POST to CV Intake Webhook with a realistic
cv_contentpayload. - Verify that AI CV Parsing returns JSON and Candidate Scoring Logic outputs
scoring.recommendation. - Confirm that only one branch email is sent: Notify HR Team for
hire, Dispatch Interview Invite forinterview, or Send Decline Notice forreject. - Once tests succeed, toggle the workflow to Active to begin processing real CV submissions.
Common Gotchas
- Gmail credentials can expire or need specific permissions. If things break, check the n8n Credentials tab and your Google account security settings 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.
Frequently Asked Questions
About 45 minutes if your Gmail and OpenAI accounts are ready.
No. You’ll mostly connect accounts and edit the role criteria and email text.
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 OpenAI API costs, which are usually a few cents per CV depending on resume length.
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.
Yes, and you should. Update the “Role Criteria Setup” fields to match each job, then adjust scoring thresholds in “Candidate Scoring Logic” and the routing checks like “Top Candidate Check” and “Interview Suitability Check.” Common tweaks include changing required skills, weighting years of experience more heavily, and adding a culture-fit question that the AI must answer from evidence in the CV (or mark as “not enough data”).
Usually it’s expired Google OAuth access or missing Gmail permissions in the connected account. Reconnect the Gmail credential in n8n, then confirm the sending address matches what your Google Workspace allows. Also check daily sending limits if you’re processing lots of declines at once; Gmail can throttle or block bursts, which looks like random failures.
A lot more than a human can.
Sometimes. n8n is better when you need multi-branch decisions (top candidate vs interview vs decline), custom scoring rules, and the option to self-host for unlimited runs. Zapier or Make can be fine for simple routing, but costs can climb once you add AI parsing plus multiple paths and higher volume. Honestly, the best choice depends on your application volume and how opinionated your scoring needs to be. If you want help choosing, Talk to an automation expert and walk through your process.
Screening stays consistent. Replies go out on time. And you get your calendar back for the part of hiring that actually needs a human.
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.