Skip to content

Commit 3e560ad

Browse files
Update README.md to enhance project overview, key features, and installation instructions
1 parent 16137ce commit 3e560ad

File tree

2 files changed

+134
-77
lines changed

2 files changed

+134
-77
lines changed

README.md

Lines changed: 134 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -2,116 +2,173 @@
22
**An AI-powered ATS-optimized cover letter generator leveraging LLaMA-3.1-8B-Instant via Groq's API.**
33

44
![GitHub stars](https://img.shields.io/github/stars/MohammedNasserAhmed/ats-cover-letter-generator?style=social)
5-
![GitHub license](https://img.shields.io/github/license/MohammedNasserAhmed/ats-cover-letter-generator) <img src="https://img.shields.io/badge/Python-3.12-blue" alt="Python version"> <img src="https://img.shields.io/badge/Streamlit-1.26.0-red" alt="Streamlit">
5+
![GitHub license](https://img.shields.io/github/license/MohammedNasserAhmed/ats-cover-letter-generator) <img src="https://img.shields.io/badge/Python-3.12-blue" alt="Python version"> <img src="https://img.shields.io/badge/Streamlit-1.26.0-red" alt="Streamlit"> ![Docker](https://img.shields.io/badge/Docker-Supported-blue?logo=docker)
66

77
---
88

9-
## **✨ Key Features**
9+
## **🌟 Overview**
1010

11-
**Resume/CV Parsing** – Extracts text from uploaded PDFs
12-
**Job Description Input** – Paste job details or fetch via URL
13-
**AI-Powered Matching** – LLaMA-3.1-8B-Instant tailors cover letters dynamically
14-
**ATS Optimization** – Ensures compliance with hiring algorithms
15-
**Side-by-Side Review** – Compare your resume with the job description
16-
**Professional PDF Output** – Generates a polished, ready-to-submit cover letter
17-
**Signature Generation** – Auto-generates a digital signature
18-
**Cloud-Ready Deployment** – Compatible with Streamlit Cloud & Hugging Face Spaces
11+
The **ATS Cover Letter Generator** bridges the gap between job seekers and employers by leveraging AI to create perfectly tailored, Applicant Tracking System (ATS) optimized cover letters. Using Groq's high-performance LLaMA-3.1-8B-Instant API, the application analyzes your resume and job descriptions to craft compelling cover letters that increase your chances of interview selection.
1912

20-
---
13+
## **✨ Key Features**
2114

22-
## **🚀 Installation & Setup**
15+
| Feature | Description |
16+
|---------|-------------|
17+
| 📄 **Resume/CV Parsing** | Extracts text from uploaded PDFs automatically |
18+
| 🔍 **Job Description Analysis** | Paste job details directly or fetch via URL |
19+
| 🧠 **AI-Powered Matching** | LLaMA-3.1-8B-Instant tailors content to highlight relevant skills |
20+
| 🎯 **ATS Optimization** | Strategic keyword placement ensures visibility to hiring algorithms |
21+
| 👁️ **Side-by-Side Review** | Compare your resume with job requirements in real-time |
22+
| 📑 **Professional PDF Output** | Generate polished, ready-to-submit cover letters |
23+
| ✍️ **Digital Signature** | Auto-generates signature for a professional touch |
24+
| ☁️ **Flexible Deployment** | Deploy via Docker, Streamlit Cloud, or Hugging Face Spaces |
2325

24-
### **🔹 Prerequisites**
25-
- Python **3.8+** (Recommended: 3.12)
26-
- Groq API Key ([Get one here](https://console.groq.com/))
26+
## **🚀 Quick Start**
2727

28-
### **🔹 Local Setup**
28+
### **Using Docker (Recommended)**
2929

30-
1⃣ **Clone the repository:**
31-
```bash
32-
git clone https://github.com/MohammedNasserAhmed/ats-cover-letter-generator.git
33-
cd ats-cover-letter-generator
34-
```
30+
```bash
31+
# Pull the image
32+
docker pull mohammednasserahmed/ats-cover-letter-generator:latest
3533

36-
2⃣ **Create & activate a virtual environment:**
37-
```bash
38-
python -m venv venv
39-
source venv/bin/activate # On Windows: venv\Scripts\activate
40-
```
34+
# Run the container
35+
docker run -d -p 8501:8501 -e GROQ_API_KEY=your_groq_api_key_here mohammednasserahmed/ats-cover-letter-generator
36+
```
4137

42-
3⃣ **Install dependencies:**
43-
```bash
44-
pip install -r requirements.txt
45-
```
38+
### **Local Installation**
4639

47-
4⃣ **Set up environment variables:**
48-
Create a `.env` file and add your API key:
49-
```
50-
GROQ_API_KEY=your_groq_api_key_here
51-
```
40+
```bash
41+
# Clone the repository
42+
git clone https://github.com/MohammedNasserAhmed/ats-cover-letter-generator.git
43+
cd ats-cover-letter-generator
5244

53-
5⃣ **Run the application:**
54-
```bash
55-
streamlit run src/ats_cover_letter_generator/app.py
56-
```
45+
# Create & activate virtual environment
46+
python -m venv venv
47+
source venv/bin/activate # On Windows: venv\Scripts\activate
5748

58-
6⃣ **Access the app** at [`http://localhost:8501`](http://localhost:8501)
49+
# Install dependencies
50+
pip install -r requirements.txt
5951

60-
---
52+
# Set up environment variable
53+
echo "GROQ_API_KEY=your_groq_api_key_here" > .env
6154

62-
## **🌐 Deployment Options**
55+
# Run the application
56+
streamlit run src/ats_cover_letter_generator/app.py
57+
```
6358

64-
### **1⃣ Deploy on Streamlit Cloud**
65-
1. Push your code to a **public GitHub repository**
66-
2. Log in to [Streamlit Cloud](https://streamlit.io/cloud)
67-
3. Create a new app & select your repository
68-
4. **Add API secrets** under **"Secrets Management"**
69-
5. Click **Deploy** 🎉
59+
Then access the app at [http://localhost:8501](http://localhost:8501)
7060

71-
---
61+
## **🌐 Deployment Options**
7262

73-
### **2⃣ Deploy on Hugging Face Spaces**
74-
1. Create a Hugging Face account
75-
2. Create a new **Space** (select **Streamlit SDK**)
76-
3. Upload your app files
77-
4. Add `GROQ_API_KEY` in **Settings → Secrets**
78-
5. Deploy 🚀
63+
### **🐳 Docker Deployment**
7964

80-
---
65+
```bash
66+
# Build the Docker image
67+
docker build -t ats-cover-letter-generator .
68+
69+
# Run the container
70+
docker run -d -p 8501:8501 -e GROQ_API_KEY=your_groq_api_key_here ats-cover-letter-generator
71+
```
72+
73+
### **☁️ Streamlit Cloud**
74+
75+
1. Fork this repository to your GitHub account
76+
2. Log in to [Streamlit Cloud](https://streamlit.io/cloud)
77+
3. Create a new app & point to your forked repository
78+
4. Set the main file path to `src/ats_cover_letter_generator/app.py`
79+
5. Add your `GROQ_API_KEY` under "Secrets Management"
80+
6. Deploy and share your application
81+
82+
### **🤗 Hugging Face Spaces**
83+
84+
1. Create a Hugging Face account
85+
2. Create a new Space (select Streamlit SDK)
86+
3. Configure the repository settings to point to your GitHub repo
87+
4. Add `GROQ_API_KEY` in Settings → Secrets
88+
5. Deploy and share your Space URL
89+
90+
### **🖥️ Production Server (Background Process)**
8191

82-
### **3⃣ Run on a Local Server**
83-
To keep it running in the background:
8492
```bash
8593
nohup streamlit run src/ats_cover_letter_generator/app.py --server.port 8501 &
8694
```
8795

88-
---
96+
## **⚙️ Customization & Advanced Usage**
8997

90-
## **⚙️ Customization**
98+
### **Adjusting AI Parameters**
9199

92-
🔹 **AI Creativity Control** – Adjust temperature in the sidebar
93-
🔹 **Template Customization** – Modify PDF styling in `create_pdf_cover_letter()`
94-
🔹 **Prompt Engineering** – Tweak `generate_cover_letter()` for different outputs
100+
The sidebar provides controls for adjusting the AI's creativity level (temperature):
101+
- **Low (0.1-0.3)**: More conservative, follows templates closely
102+
- **Medium (0.4-0.7)**: Balanced creativity and precision
103+
- **High (0.8-1.0)**: More innovative, varied outputs
95104

96-
---
105+
### **Modifying Templates**
97106

98-
## **🤝 Contributing**
99-
💡 **Contributions are welcome!** If you find a bug or have an idea for improvement:
100-
1. **Fork the repository**
101-
2. **Create a new branch** (`feature-xyz`)
102-
3. **Submit a Pull Request (PR)**
107+
Edit the PDF template in `src/ats_cover_letter_generator/utils/pdf_generator.py`:
103108

104-
---
109+
```python
110+
def create_pdf_cover_letter(content, name, signature_image):
111+
# Customize styling, layout and formatting here
112+
...
113+
```
105114

106-
## **📝 License**
107-
**MIT License** – Free to use & modify. See `LICENSE` for details.
115+
### **Custom Prompts**
108116

109-
---
117+
Enhance the AI prompting in `src/ats_cover_letter_generator/utils/ai_helpers.py`:
118+
119+
```python
120+
def generate_cover_letter(resume_text, job_description, temp=0.7):
121+
# Modify the prompt template to adjust tone, style, or focus
122+
...
123+
```
124+
125+
## **📊 Performance & Limitations**
126+
127+
- **Processing Time**: ~5-15 seconds depending on input length
128+
- **Token Limits**: Maximum combined resume + job description ~8,000 tokens
129+
- **Best Results**: Achieved with clean, well-structured resumes and detailed job descriptions
130+
131+
## **🤝 Contributing**
132+
133+
Contributions are welcome! Help improve this tool by:
134+
135+
1. Forking the repository
136+
2. Creating a feature branch (`git checkout -b feature/amazing-improvement`)
137+
3. Committing your changes (`git commit -am 'Add amazing improvement'`)
138+
4. Pushing to the branch (`git push origin feature/amazing-improvement`)
139+
5. Opening a Pull Request
140+
141+
See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.
142+
143+
## **🔍 Architecture**
144+
145+
```
146+
ats-cover-letter-generator/
147+
├── .venv/ # Virtual environment
148+
├── assets/ # Assets like images and demo GIFs
149+
├── src/
150+
│ └── ats_cover_letter_generator/
151+
│ ├── __init__.py # Package initialization
152+
│ ├── app.py # Main Streamlit application
153+
│ ├── test_app.py # Unit tests for the application
154+
155+
├── Dockerfile # Docker configuration
156+
├── requirements.txt # Python dependencies
157+
├── README.md # Project documentation
158+
└── .env # Environment variables # Project documentation
159+
```
160+
161+
## **📝 License**
162+
163+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
164+
165+
## **📩 Contact & Support**
110166

111-
### **📩 Contact & Support**
112-
🔗 **GitHub Issues** – Report bugs or feature requests [here](https://github.com/MohammedNasserAhmed/ats-cover-letter-generator/issues)
113-
📝 **Email**[[email protected]](mailto:[email protected])
167+
- **GitHub Issues**: [Report bugs or request features](https://github.com/MohammedNasserAhmed/ats-cover-letter-generator/issues)
168+
- **Email**: [[email protected]](mailto:[email protected])
114169

115170
---
116171

117-
🚀 **Empower your job applications with AI. Build ATS-optimized cover letters in seconds!**
172+
<p align="center">
173+
<b>Empower your job search with AI-crafted, ATS-optimized cover letters in seconds!</b>
174+
</p>

requirements.txt

-8 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)