awesomecv-jinja
Generate professional CVs, resumes, and cover letters from YAML/JSON data using Awesome-CV LaTeX templates.
Table of Contents
Features
- 🎨 Professional templates — Based on Awesome-CV LaTeX templates
- 🚀 Simple API — From data to PDF in one function call
- 🔧 Jinja2 templating — Dynamic content generation with custom delimiters
- 🐳 Flexible compilation — Local xelatex or Docker (no LaTeX installation required)
- 📝 Multiple formats — Generate
.tex,.pdf, or both - 🔌 Extensible — Add your own LaTeX templates
Installation
For CLI usage only (recommended):
pipx install awesomecv-jinja
For Python API usage:
pip install awesomecv-jinja
For PDF generation, install xelatex or use Docker. See docs/docker_setup.md.
CLI Usage
# Generate PDF from YAML
acv resume.yaml
# Specify document type and output
acv data.yaml -d cv -o my_cv.pdf
# Generate LaTeX only (no PDF)
acv resume.yaml --tex-only
# Use local xelatex instead of Docker
acv resume.yaml -e xelatex
# Compile existing .tex file
acv resume.tex
See docs/cli_usage.md for complete CLI documentation.
Python API
Generate PDF
from awesomecv_jinja import render_pdf, load_sample
data = load_sample("resume")
render_pdf(data, output="resume.pdf")
Generate LaTeX only
from awesomecv_jinja import render, load_sample
data = load_sample("resume")
render(data, output="resume.tex")
Customize data
from awesomecv_jinja import render_pdf, load_sample
data = load_sample("resume")
data["first_name"] = "Jane"
data["last_name"] = "Smith"
data["position"] = "Software Engineer"
render_pdf(data, output="jane_smith.pdf")
Document types
from awesomecv_jinja import render_pdf, load_sample
# Resume
render_pdf(load_sample("resume"), doc_type="resume", output="resume.pdf")
# Academic CV
render_pdf(load_sample("cv"), doc_type="cv", output="cv.pdf")
# Cover letter
render_pdf(load_sample("coverletter"), doc_type="coverletter", output="letter.pdf")
Advanced: Use Renderer class
from awesomecv_jinja import Renderer, load_sample
renderer = Renderer(template="awesome_cv")
renderer.render("resume", load_sample("resume"), output="resume.tex")
# List available document types
print(renderer.list_document_types()) # ['resume', 'cv', 'coverletter']
Requirements
- Python 3.10+
- For PDF generation: xelatex (
texlive-full) or Docker
Examples
See examples/ directory:
demo.py— Python API examplespdf_example.py— PDF generationexample_cli.yaml— Sample YAML input
uv run python examples/demo.py
Development
# Fork the repository on GitHub
git clone https://github.com/<your_username>/awesomecv_jinja.git
cd awesomecv_jinja
uv sync
# do something
uv run pytest
git checkout -b feature-branch
git commit -m "Your commit message"
git push origin feature-branch
See CONTRIBUTING.md for contribution guidelines.
Credits
Based on Awesome-CV by @posquit0.
License
- Code: MIT
- Awesome-CV templates: LPPL-1.3c
Metadata
Release files for awesomecv-jinja 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| awesomecv_jinja-0.1.0.tar.gz | 24.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| awesomecv_jinja-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 62.6 kB
Release files / awesomecv_jinja-0.1.0.tar.gz
| Download URL | awesomecv_jinja-0.1.0.tar.gz |
|---|---|
| Size | 24.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9943cc73e3483c087e651037c60128ecad56ddece53394c081fb1ad7b8fbe5b2
|
|
BLAKE2b-256 checksum How to use checksums |
0cfdf72d0cc069cedff4c50c6489136ef0ab901286461d809eeee9b21a77fb51
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.19
|
Release files / awesomecv_jinja-0.1.0-py3-none-any.whl
| Download URL | awesomecv_jinja-0.1.0-py3-none-any.whl |
|---|---|
| Size | 38.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
94491dc9c38ad88857f3a2cfbecfbb3adbddb4a33801b6fa8c8e15d248cc765e
|
|
BLAKE2b-256 checksum How to use checksums |
36958badb2051e0c3b71804734fee173045a86577d99e55a67241b360bc3ada2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.19
|