Transform a structured YAML resume into tailored, professional-grade PDF and DOCX formats—fully customized for any job description using Large Language Models.
- 🧩 YAML to JSON: Converts structured resume data into normalized JSON format with default fallbacks.
- 🎨 LaTeX Integration: Dynamically fills out a LaTeX template with resume content.
- 🧠 LLM Personalization: Tailors summary, experience, projects, and skills to match a job description (via Perplexity API).
- 📄 Multi-format Output: Outputs resume in both PDF and DOCX formats.
- 🧹 Clean Compilation: Handles LaTeX auxiliary files post-compilation.
- Python 3
- PyYAML
- LaTeX (xelatex)
- pdf2docx
- Perplexity API (LLM via
sonar-pro)
ai-resume-builder/
├── data/
│ ├── resume.yaml # ✅ Your YAML resume file (based on template.yaml)
│ ├── template.yaml # 📋 YAML structure template for reference
│ ├── job_description.txt # 📝 Paste the job description here
│ └── resume.tex # 🎨 Base LaTeX template
├── config.yml # ⚙️ Edit this for your Perplexity API key and paths
├── 1_parse_resume_yaml.py # 🔁 Convert YAML to JSON (with field normalization)
├── 3_resume_generator_tex.py # 🛠️ Injects resume data into LaTeX template
├── 4_tex_to_pdf.py # 📄 Compiles LaTeX to PDF and converts to DOCX
├── requirements.txt # 📦 Dependencies list
└── README.md # 📘 You’re here!
Follow these steps to generate a tailored PDF/DOCX resume using your own data and job description:
- Go to
data/template.yamlto view the structure of the resume YAML. - Create your own resume file following that structure.
- Save it as
data/resume.yaml.
✅ A sampleresume.yamlis already provided for reference.
- Open the
config.ymlfile. - Update the following fields:
api_key: "your-perplexity-api-key-here" # 🔑 Required model: "sonar-pro" # 🧠 Model name resume_yaml: "data/resume.yaml" # 📄 Your actual resume file job_description_file: "data/job_description.txt" # 📋 Paste your JD here
⚠️ Do not change the rest of the keys in the config file.
- Open data/job_description.txt and paste the complete job description of the position you want to apply for. Save and close the file.
- Run the following command to install all necessary dependencies:
pip install -r requirements.txt
- Run the following command
python main.py -o filename
- 📥 Download MikTeX: https://miktex.org/download
- 🔧 Make sure to add xelatex to your system PATH.
⚠️ Currently, PDF generation is supported only on Windows using MikTeX.- 🍏 For macOS, a .tex file is generated, but PDF must be compiled manually using an online editor like Overleaf.
🙏 Credits
- 📄 Resume template adapted from the ASU Resume Template by Vignesh V Iyer on Overleaf.