AI-powered resume optimization system that analyzes job postings, ranks requirements by importance, and generates tailored PDFs in under 60 seconds.
Repo: javiera-vasquez/claude-code-job-tailor
What's inside
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.
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 areasThe 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:
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.yamlEdit the new .yaml files
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!
resume-data/mapping-rules/bun run validate:[resume|cover-letter] and fix any schema issuesExample 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:
Getting Started:
/tailor-template-expert
Work with Claude to design a new layout, update colors, or modify typography. You'll get:
http://localhost:3000 with hot-reloadKey Resources:
src/templates/shared/design-tokens.ts (colors, typography, spacing)src/templates/shared/fonts-register.ts (Lato, Open Sans, Open Fonts).claude/rpdf-context/ (components, styling, fonts, troubleshooting)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.
.claude/
agents/
job-analysis.md
job-tailor.md
tailor-generate-assets.md
cc-agents-context.md
cc-cmd-context.md
cc-hooks-context.md
commands/
generate-pdf.md
tailor-template-expert.md
tailor.md
rpdf-context/
components.md
fonts.md
styling.md
troubleshooting.md
tailor-context.yaml
.env.example
.github/
workflows/
ci.yml
.gitignore
.prettierignore
.prettierrc.json
bun.lock
CHANGELOG.md
CLAUDE.md
components.json
demo.gif
eslint.config.js
LICENSE
package.json
postcss.config.js
public/
images/
hi-im-tailor.png
job-tailor-flow.png
job-tailor.png
templates.png
jobs/
tech-corp__senior_frontend_engineer_web_open_application.md
pdf-examples/
cover-letter.pdf
resume-classic.pdf
resume-modern.pdf
README.md
resume-data/
mapping-rules/
cover_letter.yaml
job_analysis.yaml
metadata.yaml
resume.yaml
sources/
cover_letter.example.yaml
professional_experience.example.yaml
resume.example.yaml
tailor/
tech-corp/
cover_letter.yaml
job_analysis.yaml
metadata.yaml
resume.yaml
scripts/
generate-pdf.ts
set-env.ts
shared/
cli/
cli-args.ts
core/
config.ts
functional-utils.ts
logger.ts
path-helpers.ts
data/
data-generation.ts
document/
document-generation.ts
handlers/
result-handlers.ts
validation/
company-validation.ts
context-operations.ts
path-resolution.ts
tailor-check-pipeline.ts
tailor-setup-pipeline.ts
types.ts
yaml-operations.ts
yaml-validation.ts
tailor-server.ts
validate-schema.ts
src/
data/
application.ts
index.html
index.tsx
templates/
classic/
components/
cover-letter/
Body.tsx
DateLine.tsx
Header.tsx
Signature.tsx
Title.tsx
resume/
CoreCompetencies.tsx
Education.tsx
Experience.tsx
Header.tsx
Languages.tsx
Summary.tsx
TechnicalSkills.tsx
cover-letter.tsx
index.tsx
resume.tsx
section-registry.ts
index.tsx
modern/
components/
cover-letter/
Body.tsx
DateLine.tsx
Header.tsx
Signature.tsx
Title.tsx
resume/
Contact.tsx
Education.tsx
Experience.tsx
Header.tsx
Languages.tsx
Skills.tsx
cover-letter.tsx
index.tsx
resume.tsx
section-registry.ts
shared/
design-tokens.ts
fonts-register.ts
libs/
tailwind-colors.ts
section-utils.ts
with-pdf-wrapper.tsx
types.ts
ui/
App.tsx
components/
Header.tsx
Sidebar.tsx
SidebarNavigation.tsx
ui/
badge.tsx
button.tsx
card.tsx
select.tsx
separator.tsx
tabs.tsx
widgets/
SidebarWidget.tsx
types.ts
hooks/
useScrollSpy.ts
lib/
getSidebarWidgets.ts
utils.ts
styles/
globals.css
zod/
schemas.ts
tailor-context-schema.ts
tailwind.config.ts
test/
fixtures/
company-data/
invalid/
invalid-email-format.yaml
invalid-job-focus-weights.yaml
malformed-yaml.yaml
missing-required-fields.yaml
valid/
company-partial-files.yaml
company-with-all-files.yaml
complete-application.yaml
minimal-application.yaml
expected-outputs/
sample-application.ts
helpers/
test-utils.ts
integration/
set-env.test.ts
unit/
cli-args.test.ts
compact-mode-config.test.ts
company-validation.test.ts
document-generation.test.ts
functional-utils.test.ts
generate-pdf.test.ts
logger.test.ts
path-resolution.test.ts
schemas.test.ts
tailor-context-utils.test.ts
templates/
classic/
section-registry.test.ts
modern/
section-registry.test.ts
theme-validation.test.ts
with-pdf-wrapper.test.ts
yaml-validation.test.ts
tsconfig.json
vite.config.tsFAQ
claude-code-job-tailor is a Claude Code plugin with hand-picked skills for career work, indexed on Flowy. Install it with the command on its page. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.