The AI Hiring Assistant is an intelligent and interactive Streamlit-based application designed to assist recruitment agencies in streamlining their candidate screening process. It collects detailed candidate information, generates customized technical questions based on the candidate’s expertise, and facilitates an iterative Q&A flow to assess technical proficiency.
-
Candidate Information Collection:
- Collects essential details like name, contact information, experience, desired position, and technical expertise.
- Stores data securely for future reference.
-
Dynamic Question Generation:
- Generates technical interview questions tailored to the candidate’s experience, desired position, and tech stack.
- Questions are based on open-source models, avoiding additional costs for API usage.
-
Iterative Q&A Flow:
- Presents one question at a time, collecting responses iteratively.
- Allows for dynamic question refinement based on candidate answers.
-
Admin Dashboard:
- Enables admins to view, manage, and analyze candidate data.
- Provides secure authentication for admin access.
-
Database Integration:
- Saves candidate data and their answers for further evaluation.
- Supports retrieval of stored data for admin review.
-
Clone the Repository:
git clone https://github.com/yourusername/ai-hiring-assistant.git cd ai-hiring-assistant -
Create a Virtual Environment (optional but recommended):
python -m venv hiring_assistant_env source hiring_assistant_env/bin/activate # On Windows: hiring_assistant_env\Scripts\activate
-
Install Dependencies:
pip install -r requirements.txt
-
Run the Application:
streamlit run assistant.py
-
Access the Application: Open your web browser and navigate to the URL displayed in the terminal (e.g.,
http://localhost:8501).
-
Candidate Information Form:
- Fill out the form with details like name, email, years of experience, desired position, location, and tech stack.
- Submit the form to proceed to the technical questions.
-
Technical Questions:
- Answer the questions generated based on your tech stack.
- Each answer is saved, and the next question is presented iteratively.
-
Review and Submit:
- Once all questions are answered, review your responses.
- Responses are securely saved to the database.
-
Admin Login:
- Enter valid admin credentials to access the dashboard.
-
Dashboard Features:
- View candidate details and their answers.
- Manage and analyze data for further action.
-
Streamlit:
- Provides an intuitive and interactive front-end for candidates and admins.
-
Prompt Engineering:
- Generates relevant technical questions using open-source models based on candidate input.
-
Session State:
- Manages application state across candidate workflows.
-
Database Integration:
- Saves candidate details and answers securely for retrieval and review.
assistant.py: Main application logic for candidate interaction.prompts.py: Logic for generating technical interview questions.utils.py: Helper functions, including database integration and model initialization.requirements.txt: List of dependencies for the application.
-
Admin Credentials:
- Update the
authenticate_adminfunction inassistant.pyto set desired admin username and password.
- Update the
-
Database Integration:
- Modify the database-related functions in
utils.pyto integrate with your preferred database.
- Modify the database-related functions in
-
Question Generation:
- Customize the
get_technical_prompt_with_contextfunction inprompts.pyto refine question generation logic.
- Customize the
- Invalid data formats may occasionally cause errors during answer display.
- Ensure that the input data adheres to the expected format to avoid interruptions.
- Advanced NLP-based question generation.
- Enhanced admin analytics with visualizations.
- Multi-language support for diverse candidates.
- Fork the repository and create a new branch for your feature.
- Submit a pull request with a detailed description of changes made.
- Ensure all contributions adhere to the existing coding style and conventions.
For any issues or feature requests, please open an issue on the GitHub repository or contact the maintainer directly.