Mr-Haseeb786
Sanitized Production Build
56c7b6d
|
Raw
History Blame Contribute Delete
4.83 kB
# CV and Cover Letter Tailoring System
This project provides an automated system to tailor your CV and cover letter based on job descriptions using an LLM API. By default it uses free local Ollama (no paid API required), and it can also be configured for Groq, Grok, or OpenAI.
## Project Structure
```
cv_tailoring_project/
β”œβ”€β”€ data/ # Directory for storing CV and cover letter templates
β”‚ β”œβ”€β”€ Cover Letter_Imon .docx
β”‚ └── Imon Hosen - Resume_Template_ATS.docx
β”œβ”€β”€ notebooks/ # Jupyter notebooks for interactive usage
β”‚ └── cv_tailoring_system.ipynb
β”œβ”€β”€ output/ # Directory for storing generated documents
β”œβ”€β”€ src/ # Source code
β”‚ β”œβ”€β”€ parsers/ # Document parsing modules
β”‚ β”‚ └── document_parser.py
β”‚ β”œβ”€β”€ updaters/ # Document updating modules
β”‚ β”‚ └── document_updater.py
β”‚ └── utils/ # Utility modules
β”‚ └── openai_integration.py
└── README.md # Project documentation
```
## Features
- Parse and analyze Word document CV and cover letter templates
- Extract sections, personal information, and content structure
- Analyze job descriptions using a configurable LLM provider (Ollama/Groq/Grok/OpenAI)
- Generate tailored CV with updated profile summary, skills, and experience highlights
- Create customized cover letter that addresses specific job requirements
- Interactive Jupyter notebook interface for easy usage
- Support for batch processing multiple job applications
## Requirements
- Python 3.6+
- python-docx
- openai
- Jupyter Notebook/Lab
- Ollama (default, free/local) or a Groq/Grok/OpenAI API key
## Getting Started
1. Clone this repository or download the project files
2. Install the required dependencies:
```
pip install python-docx openai jupyter
```
3. (Recommended, free) Install and run Ollama, then pull a model:
```
ollama pull llama3.1:8b
```
4. Place your CV and cover letter templates in the `data` directory
5. Launch the Jupyter notebook:
```
jupyter notebook notebooks/cv_tailoring_system.ipynb
```
6. Follow the step-by-step instructions in the notebook
## Using the System
The Jupyter notebook provides a user-friendly interface with the following steps:
1. **Setup and Configuration**: Import necessary libraries and set up the environment
2. **Set up LLM provider**: Use Ollama (default) or set Groq/Grok/OpenAI variables
3. **Load Your CV and Cover Letter**: Load and analyze your existing documents
4. **Enter Job Description**: Paste the job description you're applying for
5. **Analyze Job Description**: Identify key requirements and skills
6. **Generate Tailored Documents**: Create customized versions of your CV and cover letter
7. **Customization Options**: Modify parameters to customize the tailoring process
8. **Process Multiple Job Applications**: Batch process multiple job descriptions
## Customization
You can customize the system by:
- Modifying the document parser to handle different CV/cover letter formats
- Adjusting the prompts in the integration module
- Changing the model used for analysis and generation
- Implementing additional document updating strategies
## Provider Configuration
### Free local mode (default)
No paid API key is required when running with Ollama.
Optional environment variables:
- `LLM_PROVIDER=ollama`
- `OLLAMA_BASE_URL=http://127.0.0.1:11434/v1`
- `OLLAMA_MODEL=llama3.1:8b`
### Grok mode (API-based, fast & affordable)
Set:
- `LLM_PROVIDER=grok`
- `GROK_API_KEY=<your xAI API key>`
- Optional: `GROK_MODEL=grok-2` (default) or `grok-3`
- Optional: `GROK_BASE_URL=https://api.x.ai/v1`
You can obtain a Grok API key from [xAI's website](https://console.x.ai/) (requires free account).
### Groq mode (API-based, fast and cost-effective)
Set:
- `LLM_PROVIDER=groq`
- `GROQ_API_KEY=<your Groq API key>`
- Optional: `GROQ_MODEL=llama-3.3-70b-versatile`
- Optional: `GROQ_BASE_URL=https://api.groq.com/openai/v1`
You can obtain a Groq API key from [Groq Console](https://console.groq.com/keys).
### OpenAI mode (paid, premium quality)
Set:
- `LLM_PROVIDER=openai`
- `OPENAI_API_KEY=<your key>`
- Optional: `OPENAI_MODEL=gpt-4o-mini`
You can obtain an OpenAI API key from [OpenAI's website](https://platform.openai.com/account/api-keys) if you choose OpenAI mode.
## Notes
- The system defaults to local Ollama with `llama3.1:8b`, and you can change providers via environment variables
- Document parsing is based on a simplified approach and may need adjustments for different document formats
- The system creates new documents rather than modifying the originals to preserve your templates
## License
This project is provided for personal use.