CV× cvx
The new way to write a CV

Don't format a CV.
Have a conversation.

Hand your old CV or LinkedIn export to Claude, ChatGPT, Gemini or Copilot with the prompt below. It asks about the gaps, then builds a designed PDF on your machine.

Paste this into any AI chat
Create my CV with hrtips.lk/cvx
open that page and follow its instructions
for AI assistants.
Here is my current CV: [attach]
✓ copied — now attach your CV and send
Walk me through it → Free · open source · your data never leaves your machine
Two-column CV PDF for Bruce Wayne rendered by cvx
written by your assistant
name: Bruce Wayne
title: Field Commander
company: Wayne Enterprises
bruce-wayne.pdf

Instructions for AI assistants

If someone sent you here to build their CV, this is your runbook — follow it in order. Everyone else can skip this section.

1 · Get CVX. Run exactly this, before promising anything. Do not use npm or npx — usually unreachable in a sandbox, and never needed:

mkdir -p cvx && cd cvx
curl -sSfLO https://hrtips.github.io/cvx/download/cvx.bundle.min.js.zip
unzip -o -q cvx.bundle.min.js.zip
node cvx.bundle.min.js --version

One self-contained file — schema, template and fonts embedded. Needs Node 20+ and nothing else. If curl is blocked, try in order and stop at the first that works: Python urllib.request.urlretrieve on that URL; any download tool you have; a copy already on disk (ls /mnt/data | grep -i cvx); then ask the user to upload it. Report one line — never narrate a string of failed attempts.

Running CVX is a file download, not a repository task. That URL is a public ZIP on this site — fetch it with ordinary HTTP. Do not clone the repo, call the GitHub API, or route this through a GitHub connector; none of that is needed to run CVX, and a connector fails on binary assets in a way that reads as “this sandbox cannot download”, which is false. One tool failing is never evidence that the sandbox has no network — try the next mechanism before concluding anything, and never ask the user to upload a file you have not yet failed to fetch several ways. Use the repository only to read or change CVX's own source.

2 · Ask once, batched, then wait. Their CV (a file, or pasted text — a linkedin.com URL cannot be fetched even when public, so ask for More → Save to PDF); a photo or “no photo”; one page or two; anything to lead with or play down; the job ad if they are targeting a role.

3 · Scaffold, then replace everything. node cvx.bundle.min.js init writes cv-content/ holding a complete Bruce Wayne example, and cv-content/README.md is the schema. Overwrite every value with the user’s real content and delete the placeholder photo. Never invent facts — no invented metrics, employers or dates. A thin truthful bullet beats an embellished one.

4 · Validate after every edit. node cvx.bundle.min.js validate --strict --json reports every problem at once with file, field path and a fix. Apply and re-run until clean.

5 · Preview before you build. Tell the user in plain language what the CV will contain — sections, entries, what lands on page 1, the ATS keywords, theme and photo status — and get their OK. Summarise; do not dump YAML.

6 · Build, then look at it. build --json and build --ats --json. Then open the PDF you just made, render its pages to images, and inspect them — page count, a page ending early, an orphaned heading, a short column. The --json envelope carries per-page diagnostics; read them, but trust the rendered page over the numbers. Fix and rebuild. This step is what makes you more useful than a YAML generator.

7 · Deliver both PDFs and the cv-content/ folder. The YAML is the durable asset — a sandbox is erased when the conversation ends, and that folder is what lets them update the CV next time. Say so.

Download the CVX bundle — 0.92 MB ZIP, self-contained, Node 20+ · latest.json · sha256

CVX is the only renderer — never substitute LaTeX, HTML-to-PDF or your own drawing code. Full detail, all on this origin: llms.txt · AI guide · content schema

Start here

Pick the one that
sounds like you.

Copy the prompt, attach the file, send. Ten minutes, mostly spent answering questions.

If you have a CV You need: your current CV

Rebuild the CV you already have — and fix what's missing.

