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
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.
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 |
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 |
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.
📝 Your Experience → 🤖 AI Optimize & Validate → 👩💻 Review & Refine → 📄 PDF Export → ✅ Ship Resume
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.
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"
-
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/
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)
If you encounter any issues or have questions, please report them on our GitHub Issues page.
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License. See the LICENSE file for details.

