Resume generator from YAML configs
Project description
MTeck Resume Parser
A type-safe resume generator that creates LaTeX resumes from YAML data files using Jinja2 templates.
Features
- Type-Safe: Full Pydantic validation for all resume data
- Flexible: Support for multiple profiles from the same personal data
- Self-Contained: Each resume example includes all its own data
- Template-Based: Use Jinja2 templates for complete layout control
- CLI: Simple command-line interface
Installation
# Install with uv (recommended)
uv sync
# Or with pip
pip install -e .
Quick Start
Generate a resume by specifying:
-d: Data directory containing your YAML files-p: Profile name (from profiles.yml)-t: LaTeX template-o: Output file
# Generate Backend Developer resume
resumodel -d examples/jane_doe \
-p DEVBACKEND \
-t templates/resume.tex.j2 \
-o output/resume.tex
Directory Structure
Each resume example is self-contained:
examples/jane_doe/
├── personal_info.yml # Personal contact information
├── profiles.yml # Profile definitions (DATASCIENTIST, etc.)
├── experiences.yml # Work experiences
├── projects.yml # Projects
├── education.yml # Education history
├── certifications.yml # Certifications
├── research_papers.yml # Research papers
├── clubs_and_associations.yml # Clubs & associations
└── hobbies.yml # Hobbies
YAML File Formats
personal_info.yml
personal_info:
name: "Your Name"
phone: "+1 234 567 8900"
email: "your.email@example.com"
linkedin: "https://linkedin.com/in/yourprofile"
github: "https://github.com/yourusername"
location: "City, Country"
profiles.yml
Define multiple resume profiles:
profiles:
DATASCIENTIST:
title: "Data Scientist & ML Engineer"
summary: "Experienced data scientist..."
skills:
- category: "Machine Learning"
items: ["Python", "TensorFlow", "PyTorch"]
experiences: ["EXP1", "EXP2"] # Reference IDs
projects: ["PROJ1", "PROJ2"]
education: ["EDU1"]
certifications: []
research_papers: []
clubs_and_associations: []
hobbies: []
experiences.yml
experiences:
EXP1:
title: "Senior Data Scientist"
company: "Tech Corp"
date: "Jan 2020 - Present"
location: "San Francisco, CA"
bullet_points:
- "Built ML models for recommendation system"
- "Improved accuracy by 25%"
projects.yml
projects:
PROJ1:
name: "Awesome Project"
link: "https://github.com/user/project"
description: "Description of the project"
Development
# Install dev dependencies
uv pip install -e ".[dev]"
# Run tests
uv run pytest tests/ -v
# Type checking
uv run mypy src/resumodel/
# Run formatter
uv run ruff format src/ tests/
Project Structure
mteck-resume-parser/
├── src/resumodel/
│ ├── __init__.py
│ ├── cli.py # Command-line interface
│ ├── models.py # Pydantic models
│ ├── loader.py # YAML loading & validation
│ └── generator.py # Jinja2 template rendering
├── examples/
│ ├── hermann/ # Example 1 (self-contained)
│ └── jane_backend/ # Example 2 (self-contained)
├── templates/
│ └── resume.tex.j2 # LaTeX template
├── tests/
│ ├── test_models.py
│ ├── test_loader.py
│ └── test_generator.py
└── pyproject.toml
Creating Your Own Resume
-
Create a directory for your resume (e.g.,
examples/yourname/) -
Add personal_info.yml:
personal_info: name: "Your Name" email: "your@email.com" # ... other fields
-
Create data files (experiences.yml, projects.yml, etc.)
-
Define profiles in profiles.yml
-
Generate:
resumodel -d examples/yourname -p YOURPROFILE \ -t templates/resume.tex.j2 -o output/yourname.tex
License
This project uses two licenses:
- Code is released under the MIT License.
- Resume templates and derived text are provided under CC BY 4.0 and require attribution.
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 resumodel-0.1.0.tar.gz.
File metadata
- Download URL: resumodel-0.1.0.tar.gz
- Upload date:
- Size: 14.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9625fc82aebdfe4dd51375902ee075954f2fd440a285b1dfa66c9a5b31a5fd2d
|
|
| MD5 |
ee40eddd4e893fb142fb737efc3eb684
|
|
| BLAKE2b-256 |
06411af7a7b8c885a9ad7c0ac5d35973a89ba6a3e1b9b0eba6748e0c23ffdffa
|
File details
Details for the file resumodel-0.1.0-py3-none-any.whl.
File metadata
- Download URL: resumodel-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e073a2bbc4373a8ae36c2a4686ea76dd6fbb0be28f98d8a57438606991e5a9b
|
|
| MD5 |
f5b1560e172e85c627a76fb4b4fd0867
|
|
| BLAKE2b-256 |
d3d4a699fb39831f4e306a733fd008f852d7dcd3af91ea005e89cc154c98b747
|