Hey n8n Community,
Just shipped a two-workflow CV tailor for a friend job-hunting (extracts a CV into a Google Sheet, then tailors it to any job posting upload with a matching cover letter). The build taught me a few things I hadnât internalized from earlier workflows. Sharing in case any of these save someone else debugging time.
1. Donât let the LLM grade its own output.
Original plan was to ask Gemini to score how well a CV matches a job posting before and after rewriting. Caught myself in time â that would mean the same model that rewrote the bullets also graded its own work. Not exactly an unbiased benchmark.
Moved the scoring to a deterministic JS Code node â keyword overlap, must-haves count double, no AI involved. Same formula runs against original and tailored bullets. The delta reflects real keyword surfacing, traceable to exactly which terms got mirrored.
If your workflow has any kind of âdid the AI improve thisâ metric, the metric should not be calculated by the AI.
2. Build âhonesty guardrailsâ into the prompt or the LLM will fabricate.
First version of the bullet-rewrite prompt just said ârewrite the CV to match the job posting.â Gemini happily added skills the candidate didnât have. Adding three explicit rules fixed it:
- âNEVER invent experienceâ
- âOnly mirror employer phrasing where the candidate has matching experienceâ
- âIf a must-have isnât covered, list it under
gapsinstead of fabricatingâ
The gaps array became the most valuable output of the whole workflow. The candidate sees exactly whatâs missing, the cover letter respects it, and the result feels honest instead of slick. LLMs donât refuse to lie unless you explicitly tell them not to.
3. Tighten extraction prompts to atoms, not sentences.
First test: my must-have field returned items like â5+ years of professional backend engineering experienceâ and âExcellent problem-solving skills and attention to detail.â Match score: 0%, because nothing in the candidateâs bullets contains that exact 8-word phrase.
Updated the field description to:
- âReturn as SHORT noun phrases (1-3 words each)â
- âBreak compound requirements into individual atoms â âtesting, monitoring, profilingâ must be returned as three separate itemsâ
- âExclude soft skills like âattention to detailââ
Same posting, same workflow: 12 clean atomic must-haves. Score went from 0% â 33% on the same CV. The Extractorâs output quality is bottlenecked by how precisely your field descriptions specify the desired shape.
4. Constraints make better products.
The easybits free plan caps extractions at 10 fields. My first design had 13. Cutting to 10 forced me to ask which fields actually drove the workflow â and three of them never got used downstream.
This is the kind of thing youâd never figure out without a constraint forcing the question. âWhat can I cutâ is a more useful design exercise than âwhat can I add.â Free-tier limits, character limits, time budgets â the constraints arenât the enemy of the product, theyâre often the reason the product gets sharper.
5. Score before AND after â the delta is the demo.
I almost shipped this with just an âafterâ score. The before score felt redundant â who cares what the original CV scored, youâre using the tool to fix it. But running the same calculation twice (once on the original, once on the tailored bullets) turns out to be the entire story.
A single 69% number is meaningless. â33% â 69% matchâ tells you the workflow is doing real work. It also makes the result honest in a way nothing else can â because the same deterministic formula runs in both places, the delta is the work, visibly traceable to which keywords got mirrored.
If your workflow transforms something, calculate the same metric on the input and the output. The before/after pair is more valuable than either number alone.
Both workflow JSONs are on GitHub:
CV Tailor + Cover Letter: n8n-workflows/easybits-cv-tailor-and-cover-letter-workflow/easybits_cv_tailor_workflow.json at 9360864b0cfb20d9eea54b2214fdb58d61d71157 ¡ felix-sattler-easybits/n8n-workflows ¡ GitHub
Run the onboarding one first â it sets up the Master CV sheet the second workflow reads from. Both stay within the 10-field free plan.
Curious which of these resonates most for the workflows youâve built. The honesty-guardrail thing especially feels like it should apply to way more workflows than just CVs. Where else are you seeing this come up?
Best,
Felix