An intelligent Streamlit web application that summarizes resumes, analyzes skill gaps, and generates personalized cover letters using state-of-the-art NLP models.
✅ Resume Summarization – Automatically condense lengthy resumes into clear, structured summaries using a transformer-based summarization model.
✅ Cover Letter Generation – Instantly create tailored, job-specific cover letters with a prompt-tuned large language model.
✅ Skill Gap Analysis – Compare your resume’s skill set with a job description to identify missing skills and improvement areas.
✅ PDF Export – Download professional-quality summaries and cover letters as ready-to-send PDF files.
✅ End-to-End Workflow – Upload → Extract → Summarize → Analyze → Generate → Download — all in one place.
| Component | Tool / Library | Purpose |
|---|---|---|
| 🖹 PDF Parsing | pdfplumber |
Extracts text content from uploaded resumes |
| ✂️ Summarization Model | facebook/bart-large-cnn |
Generates structured resume summaries |
| ✉️ Cover Letter Generation | google/flan-t5-large |
Creates personalized cover letters from context |
| 🧪 Skill Analysis | rapidfuzz, scikit-learn |
Detects skill overlap and calculates similarity |
| 📄 PDF Export | fpdf |
Generates downloadable summary and letter PDFs |
| 🖥️ UI | Streamlit |
Interactive web-based interface |
resume-cover-gen/
│
├─ app.py # Main Streamlit app
├─ generate_letter.py # Cover letter generation logic
├─ summarize.py # Resume summarization logic
├─ skill_gap.py # Skill extraction & similarity analysis
├─ model_loader.py # Model loading and device configuration
├─ pdf_utils.py # PDF text extraction
├─ pdf_writer.py # PDF export and formatting
├─ prompt_templates.py # LLM prompt templates
├─ README.md
├─ LICENSE
└─ requirements.txt
- Clone the repository
git clone https://github.com/yourusername/resume-cover-gen.git
cd resume-cover-gen- Create a virtual environment
python -m venv venv
source venv/bin/activate # (Linux/Mac)
venv\Scripts\activate # (Windows)- Install dependencies
pip install -r requirements.txt- Run the Streamlit app
streamlit run app.py- Use the web interface
- Upload your resume (PDF)
- Paste a job description
- Click Summarize Resume
- Generate a Cover Letter
- View Skill Gap Analysis
- Download your final documents as PDF
- Upload a resume (
.pdf) - The app summarizes the resume into key highlights.
- Paste a job description — the app analyzes skill overlap.
- Generate a custom-tailored cover letter instantly.
- Download both as ready-to-send PDF files.
- Add multilingual support (Sinhala, Tamil, English)
- Support image-based resumes (OCR)
- Integration with LinkedIn job scraping
- Enhanced skill classification with domain-specific models
This project is licensed under the MIT License. See LICENSE for details.
Contributions are welcome! Feel free to fork this repo, create a branch, and submit a pull request.
This project was created to make the job application process faster, smarter, and more personalized — turning resumes into actionable insights and generating compelling cover letters with AI 🚀
Feel free to add any issues you find.
🔗 LinkedIn : https://www.linkedin.com/in/deshan-senanayake-7a0695292/
🔗 GitHub : https://github.com/Deshan-Senanayake


