A Django-based web application that analyzes resumes using AI and allows users to chat with their resume data.
- Upload and process PDF resumes
- Extract text from PDF files
- Create embeddings and store in Pinecone vector database
- Chat interface to ask questions about the resume
- Configurable AI model parameters (model, temperature, max tokens)
- Chat history persistence
- Responsive design with Bootstrap
- Backend: Django 4.2
- Frontend: HTML, CSS, JavaScript, Bootstrap 5
- Database: SQLite (development), PostgreSQL (production)
- AI/ML: LangChain, Groq, Pinecone, HuggingFace
- Deployment: Vercel
- Python 3.9+
- Pinecone API key
- Groq API key
-
Clone the repository:
git clone <repository-url> cd resume-analyzer
-
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Create a
.envfile in the project root with the following variables:SECRET_KEY=your-secret-key DEBUG=True ALLOWED_HOSTS=localhost,127.0.0.1 GROQ_API_KEY=your-groq-api-key PINECONE_API_KEY=your-pinecone-api-key INDEX_NAME=your-pinecone-index-name -
Run migrations:
python manage.py makemigrations python manage.py migrate
-
Create a superuser (optional):
python manage.py createsuperuser
-
Run the development server:
python manage.py runserver
-
Access the application at http://127.0.0.1:8000/
-
Install Vercel CLI:
npm install -g vercel
-
Login to Vercel:
vercel login
-
Deploy the application:
vercel
-
Set environment variables in the Vercel dashboard.
- Upload a resume in PDF format
- Wait for the processing to complete
- Start asking questions about the resume
- Adjust model parameters as needed for different types of responses
The project includes a comprehensive .gitignore file that excludes:
- Virtual environment files
- Database files (SQLite)
- Media files (uploaded resumes)
- Compiled Python files
- Environment variable files (.env)
- Cache directories
- Log files
- Static files collected for production
This ensures that only the necessary code is committed to the repository, keeping it clean and secure.
This project is licensed under the MIT License - see the LICENSE file for details.