Generate beautiful, consistent resumes from YAML using LaTeX and Jinja2 templates.
I got tired of manually tracking down 8 different places to update my resume, so I made this! This is a simple Python script that takes a YAML file with your resume data and generates a PDF using LaTeX. It also includes a GitHub Actions workflow to automatically build and release your resume on every push.
- 📝 Edit your resume in YAML – Quickly update even from the github site
- 🎨 Customizable LaTeX template for professional results
- ⚡ One-command PDF generation (
python resume_to_pdf.py) - 🤖 GitHub Actions workflow to auto-build and release your PDF on every push
- 🛠️ Easy to extend for your own sections and styling
- 📦 Local support – works locally as well as from github actions
- Commit Based Actions – Automatically build and release your resume on every push to
main
Note
Commits can be marked with [skip] to skip the build and release process, [release] to trigger a release, or [portfolio] to trigger a release and make a pull request to the portfolio repo.
git clone https://github.com/PhantomOffKanagawa/resume-generator.git
cd resume-generatorpip install -r requirements.txt
# Or manually:
pip install jinja2 pyyaml
# You also need a LaTeX distribution (MiKTeX, TeX Live, etc.)Edit resume.yaml with your information.
python resume_to_pdf.pyYour resume will be generated as resume.pdf in the project root.
This repo includes .github/workflows/release-resume.yml to:
- Build your PDF on every push to
main - Attach the PDF to a GitHub Release
To enable:
- Push your repo to GitHub.
- Make changes to
resume.yamlor the template and push – your PDF will be built and released automatically!
- Edit
resume_template.texto change the look and layout. - Use Jinja2 syntax (
{{ variable }}) to insert YAML data.
To test the GitHub Actions workflow locally and see the output PDF:
- Install
act - Run:
The PDF will be generated in your local directory as resume.pdf.
act --bind
Pull requests and issues are welcome! Help improve the template, workflow, or add new features.
Made with ❤️ by PhantomOffKanagawa