A Python library to generate LaTeX resumes from YAML configuration files using Jinja2 templates.
Project description
📄 codeurcv
Turn a simple YAML or JSON file into a professional resume — instantly.
Whether you're a student, working professional, or researcher — write your details once, get a polished PDF resume every time.
✨ Features
- Simple input format — describe your resume in a human-readable
.ymlor.jsonfile. No LaTeX knowledge required. - Premium templates for free — choose from a curated set of professionally designed resume templates.
- Clickable project links — add a
linkfield to any project and it becomes a clickable hyperlink in the PDF. - Special character safe — fields like company names, skill categories, and project names support
&,_,%, and other special characters automatically. - GitHub Action — automate resume generation on every push. Always have an up-to-date PDF in your repo.
- Supports all profiles — students, working professionals, and researchers are all first-class citizens.
🚀 Quickstart
# config.yml
basic_details:
name: Jane Doe
email: jane@example.com
phone: "+1 555 000 0000"
linkedin: "https://linkedin.com/in/janedoe"
github: "https://github.com/janedoe"
summary: >
Full-stack engineer with 5 years of experience building scalable web applications.
education:
- institution: University of California, Berkeley
location: Berkeley, CA
degree: B.S. Computer Science
year: 2019
gpa: "3.9/4.0"
work:
- company: Acme Corp
role: Senior Engineer
location: San Francisco, CA
start: Jan 2021
end: Present
achievements:
- Led migration to microservices, reducing latency by 40%
- Mentored a team of 4 junior engineers
technologies:
- Python
- Kubernetes
projects:
- name: My Project
link: "https://github.com/janedoe/my-project" # optional — becomes a clickable link in the PDF
start: Mar 2023
end: Present
description:
- Built an open-source CLI tool with 200+ GitHub stars
technologies:
- Python
- Docker
skills:
- category: Languages
featured:
- Python
- TypeScript
- Go
- category: Tools
featured:
- Docker
- Kubernetes
- PostgreSQL
codeurcv run config.yml
# → resume.pdf
💻 Usage
codeurcv run config.yml # generate PDF (outputs resume.pdf in current directory)
codeurcv run config.yml -o ./output # specify output directory
codeurcv run config.yml -n john-doe # custom output filename
codeurcv run config.yml -t minimalist # choose template
codeurcv templates # list available templates
codeurcv --version
📦 Installation
pip install codeurcv
Dependencies
codeurcv requires two external tools to generate PDFs:
Pandoc
Pandoc is a universal document converter used to process Markdown fields.
| Platform | Command |
|---|---|
| Windows | winget install --id JohnMacFarlane.Pandoc or choco install pandoc |
| macOS | brew install pandoc |
| Debian/Ubuntu | sudo apt install pandoc |
| Fedora/RHEL | sudo dnf install pandoc |
| Arch/Manjaro | sudo pacman -S pandoc |
→ Full Pandoc installation guide
pdflatex (TeX Live / MiKTeX)
pdflatex is the LaTeX engine used to render the final PDF.
| Platform | Command |
|---|---|
| Windows | winget install --id MiKTeX.MiKTeX or choco install miktex |
| macOS | brew install --cask mactex |
| Debian/Ubuntu | sudo apt install texlive-latex-base |
| Fedora/RHEL | sudo dnf install texlive-latex |
| Arch/Manjaro | sudo pacman -S texlive-basic |
| openSUSE | sudo zypper install texlive-latex |
→ TeX Live installation guide · MiKTeX for Windows
🖼️ Templates
| Name | Description |
|---|---|
minimalist |
Clean minimalist resume style |
codeurcv run config.yml --template minimalist
📖 Local Setup
See SETUP.md for full developer setup instructions.
⚡ GitHub Action
Automate resume generation on every push using the official GitHub Action.
- uses: crackedngineer/codeurcv-action@v1
with:
config-path: config.yml
out-dir: output
template: minimalist
filename: john-doe-resume
→ codeurcv-action on GitHub · View on Marketplace
🤝 Contributing
See CONTRIBUTING.md — contributions are welcome!
📜 License
MIT © codeurcv contributors
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file codeurcv-0.6.1.tar.gz.
File metadata
- Download URL: codeurcv-0.6.1.tar.gz
- Upload date:
- Size: 13.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88903a447b1c12bbd056a1119ffd3c18d39d71946f9f4d7cdbf4c0c67e74588b
|
|
| MD5 |
114a01bdbea18103a7b3e211fdf69e65
|
|
| BLAKE2b-256 |
7cb3315ff62580b45a7f26936d5fbfa52853cf921c521988fe8984b92ba25422
|
Provenance
The following attestation bundles were made for codeurcv-0.6.1.tar.gz:
Publisher:
release-please.yml on crackedngineer/codeurcv
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
codeurcv-0.6.1.tar.gz -
Subject digest:
88903a447b1c12bbd056a1119ffd3c18d39d71946f9f4d7cdbf4c0c67e74588b - Sigstore transparency entry: 1520033934
- Sigstore integration time:
-
Permalink:
crackedngineer/codeurcv@cb6f189ce900b5a655cfaa1b33684de53bc24651 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/crackedngineer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-please.yml@cb6f189ce900b5a655cfaa1b33684de53bc24651 -
Trigger Event:
push
-
Statement type:
File details
Details for the file codeurcv-0.6.1-py3-none-any.whl.
File metadata
- Download URL: codeurcv-0.6.1-py3-none-any.whl
- Upload date:
- Size: 15.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d32dd754f98ed7c6582e8987b5f126983b40efd76e8c11385e892f8bb5978907
|
|
| MD5 |
a3bdcbd173f34a2182f4361b8bd21e26
|
|
| BLAKE2b-256 |
00caa46652cf147f5ad0340ab2253eb1528ed898537d03dc78b591c127e64685
|
Provenance
The following attestation bundles were made for codeurcv-0.6.1-py3-none-any.whl:
Publisher:
release-please.yml on crackedngineer/codeurcv
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
codeurcv-0.6.1-py3-none-any.whl -
Subject digest:
d32dd754f98ed7c6582e8987b5f126983b40efd76e8c11385e892f8bb5978907 - Sigstore transparency entry: 1520033940
- Sigstore integration time:
-
Permalink:
crackedngineer/codeurcv@cb6f189ce900b5a655cfaa1b33684de53bc24651 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/crackedngineer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-please.yml@cb6f189ce900b5a655cfaa1b33684de53bc24651 -
Trigger Event:
push
-
Statement type: