By the numbers
9+
Nodes in pipeline
3×
LLM calls per run
<1m
End-to-end runtime
0s
Manual effort
How it works
01
Webhook trigger
A single POST request kicks off the workflow — pass a job URL and it handles everything from there.
02
Edit Fields — prepare inputs
The incoming payload is normalised: job URL, base CV text, and candidate name are extracted and structured for downstream nodes.
03
HTTP Request — scrape job description
The workflow fetches the raw job posting page and strips it down to the essential text — title, responsibilities, and requirements.
04
HTTP Request 1 → OpenRouter — rewrite CV
The scraped JD and base CV are sent to an LLM via OpenRouter. The model rewrites the CV to mirror the job's keywords, tone, and priorities.
05
Edit Fields 1 — format rewritten CV
The LLM response is cleaned, formatted, and passed forward as structured text ready for both Notion and Gmail.
06
HTTP Request 2 → OpenRouter — generate cover letter
A second LLM call uses the role description and the rewritten CV to produce a personalised, role-specific cover letter.
07
Edit Fields 2 → HTTP Request 3 — score the match
A third LLM call scores the CV-to-JD fit, highlights gaps, and returns improvement suggestions — stored alongside the application.
08
Edit Fields 3 → Create a page in Notion
The job title, company, rewritten CV, cover letter, match score, and timestamp are saved as a new page in a Notion database — a full application log.
09
Create a draft in Gmail
A ready-to-send Gmail draft is created with the cover letter in the body and the tailored CV attached — one click to apply.
Workflow screenshot
01 — n8n workflow canvas: Webhook → Scrape → CV rewrite → Cover letter → Match score → Notion → Gmail draft