A small Python-program to generate my CVs from a Markdown file.
Find a file
Renovate Bot 3e8f4f0d9f
All checks were successful
Continuous Integration / Build Package (push) Successful in 1m32s
Continuous Integration / Lint, Check & Test (push) Successful in 1m33s
Add renovate.json
2026-03-06 00:01:04 +00:00
.forgejo/workflows build: switch from devenv to nix flakes with uv2nix 2026-03-05 21:25:55 +01:00
example docs: add README with example renderings and license info 2026-03-05 21:08:54 +01:00
src/cv_generator feat: initial commit 2026-03-05 21:03:48 +01:00
.envrc build: switch from devenv to nix flakes with uv2nix 2026-03-05 21:25:55 +01:00
.gitignore build: switch from devenv to nix flakes with uv2nix 2026-03-05 21:25:55 +01:00
.python-version feat: initial commit 2026-03-05 21:03:48 +01:00
flake.lock build: switch from devenv to nix flakes with uv2nix 2026-03-05 21:25:55 +01:00
flake.nix build: switch from devenv to nix flakes with uv2nix 2026-03-05 21:25:55 +01:00
LICENSE.md docs: add MIT license 2026-03-05 21:07:23 +01:00
main.py build: switch from devenv to nix flakes with uv2nix 2026-03-05 21:25:55 +01:00
pyproject.toml build: switch from devenv to nix flakes with uv2nix 2026-03-05 21:25:55 +01:00
README.md docs: add README with example renderings and license info 2026-03-05 21:08:54 +01:00
renovate.json Add renovate.json 2026-03-06 00:01:04 +00:00
uv.lock build: switch from devenv to nix flakes with uv2nix 2026-03-05 21:25:55 +01:00

CV Generator

Generate a polished PDF CV from a Markdown file with YAML frontmatter.

The CV data (work experience, education, skills, etc.) is defined as structured YAML frontmatter, while the cover letter is written as regular Markdown below it. The tool renders everything into a styled PDF using Jinja2 templates and WeasyPrint.

Example

The example/ directory contains a sample CV for Albert Einstein, applying to the Swiss Patent Office in 1902.

Cover Letter CV
Cover Letter CV

Usage

uv run cv path/to/your_cv.md

To specify a custom output path:

uv run cv path/to/your_cv.md -o output.pdf

Markdown File Format

The input file uses YAML frontmatter for structured data and Markdown for the cover letter body. See example/alberteinstein.md for a complete example.

Photo and signature paths are resolved relative to the Markdown file's location.

Third-Party Assets

The following bundled assets are licensed separately from this project:

License

This project is licensed under the MIT License.