Skip to content

AI-native CV toolkit for developers. One YAML, multiple CVs, zero hassle.

License

Notifications You must be signed in to change notification settings

AHTOOOXA/easy-cv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

easy-cv

AI-native CV toolkit for developers. One YAML, multiple CVs, zero hassle.

Features

  • Multi-variant - One data file generates backend/fullstack CVs
  • Bilingual - EN/RU from same source
  • PDF-level analysis - Measures actual rendered widths, not character counts
  • AI-native - Built for Claude Code with skills for the entire job search

Quick Start

# 1. Clone and install
git clone https://github.com/AHTOOOXA/easy-cv
cd easy-cv
pip install -e .

# 2. Get started (with Claude Code)
/help                    # Interactive guide
/cv:init                 # Set up from existing resume or interview

# Or manually
cp examples/cv-data.example.yaml cv-data.yaml
# Edit cv-data.yaml with your info

# 3. Generate CVs
/cv:generate             # Or: python src/generate.py --pdf

Requirements

  • Python 3.10+
  • pdflatex (LaTeX distribution)
  • pymupdf (pip install pymupdf)
  • pyyaml (pip install pyyaml)

Installing LaTeX

macOS:

brew install --cask mactex-no-gui

Ubuntu/Debian:

sudo apt-get install texlive-latex-base texlive-fonts-recommended texlive-lang-cyrillic

Windows: Download MiKTeX

Usage

Generate CVs

# Generate all variants (tex only)
python src/generate.py

# Specific CV type and language
python src/generate.py backend en
python src/generate.py fullstack ru

# Generate and compile to PDF
python src/generate.py --pdf

# Generate, compile, and move to Downloads
python src/generate.py --pdf --move

Analyze PDFs

Check for page overflow and orphan words:

python src/analyze.py

Output shows:

  • [+] FITS - has free space
  • [~] TIGHT - barely fits (acceptable)
  • [!] OVERFLOW - needs fixing

CV Types

Type Title Focus
backend Python Backend Developer APIs, microservices, distributed systems
fullstack Fullstack Developer Python + React/Vue, end-to-end

Data Structure

personal_info:
  name:
    en: "John Doe"
    ru: "Джон Доу"
  email: "john.doe@example.com"

job_titles:
  backend:
    en: "Python Backend Developer"
  fullstack:
    en: "Fullstack Developer"

about_me:
  backend:
    en: "Backend Developer with 4+ years..."
  fullstack:
    en: "Fullstack Developer with 4+ years..."

experience:
  - position:
      en: "Senior Backend Developer"
    achievements:
      en:
        - "Reduced order processing latency by 70%"

projects:
  - name:
      en: "NotHotDog"
    show_in: ["backend", "fullstack"]  # Control which CVs include this

See examples/cv-data.example.yaml for full structure.

Claude Code Integration

This toolkit includes Claude Code skills for AI-assisted job search. Commands are entry points, skills contain the logic.

Commands

/help             Interactive guide based on your situation
/cv:karen         Full help menu - shows all commands
/cv:init          Set up cv-data.yaml (import resume or interview)
/cv:generate      Generate CV files, compile to PDF
/cv:analyze       Check PDFs for overflow and orphans
/cv:optimize      Fix formatting issues iteratively
/cv:improve       Review and improve CV content
/cv:cover-letter  Write cover letter for specific job
/cv:interview     Prepare for interview
/cv:salary        Salary research and negotiation
/cv:linkedin      Optimize LinkedIn profile

Skills

Skill What it does
help Interactive guide - assesses state, suggests next steps
init Set up cv-data.yaml from existing resume or interview
generate Generate LaTeX from YAML, compile to PDF
analyze Measure PDF text widths, find orphans
optimize Iteratively fix overflow and orphans
cv-improve Review CV, quantify achievements, edit YAML
cover-letter Write formal + messenger versions for job posting
interview-prep Fit analysis, STAR stories, prep checklist
salary-nego Market research, positioning, negotiation scripts
linkedin-profile Generate headline, about, experience for LinkedIn

Example Workflow

You: /help
Claude: [Checks state, asks what you need, routes to right skill]

You: /cv:init
Claude: [Asks: import resume or interview? Guides you through setup]

You: /cv:generate
Claude: [Generates all CV variants as PDFs]

You: /cv:analyze
Claude: [Reports overflow on fullstack_ru, orphan in backend_en about_me]

You: /cv:optimize
Claude: [Edits cv-data.yaml to fix issues, regenerates, verifies]

You: Write cover letter for [paste job posting]
Claude: [Uses cover-letter skill, saves to notes/]

You: Prepare me for interview at Stripe
Claude: [Uses interview-prep skill, researches company, creates prep doc]

Project Structure

easy-cv/
├── cv-data.yaml          # Your data (gitignored)
├── src/
│   ├── generate.py       # YAML -> LaTeX -> PDF
│   └── analyze.py        # PDF quality analysis
├── templates/
│   └── modern.tex        # LaTeX template
├── output/               # Generated files (gitignored)
├── notes/                # Cover letters, prep docs (gitignored)
├── examples/
│   ├── cv-data.example.yaml
│   └── output/           # Sample PDFs for preview
└── .claude/
    ├── commands/         # Slash commands (wrappers)
    └── skills/           # AI skills (logic)

License

MIT

About

AI-native CV toolkit for developers. One YAML, multiple CVs, zero hassle.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •