An open API service indexing awesome lists of open source software.

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.

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. πŸ₯²