B.
Back to projects

CV Optimisation Workflow

Screenshot of the n8n workflow used to optimise CV drafts

Overview

An n8n workflow that helps me tailor CV drafts for different job applications. It takes a job title, company name and job description and then uses a staged LLM workflow to choose the most relevant base CV and project evidence (pulled from a GitHub based knowledge base). It generates a role-specific CV draft, a report critiquing my application, major skill gaps and justifications for all suggested changes.

Why it’s interesting

It solves a real personal workflow problem: I have several role-specific CVs and a growing bank of project writeups, but manually deciding which base CV and projects fit each job is slow. So I built this workflow to help me choose. I use a multi-branch approach in n8n and orchestrate multiple LLM calls and n8n nodes to produce a final output which is both reported to the user and saved to the git knowledge base.

What it does

  • Get application information
    • Gathers job title, company and job description from n8n form
  • Choose appropriate CV and projects
    • Branches into two parallel selection paths: one for choosing the best base CV and one for choosing the most relevant projects
  • Make CV
    • Generates a tailored CV draft using base CV and selected project evidence
    • Prompt ensures consistent tone/style to input CV, forces styling rules (e.g: forcing British spelling) and tries to ensure it is not exaggerating or hallucinating evidence
    • Uses XML in prompt to clearly layout thinking stages and expected output format
  • Critique effort and application prospects
    • Runs a separate critique step against the generated CV and the original job description
    • Identifies critical gaps, weak phrasing, missing evidence and points that would need defending in an interview
    • Produces application notes alongside the CV to help me create my final optimised CV
  • Return results
    • Displays the optimised CV and critique notes in the n8n completion screen
    • Saves both the generated CV draft and notes for later review

Key Technical Points

  • Multi-stage LLM workflow: Split the process across base cv/project selection branches, CV generation and critique stages to manage context and ensure cleaner and better outputs
  • Branching workflow design: Used n8n branching and merge nodes so base CV selection and project selection can run as separate paths before being combined for generation
  • Structured output handling: Specified JSON output structure to LLM nodes and used n8n JavaScript nodes to parse model responses, map selected project titles to full source documents and build the final report
  • GitHub-backed knowledge base: Used the GitHub API to list, fetch and save Markdown files from a repository containing base CVs, project writeups and generated application outputs
  • Markdown and frontmatter parsing: Fetched markdown project writeups from GitHub and extracted YAML frontmatter metadata writeups using n8n JavaScript code node so the workflow could rank projects without sending every full writeup into the first model call
  • XML-style prompt phases: Structured the main Gemini generation prompt with explicit XML-style phase tags for job description analysis, profile rewriting, project bullet selection, CV optimisation and justification

Tech Stack

Tools: n8n
APIs: Google Gemini, GitHub API
Language: JavaScript