Sandbox
@javiera-vasquez/claude-code-job-tailor

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.

169 stars41 forksTypeScriptUpdated 10mo ago
Who it's for

Builders who want Claude Code to turn a single YAML resume into job-specific application materials.

What it delivers

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

  1. 1Clone the repository
    git clone https://github.com/javiera-vasquez/claude-code-job-tailor.git && cd claude-code-job-tailor
  2. 2Install dependencies
    bun install
  3. 3Configure environment
    cp .env.example .env
  4. 4Start Claude Code session
    claude code
  5. 5Start tailoring your resume
    /tailor "tech-corp"

README

Claude Code Job Tailor

License: CC BY-NC 4.0 Built with Bun Tests

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: Tailor in action!

Example Usage:

  1. 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...]
    
  2. 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:

    CategoryExamples
    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/AgentTypePurpose
/tailor company-nameCommandEdit 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]CommandGenerate PDF documents for specific company
/tailor-template-expertCommandTemplate development workspace for creating and modifying React-PDF templates (experimental)
@agent-job-analysisAgentAnalyze job postings and extract structured metadata and job analysis for tailored applications
@agent-job-tailorAgentComplete workflow: analyze job postings and create customized job analysis and tailored resumes
@agent-tailor-resume-and-coverAgentGenerate 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]ScriptGenerate 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)ScriptValidate 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).

Available templates

FileDescriptionExpected Data
resume-modern.pdf resume-classic.pdfExample tailored resume for a Senior Frontend Engineer positionResumeSchema: name, title, summary, contact details, technical expertise categories, skills array, languages, professional experience, independent projects, education
cover-letter.pdfExample personalized cover letterCoverLetterSchema: 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 strategy
  • resume.yaml — Tailored content with specialty-matched achievements and prioritized technical expertise
  • cover_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:

  1. Clone the repository:

    git clone https://github.com/javiera-vasquez/claude-code-job-tailor.git && cd claude-code-job-tailor
    
  2. Install dependencies:

    bun install
    
  3. Configure environment:

    cp .env.example .env
    
  4. Start Claude Code session:

    claude code
    
  5. Start tailoring your resume:

    /tailor "tech-corp"
    

Using Your Own Data

  1. Navigate to the data sources:

    cd resume-data/sources
    
  2. Copy the example files:

    • cp cover-letter.example.yaml cover-letter.yaml
    • cp professional-experience.example.yaml professional-experience.yaml
    • cp resume.example.yaml resume.yaml
  3. Edit the new .yaml files with your personal information. The system will automatically detect and use your files instead of the examples.

  4. 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:3000 with 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

Repository payload24 top-level entries
  • .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 it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More harnesses

affaan-m/
ECC
affaan-m/ECCHarnesses

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

258k

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.

42k
ruvnet/rufloHarnesses

🌊 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

72k

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.

11k