TalentScout Hiring Assistant is a powerful AI-driven platform designed to help recruiters and hiring managers evaluate candidates with speed and precision. By leveraging advanced natural language processing, dynamic question generation, and a user-friendly interface, the system seamlessly balances functionality and scalability. This documentation aims to provide a comprehensive look at TalentScout—from its file structure and modular design to the core features that enable efficient candidate assessment.
TalentScout is built upon a modular architecture to ensure maintainability and scalability. Each major component is encapsulated in a dedicated module or folder. This encapsulation allows easy updates, clear coding structure, and reusability across different functionalities.
- Validation and Resume Processing
- Handles user input validation and resume parsing.
- Uses regex extensively to check candidate information (e.g., phone number, email).
- User Interface
- Developed with Streamlit for an intuitive experience.
- Structured layout ensures clarity for both candidates and administrators.
- Assessment and Scoring
- Dynamically generates questions based on experience, tech stack, and prior answers.
- Maintains a confidence score that adjusts after every response.
- Reporting
- Facilitates feedback generation and downloadable reports.
- Highlights strengths, weaknesses, and possible areas for improvement.
- LLM Integration
- Tightly integrated with the Llama 3.3 70B Versatile model for fast, contextually relevant responses.
- Utilizes advanced prompt engineering for improved question accuracy.
- Dynamic Processing Pipelines
Built to handle user inputs, process resumes, and generate tailored questions in real time. - Extensive Comments and Code Clarity
Maintainers can easily modify or extend functionalities without confusion. - High Scalability
The loosely coupled design makes it straightforward to add more models, question types, or data sources. - Efficient Resume-Data Linking
Compares user-declared positions, experience, and tech stack with resume data to prevent mismatches.
- Streamlit-based
Presents a clean, browser-accessible interface for candidate interaction. - Sidebar Guidance
Displays guidelines, motivational quotes, and rules candidates must follow. - Simple Data Collection
Collects personal details (name, email, phone, location, years of experience) via interactive fields. - Resume Upload
Allows PDF and DOCX uploads for quick analysis. - Early Termination
Candidates can end the assessment anytime. The system also auto-ends if too many questions are skipped.
- Greets candidates when they enter the system.
- Provides a brief overview of its operation and objectives.
- Prompts for essential details such as:
- Full Name
- Email Address
- Phone Number
- Years of Experience
- Desired Position(s)
- Current Location
- Tech Stack
- Encourages the candidate to list programming languages, frameworks, databases, and tools.
- Uses this data to tailor future interactions.
- Maintains context throughout the conversation to ensure timely and relevant follow-up questions.
- Offers informative responses if user input is unclear or unexpected.
- Ensures the conversation remains coherent and goal-directed.
- Gracefully closes the session on a recognized keyword or after excessive question-skipping.
- Thanks the candidate and indicates possible next steps.
- Automatic Parsing
Uses PyPDF2 and python-docx to extract text from PDF and DOCX resumes. - Claim Validation
Aligns the user’s stated experience, tech stack, and desired role with resume details. - Discrepancy Checks
Flags irrelevant or unsupported claims. - Consistency Score
Helps recruiters see how closely a candidate’s self-assessed abilities match their provided documentation.
- Contextual Depth
Starts with easier questions, increases complexity based on candidate responses. - Tech Stack Relevance
If a user declares Python and Django, relevant Python/Django questions are generated. - Adaptability
Incorporates the confidence score and previous correct/incorrect answers to refine future questions. - Advanced Prompt Engineering
Uses specialized queries to the Llama 3.3 70B Versatile model for relevant, targeted questions.
- Real-time Adjustments
Increases if users perform well on complex prompts and decreases for incorrect or skipped simple questions. - Holistic Assessment
Balances technical correctness, clarity, and completeness of answers. - Influence on Flow
Helps the system decide whether to pose more challenging questions or revert to fundamentals.
- Detailed Summaries
Outlines the user’s performance, highlighting strong and weak points. - Downloadable Formats
Enables JSON or text export for later review. - Progress Visibility
Displays confidence scores and significant metrics in real time. - Actionable Insights
Suggests areas of further learning or preparation based on question performance.
- Precision Targeting
Generates relevant questions aligned with the user’s resume and inputs without drifting off-topic. - Multiple Rounds
The conversation can span multiple turns, with advanced memory of prior answers. - Seamless LLM Integration
Llama 3.3 70B Versatile from Groq handles large request volumes with speed and accuracy.
- Efficient Caching
Minimizes redundant LLM calls and ensures quick load times. - Session Persistence
Retains user context (answers, confidence score, etc.) between steps in the conversation. - Scalability
Can easily integrate additional caching layers or switch to distributed session stores if needed.
Below is a suggested layout for clarity and maintainability:
project/
│
├── main.py
├── utils/
│ ├── validators.py
│ ├── resume_processing.py
├── components/
│ ├── sidebar.py
│ ├── progress.py
├── assessment/
│ ├── question_generation.py
│ ├── evaluation.py
├── config/
│ ├── settings.py
├── models/
│ ├── llm_manager.py
├── reporting/
│ ├── report_generator.py
- main.py
Orchestrates the Streamlit app, manages high-level flow. - utils/validators.py
Contains regex-based and logical validations for user inputs. - utils/resume_processing.py
Handles file loading and text extraction from resumes. - components/sidebar.py
Manages the Streamlit sidebar elements, including guidelines and quotes. - components/progress.py
Displays progress or confidence-related metrics in the UI. - assessment/question_generation.py
Creates context-based questions using Llama 3.3 70B Versatile model. - assessment/evaluation.py
Rates user responses and updates the confidence score. - config/settings.py
Stores environment variables and API keys (secured with secrets). - models/llm_manager.py
Provides an interface to the Llama 3.3 70B Versatile model for queries. - reporting/report_generator.py
Aggregates user performance data and generates final reports.
- Python 3.8 or higher
- Pip
- Internet connection
- Clone the Repository
git clone https://github.com/your-repo/talentscout.git cd talentscout
- Create a Virtual Environment
python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate
- Install Dependencies
pip install -r requirements.txt
- Configure Streamlit Secrets
Get your Groq api key from https://console.groq.com/playground and replace
echo "GROQ_API_KEY=your_api_key" > .streamlit/secrets.toml
your_api_key
with it. - Run the Application
streamlit run main.py
- Launch the Application
streamlit run main.py
- Enter Personal Details
Fill in name, email, phone number, years of experience, and desired roles. - Upload Resume (PDF or DOCX)
The system parses relevant content for verification. - Interact with the Chatbot
- Answer dynamically generated technical questions.
- Check the sidebar for guiding rules and motivational quotes.
- Review Performance
- Monitor your evolving confidence score.
- See flagged discrepancies or missing skills.
- End and Feedback
- Conclude at will or let the system auto-end if too many questions are skipped.
- Download your performance report in JSON or text format.
- AI Content Detection
Identify plagiarized or AI-generated content in resumes. - Camera and Mic Monitoring
Incorporate proctoring features for remote assessments. - Countdown Timer
Keep a timed environment to simulate real interview pressure. - Code Compiler Integration
Allow in-app coding exercises for more hands-on tests. - User Account Creation
Let candidates log in and track their progress or history over time.