The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.
Claude Code resume tailoring workflow and PDF templates
This repo gives Claude Code a structured way to analyze job postings, score requirements, and choose the most relevant achievements from your YAML resume data. It also includes commands for live tailoring, PDF generation, and template work, so you can refine content and preview the result in browser and PDF form.
Builders who want Claude Code to turn a single YAML resume into job-specific application materials.
You can create tailored resumes and cover letters for each application without rewriting your experience from scratch.
What it does
Job analysis agents
`@agent-job-analysis`, `@agent-job-tailor`, and `@agent-tailor-resume-and-cover` split analysis, tailoring, and document generation into separate steps.
Live tailoring command
`/tailor company-name` opens an interactive editing flow with browser preview so you can change content and layout while Claude works.
PDF generation
`/generate-pdf company-name [resume|cover-letter|both]` renders tailored PDFs for a chosen company.
YAML data source
Your experience lives in `resume-data/sources/` YAML files, with mapping rules and Zod validation for resume and cover-letter data.
Template workspace
`/tailor-template-expert` provides a workspace for building and modifying React-PDF templates in `src/templates/`.
Validation scripts
`bun run validate:[type]` checks metadata, resume, job analysis, and cover letter files against schema rules.
How to get it
- 1Clone the repository
git clone https://github.com/javiera-vasquez/claude-code-job-tailor.git && cd claude-code-job-tailor
- 2Install dependencies
bun install
- 3Configure environment
cp .env.example .env
- 4Start Claude Code session
claude code
- 5Start tailoring your resume
/tailor "tech-corp"
README
Claude Code Job Tailor
AI-powered resume optimization system that analyzes job postings, ranks requirements by importance, and generates tailored PDFs in under 60 seconds. Write your experience once in YAML, then let Claude's agents automatically select your most relevant achievements for each application.
⚡ 60 Second job analysis • 🎯 Weighted skill matching • 🤖 3 specialized AI agents
🖼️ 2 Available templates • 🧑🎨 Unlimited tailored versions
Tailor in action:

Example Usage:
-
Analyze a job posting and create tailored materials:
@agent-job-tailor Analyze this job posting for Senior AI Engineer at TechCorp: [...paste job description | URL | PDF | Markdown file here...] -
Iterate on existing company materials and customize on the fly:
/tailor "tech-corp"Once in tailor mode, you can ask Claude to make changes in real-time:
Category Examples Content & Analysis "Which are the top 5 skills to emphasize?" • "Analyze the job and tell me my focus areas" • "Add a new achievement about [project]" Template & Layout "Switch to the classic template" • "Reorder sections" • "Hide my profile picture" Writing & Refinement "Make the summary more impactful" • "Rewrite the cover letter opening" • "Emphasize my React expertise" All changes preview instantly in your browser as you iterate.
Built-in Commands & Agents
3 specialized AI agents handle different stages of the workflow (analysis, tailoring, editing). 3 slash commands give you direct control:
| Command/Agent | Type | Purpose |
|---|---|---|
/tailor company-name | Command | Edit your resume with Claude in real-time through a live browser preview. Changes appear instantly as you refine content, switch templates, or adjust sections |
/generate-pdf company-name [resume|cover-letter|both] | Command | Generate PDF documents for specific company |
/tailor-template-expert | Command | Template development workspace for creating and modifying React-PDF templates (experimental) |
@agent-job-analysis | Agent | Analyze job postings and extract structured metadata and job analysis for tailored applications |
@agent-job-tailor | Agent | Complete workflow: analyze job postings and create customized job analysis and tailored resumes |
@agent-tailor-resume-and-cover | Agent | Generate tailored resume and cover letter using existing job analysis data (requires metadata and job_analysis files) |
bun run generate-pdf -C company-name [-D resume|cover-letter|both] | Script | Generate PDF documents (resume, cover letter, or both) to tmp/ with automatic validation and theme selection (default: both) |
bun run validate:[type] (-C company-name | -P path) | Script | Validate YAML files against Zod schemas. Types: all, metadata, resume, job-analysis, cover-letter |
PDF Output Examples
Two professional templates included: modern (two-column with accent colors) and classic (single-column monochrome).

