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 HR_Decision column
- An IF node confirms the decision is filled and
Email_Status is not already "Sent" — preventing
duplicate emails if the sheet is updated again
- HR types exactly "Send Invite" or "Send Rejection"
in the HR_Decision 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, Email_Status is immediately updated
to "Sent" in the sheet
Workflow 3 — Calendly Interview Tracker
- Listens for Calendly webhook events in real time:
invitee.created and invitee.canceled
- On booking: extracts the interview start time,
formats it to your local timezone, and writes it to
the Interview_Time column matched by email
- On cancellation: checks the rescheduled flag — if
true, stops and lets the new invitee.created event
handle the update; if false, writes "Meeting
canceled" to the sheet
How to use
- Connect Google Sheets Trigger credential (OAuth2)
and point it to your Form Responses sheet
- Connect Google Drive credential (OAuth2) — needs
read access to the folder where Google Forms
stores CV uploads
- Connect OpenRouter credential — get a free API key
at openrouter.ai. Default model is set to a free
model for testing. Switch to a stronger model for
production
- Connect Gmail credential (OAuth2) for sending
invitation and rejection emails
- Connect Calendly credential (OAuth2)
- In the Invitation Message node, replace
YOUR_CALENDLY_LINK with your actual Calendly
event URL
- Add these columns manually to your Google Form
responses sheet: score, seniority, recommendation,
matched_skills, missing_skills, nice_to_have_matched,
experience_comment, red_flags, summary, HR_Decision,
Email_Status, Interview_Time
- Create an n8n Data Table named CV Screening
with a single column: Email (string type)
- Customize each Job Profile Set node with your
agency's actual role requirements, skill lists,
and scoring weights
- Activate all three workflows
Requirements
- Google Sheets (OAuth2) — application tracking
and HR decision sheet
- Google Drive (OAuth2) — CV file storage and
download
- Gmail (OAuth2) — sending invitation and
rejection emails
- OpenRouter (API key) — AI model access for
CV evaluation
- Calendly (OAuth2) — interview booking and
cancellation tracking
- n8n Data Table — built-in n8n feature,
no external service needed
Notes & customization
- To add a new job role: add the role to your
Google Form dropdown, add a new condition to the
Route by Job Role Switch node, and duplicate any
existing Job Profile Set node with updated values
- Scoring weights: tech_weight, experience_weight,
and nice_to_have_weight in each Job Profile node
must add up to 100
- HR_Decision values are case-sensitive: type
Send Invite or Send Rejection exactly as written
- Calendly email matching: the candidate must
book using the same email they applied with — the
invitation link pre-fills this automatically so
this is handled in normal use
- Free model limits: OpenRouter free models
allow approximately 200 requests per day, which
is sufficient for most agency hiring volumes
📬 Contact Information
For Help and queries, contact