Automate your resume, don't write it
You don't need to write a resume. Every time I sat down to update mine, something felt off. Not "I don't know what to write" off. More like — this process doesn't make sense. I'm an engineer. I think in steps, I build systems, I debug things. But writing a resume? I was just rearranging bullet points, hoping the order would somehow matter. No clear path. No way to verify the result. Just gut feeling and formatting choices. And don't even get me started on templates — Awesome CV or minimalist? One column or two? Every choice feels arbitrary, and none of them change what you actually have to say. It always bugged me. And it took me a while to figure out why. <!-- excerpt --> ## The insight A resume is a **build artifact**. It's compiled output — not **source code**. I'd been editing the build this whole time. That's like patching minified JavaScript instead of fixing the original TypeScript module. No wonder it felt off. ## So I wrote the source I created a **source file** for my career — a markdown document where I wrote down everything. Every job: what I did, why I joined, why I left, what I'm proud of, what was hard. No formatting, no optimization. Just the facts. Funny thing — that's exactly what recruiters dig for in screening calls. Your motivations, your transitions, the context behind the bullet points. Except now it exists as a document before the call even happens. ## Why markdown Markdown is plain text — it's readable by humans and by LLMs equally well. Once your career is in a structured markdown file, generating a resume becomes a pipeline: feed the source to an LLM, get a content plan tailored to the role, then render to PDF. The creative part is already done — the rest is **mechanics**. Applying for a backend role? The LLM pulls your system design work, infrastructure experience, performance wins. Fullstack position? It shifts the weight toward product delivery and cross-stack ownership. Cover letter? Same source, different output format. One source file. Multiple builds. Each one tailored — without rewriting anything by hand. I committed mine to a git repo. Versioned. I never have to remember what I did 5 years ago — I just read the file. The resume stopped feeling weird once I stopped treating it as something I write. It's something I **generate**. There are dozens of resume builders out there — paid and free. They solve the formatting problem. But none of them solve the real one: where do you store the context that never fits in a resume? The reasons you joined. The reasons you left. What you actually learned vs what the bullet point says. How do you keep that information alive?You don’t need to write a resume.
Every time I sat down to update mine, something felt off.
Not “I don’t know what to write” off. More like — this process doesn’t make sense. I’m an engineer. I think in steps, I build systems, I debug things. But writing a resume? I was just rearranging bullet points, hoping the order would somehow matter.
No clear path. No way to verify the result. Just gut feeling and formatting choices. And don’t even get me started on templates — Awesome CV or minimalist? One column or two? Every choice feels arbitrary, and none of them change what you actually have to say.
It always bugged me. And it took me a while to figure out why.
The insight
Section titled “The insight”A resume is a build artifact. It’s compiled output — not source code. I’d been editing the build this whole time. That’s like patching minified JavaScript instead of fixing the original TypeScript module. No wonder it felt off.
So I wrote the source
Section titled “So I wrote the source”I created a source file for my career — a markdown document where I wrote down everything. Every job: what I did, why I joined, why I left, what I’m proud of, what was hard. No formatting, no optimization. Just the facts.
Funny thing — that’s exactly what recruiters dig for in screening calls. Your motivations, your transitions, the context behind the bullet points. Except now it exists as a document before the call even happens.
Why markdown
Section titled “Why markdown”Markdown is plain text — it’s readable by humans and by LLMs equally well. Once your career is in a structured markdown file, generating a resume becomes a pipeline: feed the source to an LLM, get a content plan tailored to the role, then render to PDF. The creative part is already done — the rest is mechanics.
Applying for a backend role? The LLM pulls your system design work, infrastructure experience, performance wins. Fullstack position? It shifts the weight toward product delivery and cross-stack ownership. Cover letter? Same source, different output format.
One source file. Multiple builds. Each one tailored — without rewriting anything by hand.
I committed mine to a git repo. Versioned. I never have to remember what I did 5 years ago — I just read the file.
The resume stopped feeling weird once I stopped treating it as something I write. It’s something I generate.
There are dozens of resume builders out there — paid and free. They solve the formatting problem. But none of them solve the real one: where do you store the context that never fits in a resume? The reasons you joined. The reasons you left. What you actually learned vs what the bullet point says.
How do you keep that information alive?