Spaces:
Paused
Paused
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
- Clone this repository or download the project files
- Install the required dependencies:
pip install python-docx openai jupyter - (Recommended, free) Install and run Ollama, then pull a model:
ollama pull llama3.1:8b - Place your CV and cover letter templates in the
datadirectory - Launch the Jupyter notebook:
jupyter notebook notebooks/cv_tailoring_system.ipynb - Follow the step-by-step instructions in the notebook
Using the System
The Jupyter notebook provides a user-friendly interface with the following steps:
- Setup and Configuration: Import necessary libraries and set up the environment
- Set up LLM provider: Use Ollama (default) or set Groq/Grok/OpenAI variables
- Load Your CV and Cover Letter: Load and analyze your existing documents
- Enter Job Description: Paste the job description you're applying for
- Analyze Job Description: Identify key requirements and skills
- Generate Tailored Documents: Create customized versions of your CV and cover letter
- Customization Options: Modify parameters to customize the tailoring process
- 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=ollamaOLLAMA_BASE_URL=http://127.0.0.1:11434/v1OLLAMA_MODEL=llama3.1:8b
Grok mode (API-based, fast & affordable)
Set:
LLM_PROVIDER=grokGROK_API_KEY=<your xAI API key>- Optional:
GROK_MODEL=grok-2(default) orgrok-3 - Optional:
GROK_BASE_URL=https://api.x.ai/v1
You can obtain a Grok API key from xAI's website (requires free account).
Groq mode (API-based, fast and cost-effective)
Set:
LLM_PROVIDER=groqGROQ_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.
OpenAI mode (paid, premium quality)
Set:
LLM_PROVIDER=openaiOPENAI_API_KEY=<your key>- Optional:
OPENAI_MODEL=gpt-4o-mini
You can obtain an OpenAI API key from OpenAI's website 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.