Build a clear, ATS-readable resume from a local LaTeX profile, then create an isolated copy for each application. The toolkit works for any profession. It includes fictional Developer, Designer, and Chief Product Officer starter profiles.
profiles/<profession>/resume.tex
applications/<profession>/<application-slug>/
templates/resume.tex
templates/resume.docx
docs/resume-guide/
scripts/
profiles/ holds factual source resumes. applications/ holds tailored private copies and is ignored by Git. Generated PDFs and local archives belong in outputs/, which is also ignored.
- Bash
rgfrom ripgrep- a TeX distribution with
latexmkorpdflatex - Poppler tools (
pdfinfoandpdftotext) pngcheckor Python with Pillow for guide image verification
Pandoc is needed only if you want to regenerate the DOCX template.
On macOS, MacTeX and Homebrew packages provide these commands. On Debian or Ubuntu, install texlive-latex-base, texlive-latex-recommended, texlive-fonts-recommended, latexmk, pngcheck, poppler-utils, and ripgrep.
Compile a fictional starter:
./scripts/generate-resume-pdf.sh \
profiles/designer/resume.tex \
outputs/designer-resume.pdfCreate your own profile from the closest starter:
./scripts/new-profile.sh operations cpoEdit profiles/operations/resume.tex until it contains only your facts. Then save a job description and create an application:
./scripts/new-application.sh \
operations \
northwind-operations-lead \
/path/to/description.mdTailor the copied resume, add match-report.md, and validate it:
./scripts/validate-application.sh \
applications/operations/northwind-operations-leadThe validator accepts profession-specific headings such as Technical Skills, Design Skills, and Core Competencies. It checks common resume fundamentals, PDF length, text extraction, placeholders, icon fonts, LaTeX errors, and overfull boxes.
new-profile.sh <profession-slug> [starter-slug]
new-application.sh <profession-slug> <application-slug> [description.md]
generate-resume-pdf.sh <resume.tex> [output.pdf]
validate-application.sh <application-directory>
Slugs must use lowercase letters, digits, and single hyphens. Creation commands stop when a source is missing or a destination exists. They never overwrite your work.
Resumes and job applications contain personal data. applications/, outputs/, and generated PDFs are ignored, but ignore rules do not erase files already committed to Git. Check git status and git ls-files before pushing. Do not put confidential employer or customer data into a resume or an external AI service.
The project-owned skill in .agents/skills/ready-cv-generator/ describes a truthful tailoring workflow for compatible coding agents. External ATS, writing, or LaTeX skills are optional and are not bundled here. The CLI remains the source of repository behavior.
Read the local resume guide before tailoring a profile. Contributions are welcome under CONTRIBUTING.md.
MIT. See LICENSE.