Master Hire is an intelligent recruitment assistant that enhances the technical hiring process using AI. It features a chatbot-style interface powered by Google's Gemini-1.5-pro LLM and leverages Retrieval-Augmented Generation (RAG) to dynamically generate and assess technical interview questions.
- ✅ Automated Resume Parsing - Extracts and structures candidate data.
- 🎯 Dynamic Technical Question Generation - Tailored assessments based on skills.
- ⚡ Real-Time Assessment & Feedback - Instant evaluation of candidate responses.
- 📊 Comprehensive Admin Dashboard - Detailed recruitment analytics.
- 🔒 Secure Data Handling - Robust file validation and storage.
- 🗂 Vector-Based Document Storage - Efficient search with ChromaDB.
- Python 3.8+
- Google API Key for Gemini-1.5-pro
- Sufficient storage for ChromaDB vector database
1️⃣ Clone the repository:
git clone https://github.com/YourUsername/Master-Hire.git
cd Master-Hire2️⃣ Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate3️⃣ Install required dependencies:
pip install -r requirements.txt4️⃣ Set up environment variables:
Create a .env file in the project root and add your API key:
GOOGLE_API_KEY=your_api_key_here5️⃣ Run the application:
streamlit run app.py- Click on "Candidate Login" from the welcome screen.
- Upload your resume (PDF, DOC, DOCX | max 200MB).
- Provide personal & professional details.
- Rate proficiency in technical skills.
- Complete the AI-generated technical assessment.
- Review results and feedback instantly.
- Login to the Admin Dashboard with credentials.
- View detailed candidate analytics.
- Export candidate data in CSV/JSON.
- Monitor assessment metrics & skill distribution.
- Frontend: Streamlit
- Backend: Python
- AI Model: Google Gemini-1.5-pro
- Vector Store: ChromaDB
- Embeddings: HuggingFace's
all-MiniLM-L6-v2
- Resume validation & structured parsing
- User input verification & secure storage
- AI-generated questions based on user skills
- Mix of MCQs and text-based questions
- Automated scoring & feedback
- Efficient document retrieval via ChromaDB
- Scalable similarity search
- Persistent storage for future assessments
The system collects user data in a staged approach:
stages = {
"upload_resume": {...},
"name": {...},
"email": {...},
# Additional stages
}The system generates relevant questions based on skill level:
prompt = f"""Generate 2 multiple choice questions and 1 text-based question for {tech} at proficiency level {level}/10.
Format for MCQs:
MCQ||||||
Format for text questions:
TEXT||
"""❌ Challenge: Ensuring consistent quality & relevance of AI-generated questions.
✅ Solution: Implemented structured prompts with validation checks to improve accuracy.
❌ Challenge: Managing large resume files and multiple candidates.
✅ Solution: ChromaDB for optimized vector storage & enforced file size limits.
❌ Challenge: Fair evaluation of text-based answers.
✅ Solution: Developed robust scoring system with answer normalization & pattern matching.
❌ Challenge: Preventing unauthorized access to sensitive candidate data.
✅ Solution:
- Secure file validation mechanisms
- Session-based authentication
- Rate limiting for login attempts
- Secure credential storage
🔹 Automated Resume Parsing using NLP 🔹 Soft Skills & Personality Profiling 🔹 Multi-Language Support 🔹 AI-powered Recruiter Dashboard with Insights
Contributions are welcome! To contribute:
- Fork the repository.
- Create a new branch.
- Make necessary changes and push.
- Submit a Pull Request (PR).
This project is licensed under the MIT License - see the LICENSE file for details.