Weave your CV! Generate PDF CVs from YAML data.
# macOS - install system dependencies (one-time)
brew install pango uvWhy pango? WeasyPrint (the PDF engine) requires the Pango text rendering library.
# Generate CV
uv run cv-generate data/cv.yaml output/cv.pdfThat's it. On first run, uv will:
- Install the correct Python version
- Create a virtual environment
- Install pinned dependencies from
uv.lock
Edit data/cv.yaml to change:
- Content: name, experience, education, projects, etc.
- Styling: colors, fonts, spacing
style:
colors:
primary: "#1e3a5f" # Accent color
sidebar_bg: "#1e3a5f" # Sidebar background
sidebar_text: "#ffffff" # Sidebar text
fonts:
main: "Helvetica Neue, Helvetica, Arial, sans-serif"
spacing:
sidebar_width: "35%"
page_padding: "12mm"├── data/cv.yaml # Your CV content + styling
├── cv_generator/
│ ├── generator.py # PDF generation logic
│ └── templates/
│ ├── cv.html # Jinja2 template
│ └── style.css # Styling
├── output/ # Generated PDFs (gitignored)
├── pyproject.toml # Project metadata
└── uv.lock # Pinned dependencies