Hiring Assistant is an intelligent chatbot designed for a fictional recruitment agency specializing in technology placements. This chatbot streamlines the initial candidate screening process by collecting essential information and generating tailored technical questions based on the candidate's declared tech stack. The application provides a seamless, conversational experience while gathering valuable data to assist recruiters in the hiring process.
- Clean, intuitive Streamlit interface with a modern design
- Real-time conversation flow with typing indicators
- Progress tracking for candidate information collection
- Sentiment analysis visualization for recruitment insights
- Multilingual support for global candidate interactions
- Welcomes candidates with a friendly introduction
- Collects essential candidate details:
- Full Name
- Email Address
- Phone Number
- Years of Experience
- Desired Position(s)
- Current Location
- Tech Stack
- Analyzes the candidate's declared tech stack
- Generates 3-5 relevant technical questions tailored to each technology
- Adjusts question difficulty based on the candidate's experience level
- Presents questions in a clear, structured format
- Maintains conversation context throughout the interview
- Extracts information from varied responses
- Handles non-linear conversations naturally
- Recognizes when information has already been collected
- Gracefully exits when conversation-ending keywords are detected
- Provides fallback responses for unexpected inputs
- Concludes with a summary of next steps in the recruitment process
- Python: Core programming language
- Streamlit: Frontend interface development
- Groq API: LLM integration for intelligent responses
- JSON: Structured data handling and storage
The application follows a modular design with these key components:
- User Interface (
app.py
): Main Streamlit interface and conversation flow management - LLM Integration (
groq_helper.py
): Manages communication with the Groq API - Prompt Engineering (
prompts.py
): Sophisticated prompts to guide the LLM's behavior - Session Management: Streamlit's session state for conversation context
- Enhancement Modules:
data_handler.py
: Manages data processing and storagelanguage_handler.py
: Provides multilingual supportperformance_optimizer.py
: Optimizes response times and cachingui_enhancer.py
: Creates a polished, responsive UIsentiment_analyzer.py
: Analyzes candidate sentiment during interviews
The system employs sophisticated prompt engineering techniques:
- System Prompt: Defines the assistant's role, personality, and response format
- User Message Prompt: Maintains conversation context with history and current state
- Technical Question Generation: Creates tailored questions for the candidate's tech stack
- Sentiment-Enhanced Prompts: Incorporates candidate sentiment for more empathetic responses
- Python 3.8+
- Groq API key
-
Clone the repository:
git clone https://github.com/Taskmaster-1/Hiring-Assistant.git cd Hiring-Assistant
-
Install dependencies:
pip install -r requirements.txt
-
Set up your Groq API key:
- Create a
.streamlit/secrets.toml
file with:GROQ_API_KEY = "your-groq-api-key"
- Alternatively, you can enter your API key when prompted in the app
- Create a
-
Run the application:
streamlit run app.py
- Start the application using the command above
- Enter your Groq API key if not configured in secrets.toml
- The chatbot will greet you and begin asking for your information
- Provide your details when prompted
- Once your tech stack is collected, the chatbot will generate relevant technical questions
- Answer the questions to demonstrate your technical proficiency
- Type "exit" or "bye" when you wish to end the conversation
- The application uses simulated or anonymized data for testing
- Test candidates can be generated through the admin interface
- All candidate information is handled in compliance with GDPR
- Data is stored securely and only within the session
- Privacy notices are displayed to candidates at the start of conversation
- Anonymization features are implemented for data protection
Solution: Implemented a sophisticated state management system using Streamlit's session state combined with structured JSON responses from the LLM to track conversation progress and candidate information.
Solution: Designed a context-aware prompt system that includes conversation history and current information state to help the LLM understand what data has been collected and what still needs to be gathered.
Solution: Created a flexible information extraction system that can identify and capture candidate details regardless of the order in which they are provided, allowing for more natural conversation flow.
Solution: Developed a specialized prompt engineering approach that generates technical questions only after collecting the complete tech stack, and includes experience level to ensure appropriate difficulty calibration.
Solution: Implemented a caching system to reduce API calls and response times, with built-in performance monitoring to track metrics such as page load time and average response time.
- Sentiment Analysis: Analyzes candidate emotions during the conversation to gauge comfort level
- Multilingual Support: Detects and adapts to the candidate's preferred language
- Performance Optimization: Caching and response time monitoring for efficient operation
- Custom styling with modern design principles
- Real-time typing indicators for a natural conversation feel
- Progress tracking to visualize interview completion
- Sentiment visualization for recruitment insights
- Responsive design for various screen sizes
- Modular architecture with clear separation of concerns
- Consistent naming conventions and code style
- Comprehensive error handling and fallback mechanisms
- Well-documented code with comments explaining complex logic
- Detailed README with comprehensive project overview
- Installation and usage instructions
- Challenge explanations and solution approaches
- Code comments and docstrings for clarity
- Integration with ATS (Applicant Tracking Systems)
- Enhanced skill assessment based on question responses
- Voice input/output capabilities
- Calendar integration for scheduling follow-up interviews
- Expanded multilingual support for additional languages
Current Version: 1.0.0
Distributed under the MIT License. See LICENSE
for more information.
- Render: [https://hiring-assistant.onrender.com]
For questions or feedback, please contact: i.am.vivekyadav5223@gmail.com