https://github.com/mancrurod/resume-optimization
βResume-Optimization automates resume enhancement using AI by converting .docx resumes into Markdown, tailoring them to specific job descriptions, and exporting the results in HTML and PDF formats.
https://github.com/mancrurod/resume-optimization
automation career-development document-processing gpt-integration job-matching markdown-to-html natural-langauge-processing pdf-generation python resume-optimization resume-parser solid-principles
Last synced: about 1 month ago
JSON representation
βResume-Optimization automates resume enhancement using AI by converting .docx resumes into Markdown, tailoring them to specific job descriptions, and exporting the results in HTML and PDF formats.
- Host: GitHub
- URL: https://github.com/mancrurod/resume-optimization
- Owner: mancrurod
- Created: 2025-03-19T13:36:22.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2025-04-05T14:18:07.000Z (about 1 month ago)
- Last Synced: 2025-04-05T15:24:37.289Z (about 1 month ago)
- Topics: automation, career-development, document-processing, gpt-integration, job-matching, markdown-to-html, natural-langauge-processing, pdf-generation, python, resume-optimization, resume-parser, solid-principles
- Language: Python
- Homepage:
- Size: 21.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# π Resume Optimization
Welcome to **Resume Optimization** β a modular, extensible pipeline that transforms your `.docx` resume into a customized, ATS-friendly PDF, fine-tuned for a specific job offer using LLMs like GPT-4o-mini or Gemini.
---
## π What This Project Does
1. **Converts** your `.docx` resume into clean, structured `Markdown`.
2. **Builds a dynamic LLM prompt** based on your resume and a job description.
3. **Adapts** the content using GPT or Gemini to match job requirements.
4. **Exports** the adapted Markdown to beautiful `HTML` and `PDF`.
5. **Opens a visual editor** so you can tweak the final HTML by hand.
6. **Logs everything** and validates your files to avoid surprises.
7. **Previews the final PDF** automatically.---
## π Project Structure
```
Resume-Optimization/
β
βββ original_docx/ # Original .docx resumes (input)
βββ processed_cv/ # Intermediate Markdown, HTML, and prompt
βββ pdf_cv/ # Final exported PDFs
βββ cv_template/ # Optional base resume templates
βββ logs/ # Pipeline logs (.log) per execution
β
βββ docs/ # Full project documentation
β βββ index.md # Docs landing page
β βββ overview.md
β βββ installation.md
β βββ usage.md
β βββ scripts/ # Script-specific docs
β βββ convert_to_md.md
β βββ optimize_resume.md
β βββ adapt_resume.md
β βββ export_resume.md
β βββ main.md
β
βββ src/ # Modular Python source code
β βββ convert_to_md.py
β βββ optimize_resume.py
β βββ adapt_resume.py
β βββ export_resume.py
β βββ __init__.py
β
βββ .env # π DO NOT COMMIT β contains API keys
βββ .env.example # β Safe template to share
βββ job_description.txt # Paste job ad text here
βββ main.py # Full pipeline: DOCX β Markdown β GPT β PDF
βββ requirements.txt
βββ environment.yml
βββ README.md
βββ CHANGELOG.md # Project version history
βββ PORTFOLIO_CHECKLIST.md # Personal quality checklist for portfolio readiness
```---
## π€ Pipeline Overview
### 1. Convert DOCX β Markdown
```bash
python src/convert_to_md.py
```Creates a structured Markdown version of your resume with headers, lists, formatting, and hyperlinks.
### 2. Generate LLM Prompt
```bash
python src/optimize_resume.py
```Generates a detailed, language-aware prompt using your resume and a job description.
### 3. Adapt Resume with LLM
```bash
python src/adapt_resume.py
```Uses OpenAI's GPT-4o-mini or Gemini as fallback to tailor your resume to the job description.
### 4. Export to HTML + Edit
```bash
python src/export_resume.py
```Converts the adapted Markdown to HTML and opens a WYSIWYG editor to polish the formatting.
### 5. Generate PDF
Done automatically when you run the pipeline β and the PDF opens instantly when done β
### π Full Pipeline (Recommended)
```bash
python main.py
```This script orchestrates the entire process, including file validation, logging, LLM calls, editing, exporting, and preview.
---
## β¨ Features
- β **End-to-end pipeline** from `.docx` to `PDF`.
- βοΈ **Visual HTML editor** (PyQt5-based).
- π§ **Smart prompt generation** with multilingual LLM support.
- π **Logging per execution** (`logs/resume_YYYYMMDD_HHMMSS.log`).
- π **Validation** of `.docx` inputs before processing.
- π§Ύ **`.env.example`** for easy setup.
- πΌοΈ **Auto-preview** of the final PDF on completion.
- π§± **Modular code**, fully SOLID and documented.---
## π Requirements
- Python 3.10+
- [`wkhtmltopdf`](https://wkhtmltopdf.org/) (must be in your system PATH)
- Key packages:
- `python-docx`, `markdown2`, `pdfkit`, `openai`, `PyQt5`, `google-generativeai`Install with pip:
```bash
pip install -r requirements.txt
```Or with Conda:
```bash
conda env create -f environment.yml
conda activate resume_optimization
```---
## π Setup
1. Copy `.env.example` β `.env`
2. Add your API keys:```dotenv
OPENAI_API_KEY=your_openai_key_here
GOOGLE_API_KEY=your_gemini_key_here
```---
## π Roadmap
- [x] Add logging system and `.log` files
- [x] Validate `.docx` input structure
- [x] Previsualize exported PDF automatically
- [x] Add `.env.example` for safer sharing
- [ ] Add versioned filenames with timestamps
- [ ] Batch mode: multiple resumes / jobs
- [ ] Streamlit web version (GUI)
- [ ] Add Claude or LLama2 support---
## π¨βπ» Author
Crafted with care by **Manuel Cruz RodrΓguez**,
Graduate in Hispanic Philology, NLP specialist, and AI enthusiast.> βBecause your skills deserve better than a Word template.β
π [LinkedIn](https://www.linkedin.com/in/mancrurod/)
π« Feel free to fork, star, or open issues for feedback!---
## π License
MIT β free to use, modify, and share.
Please donβt generate Comic Sans PDFs. π₯²