Skip to main content

Beautiful LaTeX CV templates powered by Jinja2

Project description

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 examples
  • pdf_example.py — PDF generation
  • example_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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

awesomecv_jinja-0.1.0.tar.gz (24.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

awesomecv_jinja-0.1.0-py3-none-any.whl (38.0 kB view details)

Uploaded Python 3

File details

Details for the file awesomecv_jinja-0.1.0.tar.gz.

File metadata

  • Download URL: awesomecv_jinja-0.1.0.tar.gz
  • Upload date:
  • Size: 24.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for awesomecv_jinja-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9943cc73e3483c087e651037c60128ecad56ddece53394c081fb1ad7b8fbe5b2
MD5 2193d521321e1df05041fd29d327aea8
BLAKE2b-256 0cfdf72d0cc069cedff4c50c6489136ef0ab901286461d809eeee9b21a77fb51

See more details on using hashes here.

File details

Details for the file awesomecv_jinja-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for awesomecv_jinja-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 94491dc9c38ad88857f3a2cfbecfbb3adbddb4a33801b6fa8c8e15d248cc765e
MD5 d63dfd1af42fa0702ce91f6d6ab9d970
BLAKE2b-256 36958badb2051e0c3b71804734fee173045a86577d99e55a67241b360bc3ada2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page