| File | Description | Expected Data |
|---|---|---|
resume-modern.pdf resume-classic.pdf | Example tailored resume for a Senior Frontend Engineer position | ResumeSchema: name, title, summary, contact details, technical expertise categories, skills array, languages, professional experience, independent projects, education |
cover-letter.pdf | Example personalized cover letter | CoverLetterSchema: company, position, job focus array, primary focus, date, personal info, content with opening/body/signature |
Why This Exists
The problem: Resume tailoring is expensive. Paid services promise AI-powered optimization, but most are template-filling bots that don't understand your experience or the actual job requirements. Manually customizing resumes for each application is slow, subjective, and draining—you're guessing which achievements matter and which skills to emphasize.
The solution: AI agents analyze job postings and extract weighted requirements (React: priority 10, Python: priority 7). Then they use specialty-based scoring to automatically select your most relevant experience. The /tailor command lets you collaborate with Claude in real-time to refine the output while watching changes in your browser.
The result: Data-driven optimization that takes 60 seconds instead of 2 hours, and actually matches what the job requires. Best part: It's completely free and open-source. No paywalls, no subscriptions, no proprietary algorithms locked behind corporate walls—just you, Claude, and a tool that actually works.
How It Works
📝 Your Experience → 🤖 AI Optimize & Validate → 👩💻 Review & Refine → 📄 PDF Export → ✅ Ship Resume
What Gets Generated (Per Company)
Each resume-data/tailor/[company-name]/ folder contains AI-optimized files:
metadata.yaml— Job context extracted from the posting (position, top skills, company details)job_analysis.yaml— Weighted requirements with skills ranked 1-10, candidate gap analysis, and optimization strategyresume.yaml— Tailored content with specialty-matched achievements and prioritized technical expertisecover_letter.yaml— Personalized letter emphasizing your alignment with the job's weighted focus areas
The intelligence: The system doesn't just template-fill. It uses weighted scoring to select which of your achievements are most relevant for this specific job. React mentioned 5 times in the posting? Your React projects get prioritized. Simple as that.
Getting Started
You can see the resume generator in action without using any of your own data.
Prerequisites:
- Bun JavaScript runtime
- Claude Code for AI-powered resume tailoring
-
Clone the repository:
git clone https://github.com/javiera-vasquez/claude-code-job-tailor.git && cd claude-code-job-tailor -
Install dependencies:
bun install -
Configure environment:
cp .env.example .env -
Start Claude Code session:
claude code -
Start tailoring your resume:
/tailor "tech-corp"
Using Your Own Data
-
Navigate to the data sources:
cd resume-data/sources -
Copy the example files:
cp cover-letter.example.yaml cover-letter.yamlcp professional-experience.example.yaml professional-experience.yamlcp resume.example.yaml resume.yaml
-
Edit the new
.yamlfiles with your personal information. The system will automatically detect and use your files instead of the examples. -
Validation rules and schema guidance: All data transformation and validation are configurable. Use
bun run validate:[resume|cover-letter]to validate your YAML files and get actionable feedback on any schema issues.
Need help migrating your data? Claude Code can read your existing resume and help you migrate it to the YAML format!
- Read your current resume (PDF, Word, or text format)
- Extract your experience, skills, and education
- Structure the data according to the validation rules in
resume-data/mapping-rules/ - Validate your YAML files using
bun run validate:[resume|cover-letter]and fix any schema issues - Guide you through the entire migration process
Example prompt:
Claude, read my resume at ~/Documents/my-resume.pdf and create validated YAML files in resume-data/sources/
Template Development
Go beyond the built-in templates—create entirely new variants, modify component structures, and implement custom designs:
What you can do:
- Create new template variants with custom layouts (single-column, sidebar, multi-section)
- Modify component hierarchies and visual structures
- Update design tokens: color palettes, typography system, spacing constants
- Implement responsive design patterns and advanced layouts
- Refactor component organization for reusability
- Fix rendering issues and optimize for React-PDF constraints
Getting Started:
/tailor-template-expert
Work with Claude to design a new layout, update colors, or modify typography. You'll get:
- Live preview server at
http://localhost:3000with hot-reload - Full access to design system and React-PDF documentation
- Real-time compilation feedback for all template changes
- Guided support for component modification and creation
Key Resources:
- Design tokens:
src/templates/shared/design-tokens.ts(colors, typography, spacing) - Font registration:
src/templates/shared/fonts-register.ts(Lato, Open Sans, Open Fonts) - React-PDF docs:
.claude/rpdf-context/(components, styling, fonts, troubleshooting) - Existing templates:
src/templates/{modern,classic}/(reference implementations)
Troubleshooting
If you encounter any issues or have questions, please report them on our GitHub Issues page.
License
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License. See the LICENSE file for details.
Files in the repo
- .claude
- .github
- public
- resume-data
- scripts
- src
- test
- .env.example
- .gitignore
- .prettierignore
- .prettierrc.json
- bun.lock
- CHANGELOG.md
- CLAUDE.md
- components.json
- demo.gif
- eslint.config.js
- LICENSE
- package.json
- postcss.config.js
- README.md
- tailwind.config.ts
- tsconfig.json
- vite.config.ts
Discussion (0)
Ask about usage, or say what you built with itSign in to join the discussion.
No comments yet. Be the first to say what this is good for.
More harnesses
The job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
from vibe coding to agentic engineering - practice makes claude perfect
🌊 The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
Practical patterns, starters & CLI tools for loop engineering with AI coding agents. Design systems that prompt and orchestrate agents (inspired by Addy Osmani and Boris Cherny). Includes loop-audit, loop-init, loop-cost.
Git. Ship. Done - Core