Screen CVs for multiple roles with OpenRouter, Google Sheets, Gmail and Calendly
This template automates the complete hiring pipeline for digital agencies managing applications across multiple job roles. When a candidate submits a Google Form with their CV, the system scores it with AI against a r...
Template notes
This template automates the complete hiring pipeline for digital agencies managing applications across multiple job roles. When a candidate submits a Google Form with their CV, the system scores it with AI against a role-specific weighted job profile, lets HR decide in Google Sheets with a single typed decision, sends a personalized email automatically, and tracks the Calendly interview booking in real time — all without leaving the tools you already use.
This template contains 3 linked workflows that must all be active for the full pipeline to run.
How it works
Workflow 1 — CV Screening Pipeline
- Triggers when a new row is added to the Google Form responses sheet - Extracts the Google Drive file ID from the CV upload URL, handling all three Drive URL formats automatically - Checks an n8n Data Table to block duplicate applications by email — stops processing if the candidate already exists - Routes the candidate to the correct job profile based on their selected role using a Switch node - Each job profile (Set node) defines: required skills, nice-to-have skills, minimum years of experience, seniority thresholds (Junior / Mid / Senior), and weighted scoring criteria (technical skills weight, experience weight, nice-to-have weight) - All branches converge into a single Normalize Data node that cleans Google Form field names into standardized keys - CV is downloaded from Google Drive and extracted from PDF to plain text - AI evaluates the CV using a dynamically built prompt pulling all values from the job profile — no hardcoded role logic in the AI node - Structured output parser returns: score (out of 10), seniority level, recommendation (Interview / Maybe / Reject), matched skills, missing skills, nice-to-have matched, experience comment, red flags, and a plain English summary - All results are written back to the same Google Sheet row matched by the candidate's email address
Workflow 2 — HR Decision Email Sender
- Watches the Google Sheet every minute for updates to the HRDecision column - An IF node confirms the decision is filled and EmailStatus is not already "Sent" — preventing duplicate emails if the sheet is updated again - HR types exactly "Send Invite" or "Send Rejection" in the HRDecision column to trigger the correct path - Interview invitation email includes a pre-filled Calendly booking link with the candidate's name and email already populated as URL parameters - Rejection email delivers a warm, personalized message referencing the role applied for - After sending, EmailStatus is immediately updated to "Sent" in the sheet
Workflow 3 — Calendly Interview Tracker