If you're applying to more than a handful of jobs, your resume is either generic or eating your evenings.
- Tailoring by hand doesn't scale. Every posting wants different keywords, and editing a Word doc per job means five versions drifting out of sync.
- Applicant tracking systems throw resumes out silently. Tables, columns, text boxes, and headers can scramble your contact info or hide whole sections from the parser.
- Cover letters overpromise. It's easy to claim something in the letter that the resume you sent doesn't back up.
- You lose track of what you sent. Which version went to which company is gone by the time they call.
Fitted keeps your whole career in one YAML file and builds the right resume for each job in one command.
- Write it once. Every role, project, bullet, and skill lives in
master.yaml, tagged by track and priority. - Pick a preset. DevOps, software, martech, systems, or embedded decides what's on the page.
- Boost the posting's keywords. Matching bullets float to the top.
- Fit the page automatically. Fitted renders, counts pages, and trims the least important bullets until it fits. Must-show bullets are never cut.
- Add a cover letter if you want. It only uses proof paragraphs backed by bullets that made it onto this resume.
- Get the files and the record. DOCX and PDF for both, a recruiter-friendly filename, and a log entry of what went where.
Use it from the terminal or from a point-and-click web app.

- Store it: one YAML file (
master.yaml) validated against a schema on every build - Select it: Python 3.11 selector that picks content by preset, track, priority, and keyword boost
- Lay it out: Word templates with Jinja tags (docxtpl), rendered in strict mode so a typo fails loudly
- Convert it: headless LibreOffice for DOCX to PDF, with bundled fonts so the PDF looks the same everywhere
- Check it: pypdf reads the PDF back like an ATS would; pytest runs it for every preset
- Use it: a CLI (
build.py) and a Streamlit web app over the same pipeline - Track it:
log.json, one entry per application
One YAML file now produces a tailored resume and cover letter, as DOCX and PDF, for 5 job types.
- ATS checked on every build: contact info extractable, sections in order, every bullet readable, no tables, columns, text boxes, images, or header content.
- Never over length: resumes are held to 2 pages and cover letters to 1 by automated tests.
- No unbacked claims: every cover letter paragraph traces to a bullet on the resume it ships with.
- Every preset tested end to end in about 90 seconds.
How this helps you: separate your content from your layout. Keep the facts in one structured file and let code decide what fits each audience. It works for resumes, proposals, bios, or any document you rewrite for different readers.
