I built an n8n workflow that rewrites your CV bullets per job posting, drafts a matching cover letter, and tells you which skills you're actually missing

:waving_hand: Hey n8n Community,

A friend of mine is deep in job applications right now. He was telling me how much time goes into writing a cover letter for every single role – and that companies still actually read them, so he can’t skip it.

While reading through application guides I realized it’s worse than that. The CV itself is supposed to be tweaked per posting too – bullets reworded to match the job description’s vocabulary, must-haves surfaced first, etc. I told him this and he got even more frustrated. For me it was just a fun automation problem.

So I built a two-workflow setup in n8n.

Workflow 1 – CV onboarding (one-time setup)

Upload your CV as a PDF. easybits Extractor pulls every experience, education entry, skill, and contact detail into a structured Google Sheet. One row per job. Now you’ve got a clean “Master CV” database.

GitHub: n8n-workflows/easybits-cv-tailor-and-cover-letter-workflow/easybits_cv_onboarding_workflow.json at 9360864b0cfb20d9eea54b2214fdb58d61d71157 · felix-sattler-easybits/n8n-workflows · GitHub

Workflow 2 – Tailor for a specific job (daily use)

Upload a screenshot or PDF of any job posting. Optional notes field if you want to emphasize something. Then:

  1. Extractor pulls structured data from the posting (must-haves, keywords, tone, language).
  2. A Code node calculates how well your stored CV matches the posting – deterministic keyword overlap, no AI involved. This is your “before” score.
  3. Gemini rewrites your experience bullets to surface real overlap with the posting, mirrors the employer’s exact phrasing where you have matching experience, and flags anything you genuinely don’t have in a gaps array.
  4. Same scoring formula runs again on the rewritten bullets – this is your “after” score.
  5. A second Gemini call drafts a cover letter in the posting’s language and tone, referencing only what’s in your tailored CV – never claiming skills from the gaps array.
  6. Everything lands in a single Google Doc (CV section + cover letter), ready to paste.

GitHub: n8n-workflows/easybits-cv-tailor-and-cover-letter-workflow/easybits_cv_tailor_workflow.json at 9360864b0cfb20d9eea54b2214fdb58d61d71157 · felix-sattler-easybits/n8n-workflows · GitHub

The part I’m most proud of: Gemini is explicitly told to never invent experience. If a must-have isn’t in the CV, it goes in the gaps array instead of being faked into a bullet. The completion screen surfaces these gaps so you can address them in interviews. The cover letter respects the gaps too – won’t claim a skill the candidate doesn’t have. My friend’s first run: 33% → 69% match, with 3 honestly-flagged gaps and a paste-ready cover letter in under a minute.

Also kept the easybits Extractor at exactly 10 fields per workflow so it runs on the free plan. No paywall to use it.

Run the onboarding workflow first – it sets up the Master CV sheet the second workflow reads from. Happy to answer questions about the prompts or the scoring logic if anyone’s curious.

Best,
Felix