Skip to main content

YAML -> LaTeX -> PDF resume builder with strict theme schemas.

Project description

resumex

PyPI Tests

An easy, YAML-based, theme-driven resume generator. resumex takes your structured data and produces professional LaTeX and PDF resumes with strict schema validation.

Features

  • YAML-first: Store your career data in a clean, versionable format.
  • Strict Validation: Powered by Pydantic to ensure your data matches your theme's requirements.
  • Theme System: Fully customizable layouts using Jinja2 templates.
  • Dual Usage: Use it via CLI or as a Python module in your own scripts.
  • Smart Compilation: Automatically handles LaTeX runs using latexmk or falls back to direct engines like pdflatex.

Installation

Requirements

  • Python: 3.12 or higher.
  • LaTeX: A distribution (like TeX Live, MacTeX, or MiKTeX) providing latexmk (recommended) or pdflatex.

Using uv (Recommended)

uv tool install resumex-py

Using pip

pip install resumex-py

Quickstart

  1. Create your resume: Save your data in resume.yaml (see examples/resume.yaml).
  2. Generate PDF:
    resumex build resume.yaml --out build
    
  3. Generate TeX only:
    resumex tex resume.yaml --out build
    

Custom Themes

resumex allows you to go beyond the bundled themes by creating your own.

Using a local theme

You can point the generator to a folder containing your theme:

resumex build resume.yaml --theme ./path/to/my-theme

Theme Structure

A theme directory must contain:

  • theme.yaml: Configuration for allowed sections, templates, and models.
  • templates/main.tex.j2: The main entry point for the resume layout.
  • partials/: Reusable Jinja2 fragments for specific sections.

To start a new theme, copy the default theme data from the package:

cp -r src/resumex/themes_data/default ./my-theme

Module Usage

You can also integrate resumex into your Python applications:

from pathlib import Path
from resumex.engine.pipeline import build_pdf

result = build_pdf(
    yaml_path=Path("resume.yaml"),
    theme_id="default",  # or a path like "./my-theme"
    out_dir=Path("output")
)

print(f"Resume generated at: {result.pdf_path}")

Development & Testing

We use uv for development. To run tests:

uv run pytest tests/

License

MIT

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

resumex_py-1.0.0.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

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

resumex_py-1.0.0-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file resumex_py-1.0.0.tar.gz.

File metadata

  • Download URL: resumex_py-1.0.0.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for resumex_py-1.0.0.tar.gz
Algorithm Hash digest
SHA256 727e88b1a74939ab5e565b07908be3ad9d0a9234535232678ffe116302868a8c
MD5 3a61bc4e2709a8a20a42c8ce70e4bbf8
BLAKE2b-256 e8d4dfc993097996aa0ee59d39b8f368568a51048aba723b2d5b1dc1f6b27523

See more details on using hashes here.

Provenance

The following attestation bundles were made for resumex_py-1.0.0.tar.gz:

Publisher: publish.yml on rsm-vsivasankaran/resumex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file resumex_py-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: resumex_py-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 18.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for resumex_py-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 02b6077f8f042a230c36e5f5513bce2089e257abe34c14683d16a51462418c5b
MD5 e7aafa166ab71ed7e1f9cf2350afe792
BLAKE2b-256 28af83b1ed72a54d5b0f5830f75cd7e86852e6f999244608d50ab9826fdc5bbf

See more details on using hashes here.

Provenance

The following attestation bundles were made for resumex_py-1.0.0-py3-none-any.whl:

Publisher: publish.yml on rsm-vsivasankaran/resumex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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