A Python-based resume generator that creates beautiful HTML and PDF resumes from TOML data using Jinja2 templates.
- 10 Resume Templates: 5 light themes + 5 dark themes
- HTML & PDF Output: Generate both formats for easy distribution
- Responsive Design: Works on desktop, tablet, and mobile
- Print-Friendly: Optimized for both screen and print
- Customizable: Easy to modify templates and add new styles
-
Install Dependencies:
# Install all dependencies (including optional PDF support) pip install -r requirements.txt # Or install manually pip install jinja2 weasyprint
Note: This project requires Python 3.11+ (uses built-in
tomllib). -
Generate Resumes:
python pysume.py resume.toml
The script requires the path to your TOML resume file as an argument.
-
View Results:
- HTML files:
resumes/resume_*.html - PDF files:
resumes/resume_*.pdf(if WeasyPrint installed)
- HTML files:
- Default: Colorful Bootstrap design with gradients
- Minimal: Clean, minimalist design
- Corporate: Professional business style
- Creative: Modern, vibrant design with animations
- Compact: Single-page optimized layout
- Default Dark: Dark version of the default template
- Minimal Dark: Dark minimalist design
- Corporate Dark: Professional dark theme
- Creative Dark: Vibrant dark design with effects
- Compact Dark: Dark single-page layout
- Create a new template file in
templates/ - Add it to the
templatesdictionary inpysume.py- Note: If your template filename contains
dark(e.g.,resume_template_minimal_dark.html), it will automatically trigger dark-theme CSS overrides in the generated PDF and HTML for that template.
- Note: If your template filename contains
- Run the script to generate your HTML and PDF resumes.
pysume/
├── templates/ # Jinja2 template files
├── resumes/ # Generated HTML and PDF files
├── examples/ # Example resume input files
├── pysume.py # Main generation script
├── requirements.txt # Python dependencies
├── resume.toml # Your resume data (create from example)
├── resume_example.toml # Example resume template
└── README.md # Project documentation (this file)
- Required:
jinja2- Template enginetomllib- TOML parser (Python 3.11+ built-in)
- Optional:
weasyprint- PDF generation
See requirements.txt for specific versions.
Python Version: Python 3.11+ is required (for built-in tomllib support). Use tomli if you want to run this on a version < 3.11 for some reason.
- Linux: Install system dependencies (pango, harfbuzz, etc.)
- macOS: Install via Homebrew:
brew install pango - Windows: Should work out of the box
- Check that template files are in the
templates/folder - Verify Jinja2 syntax in templates
- Ensure all required data fields are present in your TOML file
- Make sure you provide the TOML file path as an argument:
python pysume.py <path/to/resume.toml> - Verify the TOML file path is correct and the file exists
-
Template Color Issues: Some templates may have color schemes that don't render well or have poor contrast. If you encounter this, try a different template or modify the template's CSS directly.
-
PDF Generation Problems: Some templates may break or render incorrectly when converted to PDF format. This is often due to:
- Complex CSS features not supported by WeasyPrint
- Advanced animations or transitions
- Certain layout properties that don't translate well to PDF
Workaround: If a template fails to generate a PDF, try using the HTML version instead, or use your browser's print-to-PDF feature on the HTML file.