A professional, data-driven CV generator built with Python and FPDF2. This tool allows you to maintain your CV data in a clean YAML format and generate a polished, two-column PDF layout automatically.
- Data-Driven: Manage all your professional information in a single
cv_data.yamlfile. - Two-Column Layout: Professional design with a main focus on experience and projects, and a sidebar for skills, languages, and education.
- Visual Enhancements: Includes modern icons for contact info, experience dates, locations, and social links.
- Dynamic Skill Tags: Skills and interests are rendered as clean, bordered cards/tags.
- SEO-Friendly Filenames: Automatically generates the output PDF filename based on your name and role (e.g.,
cv_john_doe_software_engineer.pdf). - ASCII Normalization: Handles special characters and accents in filenames for better compatibility.
You can see an example generated CV here: example_cv.pdf
- Python 3.7+
- fpdf2
- PyYAML
- Clone or download this repository.
- Install the required dependencies:
pip install -r requirements.txt- Open
cv_data.yamland fill in your professional details, including experience, projects, skills, and contact information. - Add your profile picture (optional) to
assets/profile.jpg. - Run the generator script:
python generator.pyThe generator will create a PDF file in the root directory following the naming convention: cv_[your_name]_[your_role].pdf.
The generator uses standardized vertical spacing (5mm) between sections in the right column to ensure a balanced layout. You can adjust the SECTION_GAP logic within generator.py if needed.
Place any custom icons in the assets/ directory. The generator currently supports:
phone.pngenvelope-simple.pngmap-pin.pngThe project uses a set of professional gray icons located in theassets/directory. You can swap them or add new ones by following the existing naming convention ingenerator.py.
This project is open-source and free to use for personal career development.