AI agent for Claude Code that tailors resumes to job descriptions with ATS optimization and LaTeX PDF output. Zero fabrication - every claim sourced from your career document.
SaferSkills independently audited ats-resume-agent (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
v1.1.0
An AI-powered resume and cover letter generator built on Claude Code. It creates ATS-optimized, LaTeX-formatted resumes tailored to specific job descriptions -- and includes a guided career document builder that helps you create the source material through an interactive interview.
Zero fabrication policy: The agent will never estimate metrics, suggest proxy numbers, or embellish your experience. If a quantified achievement isn't in your master document, it won't appear in the output. This is a hard constraint, not a suggestion.
The Zero-Fabrication Resume Workflow
The project has two agents that work together:
The typical flow:
Here's what the agent produces from the included example data:
Resume:
Sample Resume
Cover Letter:
Sample Cover Letter
Install Claude Code (Anthropic's CLI tool):
curl -fsSL https://install.anthropic.com | shYou need an Anthropic API key or a Claude Pro/Max subscription. See Claude Code docs for setup. Each resume generation typically uses the Sonnet model and takes 30-60 seconds. The career document builder interview takes longer depending on career complexity.
The agent outputs .tex files. To compile them to PDF, you need pdflatex.
Ubuntu/Debian/WSL:
sudo apt-get install texlive-latex-base texlive-fonts-recommended \
texlive-fonts-extra texlive-latex-extraThis installs all required LaTeX packages. No additional package installation should be needed.
macOS:
brew install --cask mactex-no-guiThe full mactex-no-gui (~4GB) includes all required packages. The smaller basictex (~100MB) may be missing fonts and packages -- if you use it, install missing packages with tlmgr:
sudo tlmgr update --self
sudo tlmgr install fontawesome5 fontawesome CormorantGaramond charter \
ragged2e microtype lastpage bookmark tabularx enumitem titlesec fancyhdrImportant: The resume template uses fontawesome5 and the cover letter template uses fontawesome. These are separate packages -- both must be installed for full functionality.
<details> <summary>Troubleshooting LaTeX packages</summary>
To check if a specific package is installed:
kpsewhich fontawesome5.styIf pdflatex fails with File 'X.sty' not found, install the missing package:
sudo tlmgr install <package-name>If you don't have LaTeX installed and don't want to install it locally, you can still use the agent to generate the .tex files and compile them using Overleaf or another online LaTeX editor. </details>
git clone https://github.com/NullSpace-BitCradle/ats-resume-agent.git
cd ats-resume-agent ./setup.shThis checks for Claude Code and LaTeX, and offers to install anything missing.
Option A -- Guided interview (recommended):
Help me build my career documentThe career-doc-builder agent will walk you through an interactive interview to produce a comprehensive 18-section MCD. If you have existing resumes, LinkedIn exports, or other career materials, it can ingest those as a starting point.
Option B -- Manual:
cp examples/Master_Career_Document.md Master_Career_Document.mdEdit Master_Career_Document.md with your real career data. See the example file for the expected format and available features like agent notes and legacy sections.
Note: Master_Career_Document.md and Job_Description-*.md files in the project root are gitignored by default to prevent accidentally committing personal information. The example files in examples/ are tracked normally.
claudeThe agent definition in .claude/agents/ats-resume-writer.md is preconfigured -- you don't need to read or modify it to generate resumes.
Drop a job description file in the project root:
# Name it following the convention:
# Job_Description-[Company]-[Role].mdThen tell Claude:
Resume for the Example Corp fileor:
Resume and cover letter for the Example Corp fileThe agent will:
.tex file with ATS-optimized contentpdflatexOutput files are saved to the output/ directory.
After generating a resume, you can ask for adjustments:
Make the summary more focused on leadership experienceAdd the CloudBridge SSO migration project to the experience sectionCan you review this resume? I'm not getting callbacksThe career-doc-builder agent guides you through creating a comprehensive Master Career Document via interactive interview:
Help me build my career documentIt can also enrich an existing MCD:
Review my career document for gapsUpdate my MCD with my new role#### How the Career Document Builder Works
The agent runs a multi-phase interview that builds your career document section by section:
The output is a single Markdown file with 18 structured sections. The interview typically takes 30-60 minutes depending on career complexity and how much existing material you provide. Once complete, you reuse this document every time you generate a resume -- no re-interviewing.
ats-resume-agent/
|-- README.md # This file
|-- LICENSE # MIT (project) + CC-BY-4 (LaTeX template)
|-- CLAUDE.md # Instructions for Claude Code (you don't need to edit this)
|-- setup.sh # Dependency checker and installer
|-- .gitignore # Excludes output files and personal documents
|-- .claude/
| `-- agents/
| |-- ats-resume-writer.md # Resume/cover letter generation agent
| `-- career-doc-builder.md # Interactive career document builder agent
|-- images/ # Screenshots for README
|-- templates/
| |-- resume-template.tex # LaTeX resume template (CC-BY-4)
| `-- cover-letter-template.tex # LaTeX cover letter template
|-- examples/
| |-- Master_Career_Document.md # Example career doc with fake data
| |-- Job_Description-Example_Corp-Senior_Engineer.md # Example JD
| `-- sample-output/
| |-- resume-preview.pdf # Sample resume PDF
| `-- cover-letter-preview.pdf # Sample cover letter PDF
`-- output/ # Generated resumes go here (gitignored)The career-doc-builder agent produces a comprehensive 18-section MCD. You can also create one manually -- the resume writer agent handles both formats. Key sections:
| Section | Purpose |
|---|---|
| Contact Information | Name, phone, email, LinkedIn, GitHub |
| Professional Identity & Positioning | Target titles and core value proposition |
| Professional Summaries | 2-4 different summary angles for different role types |
| Hybrid Strengths | Cross-domain strengths (section name adapts to your field) |
| Core Competencies & Technical Skills | Categorized skill lists with sub-categories |
| Industries Supported | Industries served across your career |
| Work Experience | Detailed roles with metrics and agent notes |
| Education & Training | Degrees, courses, certifications, lab environments |
| Key Achievements & Metrics | Curated highlight reel of strongest outcomes |
| Leadership & Soft Skills | Leadership style, values, professional attributes |
| Notes for Resume Customization | Positioning angles and metrics guidance by role type |
| Legacy & Historical Platforms | Outdated skills to exclude from resumes |
See examples/Master_Career_Document.md for the full 18-section structure with all available sections.
You can embed instructions for the agent directly in your career document:
> **Agent Note:** This project was collaborative -- do not attribute sole ownership.The agent treats these as binding instructions and will respect them when generating content.
Any content under a "Legacy & Historical Platforms" heading is automatically excluded from all generated resumes. Use this for outdated skills you want to keep on record but never include in applications.
LaTeX over Word/PDF: LaTeX produces consistent, professional formatting and is ATS-compatible through Unicode glyph mapping (\pdfgentounicode=1). The PDF output is machine-readable by ATS systems despite custom fonts and styling.
Keyword-first content selection: The agent builds a keyword map from each job description and prioritizes matching content from your career document. Skills sections list job-description keywords first within each category.
One source of truth: All content comes from the Master Career Document. The agent never asks you for information during generation -- it reads the files and produces output.
The LaTeX templates in templates/ control the visual design:
\definecolor lines in templates/resume-template.tex \definecolor{accentTitle}{HTML}{0e6e55} % Name and section text
\definecolor{accentText}{HTML}{0e6e55} % Section headings
\definecolor{accentLine}{HTML}{a16f0b} % Horizontal rules\addtolength values\renewcommand\labelitemi{--} to use a different bullet characterThe agent's content selection strategy, quality standards, and action verb lists are all defined in .claude/agents/ats-resume-writer.md. You can modify these to match your preferences -- for example, changing the recency bias from 5-7 years to 10 years, or adjusting the page limit.
Edit the cover letter standards section in the agent definition to adjust tone, structure, or length preferences.
Both agents are configured to use the Sonnet model (model: sonnet in the agent frontmatter), which provides the best balance of speed, cost, and quality for this workflow. If you want to use a different model, edit the model: field in the agent definition files.
For the resume writer, Sonnet is recommended -- it follows the template commands reliably and respects the hard constraints. For the career document builder, Sonnet also works well for the conversational interview format.
If you find the agents occasionally deviating from instructions (adding unsolicited content, ignoring agent notes), try running with a fresh session (claude --resume no) to avoid context pollution from previous conversations.
This project is licensed under the MIT License.
The LaTeX resume template (templates/resume-template.tex) is based on work by Michael Lustfield and is licensed under CC-BY-4.0.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.