A powerful and flexible web-based resume generator using Python, Jinja2, and Playwright.
- Generate a static website and PDF version of your resume
- Customize your resume content using YAML
- Choose from multiple HTML templates
- Automatically deploy to GitHub Pages
- Easy to use and modify
View a live demo: https://disaa0.github.io/web-resume
- Use this template to create a new repository
- Clone your new repository
- Set up a virtual environment:
python -m venv .venv source .venv/bin/activate # On Windows, use `.venv\Scripts\activate`
- Install dependencies:
pip install -r requirements.txt playwright install chromium
- Customize your resume in
metadata/metadata.yaml
- Run the generator:
python app.py
- Your resume will be generated in the
dist
folder
.
├── app.py # Main application script
├── assets/ # Static assets (images, icons)
├── dist/ # Generated output (HTML, PDF)
├── metadata/ # Resume content (YAML)
├── templates/ # HTML templates
├── tests/ # Unit tests
├── previews/ # Template previews
├── requirements.txt # Python dependencies
└── README.md # This file
Edit metadata/metadata.yaml
to update your resume content. This file includes:
- Personal information
- Work experience
- Education
- Skills
- Projects
- Choose a template by updating the
template
field inmetadata/metadata.yaml
:template: modern.html # or formal.html
- Modify existing templates or create new ones in the
templates/
directory - Customize styles by editing the CSS within the template files
Place your profile photo, favicon, or other assets in the assets/
directory and update the references in metadata/metadata.yaml
.
Run python app.py
to generate your resume. This will:
- Create a static HTML version in
dist/index.html
- Generate a PDF version (if enabled in metadata)
- Copy necessary assets to the
dist/
folder
- Push your changes to GitHub
- Enable GitHub Pages in your repository settings
- Set the source to the
gh-pages
branch - Your resume will be available at
https://[username].github.io/[repository-name]
- Note: naming the repository
[github_username].github.io
will publish the website to https://[github_username]
.github.io
Choose from the selection of templates to create your resume.
To select a template, update the template
field in metadata/metadata.yaml
:
template: modern.html # or formal.html
Contributions are welcome! Please feel free to submit a Pull Request.