An open API service indexing awesome lists of open source software.

https://github.com/javiera-vasquez/claude-code-job-tailor

PDF Resume generator build for React and Claude Code. Write your career history once in YAML, Use /tailor to generate job-specific resumes and cover letters in PDF, all powered by Claude.
https://github.com/javiera-vasquez/claude-code-job-tailor

agentic-ai anthropic ats-friendly automation bun claude claude-code job-tailoring react react-pdf resume-builder yaml

Last synced: 9 months ago
JSON representation

PDF Resume generator build for React and Claude Code. Write your career history once in YAML, Use /tailor to generate job-specific resumes and cover letters in PDF, all powered by Claude.

Awesome Lists containing this project

README

          

# Claude Code Job Tailor

[![License: CC BY-NC 4.0](https://img.shields.io/badge/License-CC%20BY--NC%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc/4.0/)
[![Built with Bun](https://img.shields.io/badge/Built%20with-Bun-000000?logo=bun)](https://bun.sh/)
![](https://img.shields.io/badge/Node.js-18%2B-brightgreen?style=flat-square)
![Tests](https://github.com/javiera-vasquez/claude-code-job-tailor/actions/workflows/ci.yml/badge.svg?branch=main)

Claude-powered resume generator that treats your career as structured data. Write your experience once in YAML files, then automatically generate tailored PDF cover letters and resumes optimized for any job posting using Claude Code.

![Tailor in action!](/public/images/hi-im-tailor.png)

**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:**
```
/tailor "tech-corp" Which are the top 5 skills to emphasize for this role?
```

## Built-in Commands & Agents

This project includes specialized commands and AI agents to streamline your resume tailoring workflow:

| Command/Agent | Type | Purpose |
| --------------------------------------------------------- | ------- | --------------------------------------------------------------------------------------------------------------------- |
| `/tailor company-name` | Command | Set active company context and start live preview server with automatic validation |
| `/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) |
| `/tailor-help` | Command | Show resume tailoring workflow and available commands |
| `@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 tailor-server` | Script | Start live preview development server with file watching |
| `bun run save-to-pdf -C company-name` | Script | Generate PDF to `tmp/` (automatically generates data first) |
| `bun run generate-data -C company-name` | Script | Convert YAML data to TypeScript module for specific company |

## PDF Output Examples

You can review the PDF examples generated by the system in the [`public/pdf-examples/`](public/pdf-examples/) directory:

![Available templates](/public/images/templates.png)

| File | Description | Expected Data |
| ---------------------------------------------------------- | --------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`resume.pdf`](public/pdf-examples/resume.pdf) | Example tailored resume for a Senior Frontend Engineer position | [`ResumeSchema`](src/types.ts#L43): name, title, summary, contact details, technical expertise categories, skills array, languages, professional experience, independent projects, education |
| [`cover-letter.pdf`](public/pdf-examples/cover-letter.pdf) | Example personalized cover letter | [`CoverLetterSchema`](src/types.ts#L59): company, position, job focus array, primary focus, date, personal info, content with opening/body/signature |

These files demonstrate the default styling using the design tokens system in `src/templates/design-tokens.ts`. Use `/tailor-template-expert` to modify templates and styling.

## How It Works

The process is designed to be simple and powerful, flowing from your data to the final PDF with Zod validation ensuring data integrity at each step.

```
1. Your Data 2. AI Analysis 3. PDF Generation 4. Final Output
(YAML files) (Claude Code) (@react-pdf/renderer) (PDF Document)
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌──────────────┐ ┌───────────────────┐
│ resume.yaml │ │ Job Posting │ │ React Components │
│ experience. │ └──────────────┘ └───────────────────┘
│ yaml │ │ │
└─────────────┘ ▼ │
┌────────────────┐ ┌───────────────────┐ ┌─────────────────┐
│ AI Agent │ │ Tailored Data │ │ resume-company. │
│ (Optimizes & │────▶│ (resume.yaml in │────▶│ pdf │
│ Selects Data) │ │ /resume-data/ │ │ (tmp/ folder) │
└────────────────┘ │ tailor/) │ └─────────────────┘
└───────────────────┘
```

### Tailored Documents (`resume-data/tailor/[company-name]/`)

Each company folder contains four optimized files:

- **`metadata.yaml`** - Company context including position, primary focus areas, job summary, must-have skills, and folder information. Used by the `/tailor` command to set active context.
- **`job_analysis.yaml`** - Structured job requirements with weighted skills priorities (1-10 scale), candidate alignment analysis, optimization strategies, and ATS keywords.
- **`resume.yaml`** - Optimized resume with selected title and summary based on job focus, prioritized technical expertise, and relevant achievements matching job specialties.
- **`cover_letter.yaml`** - Personalized cover letter emphasizing qualifications that align with the job's weighted focus areas and required skills.

## Getting Started

You can see the resume generator in action without using any of your own data.

**Prerequisites:**

- [Bun](https://bun.sh/) JavaScript runtime
- [Claude Code](https://claude.ai/code) for AI-powered resume tailoring

1. **Clone the repository:**

```bash
git clone https://github.com/javiera-vasquez/claude-code-job-tailor.git
cd claude-code-job-tailor
```

2. **Install dependencies:**

```bash
bun install
```

3. **Start Claude Code session:**

```bash
claude code
```

4. **Start tailoring your resume:**

In Claude Code, use the job-tailor agent to analyze job postings:

```
/tailor "tech-corp" Which are the top 5 skills to emphasize for this role?
```

This will generate a tailor job and cover letter application for the position.

## Using Your Own Data

1. **Navigate to the data sources:**

```bash
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 rules are in `resume-data/mapping-rules/`. Claude already knows how to use them.

**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 and fix any schema issues using `bun run generate-data`
- 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/
```

## Troubleshooting

If you encounter any issues or have questions, please report them on our [GitHub Issues page](https://github.com/javiera-vasquez/cc-job-tailor/issues).

## License

This project is licensed under the **Creative Commons Attribution-NonCommercial 4.0 International License**. See the [LICENSE](LICENSE) file for details.