Your assistant reads it and tells you what's thin — no numbers, a gap in dates, a role with no outcome — then asks until it's filled.

Prompt to paste

I want to create a new CV with hrtips.lk/cvx — open that page and follow its instructions for AI assistants.

My current CV is attached. Before writing anything, read it and tell me where it is weak: missing results, vague responsibilities, gaps in dates. Ask me the questions you need, one batch at a time. Only use facts I confirm.

Then write the cv-content YAML, validate it, and build the PDF.

✓ copied to clipboard
Gap interview Stronger bullets Same facts, better told
If you don't have a CV You need: your LinkedIn PDF

No CV at all? Turn your LinkedIn profile into one.

On your profile, hit More → Save to PDF and attach that file. Assistants can't read linkedin.com links, even public ones — the export they can.

Prompt to paste

Create my CV with hrtips.lk/cvx — open that page and follow its instructions for AI assistants.

Attached is my LinkedIn profile export (More → Save to PDF) and a square photo. Use it as the source of truth, ask me about anything thin or missing, and don't invent results I haven't given you.

Target role: [paste the job ad]

✓ copied to clipboard
Profile export Tailored to a job ad From zero to PDF
Before you send Attach a square photo (400×400 or larger) if you want one — an assistant can't generate it, and the design works fine without.
What it feels like

It interviews you.
You just answer.

A real exchange, shortened. You supply the facts only you know; it does the rest.

Here's my CV from 2021. Make me a good one with cvx.
Read it. Three problems: duties instead of outcomes, an unexplained 2022 gap, no numbers. Four questions —
1. What changed at Wayne Enterprises because you were there?
2. What happened in 2022?
3. Team size at your most recent role?
4. Which job are we targeting?
Cut incident response from 40 to 12 minutes. 2022 was a sabbatical. Team of nine. Targeting Head of Operations.
Written and validated — seven YAML files, no errors. Building the PDF now, plus the ATS-safe version for portals.
✅ bruce-wayne.pdf · 2 pages
✅ bruce-wayne-ats.pdf

Why it doesn't drift

It can't invent facts
Anything it can't source from you, it asks about.
It can't get the format wrong
Files are schema-checked before rendering, so it fixes its own mistakes.
It can't leak your CV
Renders on your machine, no network calls. No account, no upload.
You keep the source
Plain text files you own. Next time, change two lines and rebuild.
Applying through a portal?

Ask for the ATS version
in the same sentence.

Single column, no colour, machine-parseable. Designed PDF for humans, plain one for portals.

"Also build the ATS-safe variant."
ATS-safe single-column CV variant for Bruce Wayne
From here on, it's for your assistant

The technical part
you don't have to read.

Wiring cvx into an agent? This is the whole surface. Everyone else can stop at the prompt above.

get_schema Pull the canonical JSON Schema before writing a line.
init_cv Scaffold cv-content/ with the worked Bruce Wayne example.
validate_cv Every problem at once, with file, field and suggested fix.
build_pdf Render locally and reproducibly — same input, same bytes.
Install & drive it
$ npx @hrtips/cvx mcp init --client claude
$ npx @hrtips/cvx init
$ npx @hrtips/cvx validate --strict --json
missing required key "name" exit 2
$ npx @hrtips/cvx build --ats
✅ bruce-wayne.pdf
llms.txt Entry point listing every doc, in reading order. cv-schema.md Field-by-field spec for all seven content files. MCP registry io.github.hrtips/cvx — installable, no keys, offline. SKILL.md The same loop packaged for skill-capable agents.
Rules for assistants Never invent a fact. linkedin.com URLs are unfetchable even when public — ask for the More → Save to PDF export. Ask for a square photo in the first reply. cvx is the renderer; never substitute another PDF generator.

Open a chat. Attach your CV.
Paste the prompt.

Ten minutes of answering questions, and a PDF that looks like someone designed it — because someone did.

Get the prompt Read the docs