This project is a multi-agent system designed to streamline the hiring process by leveraging AI and automation. It uses the Ollama-hosted Gemma3 model for natural language processing tasks. The system automates job description summarization, CV extraction, candidate selection, and email notifications for shortlisted candidates.
- Overview
- Agents in the System
- Usage Instructions
- Example Execution
- Database Management
- Text Files
- Dependencies
- Dataset
- License
The Multi-Agent Hiring System automates the recruitment workflow by breaking it into modular tasks handled by specialized agents. Each agent performs a specific task, ensuring scalability, modularity, and maintainability. The system integrates with an SQLite database for persistent storage and supports both real and simulated email notifications.
-
JobDescriptionSummarizerAgent:
- Summarizes the provided job description into key elements (e.g., skills, experience, qualifications).
- Writes the summary to
job_description_summary.txt.
-
CandidateExtractorAgent:
- Extracts and summarizes key information (e.g., skills, experience) from CVs in PDF format.
- Writes the summaries to
candidate_data.txt.
-
HiringManagerAgent:
- Matches candidates' CV summaries with the job description summary.
- Selects the best candidates based on predefined criteria.
- Writes the selection response to
hiring_manager_response.txt.
-
CandidateDataRetrieverAgent:
- Extracts specific details ( name, candidate ID, email) for selected candidates.
- Prepares data for email notifications.
- Python 3.8 or higher installed.
- Install Ollama and host the Gemma3 model locally.
- Ensure all required libraries are installed (see Dependencies).
-
Clone the Repository:
git clone https://github.com/Mohammed-Saajid/MultiAgentHiringSystem.git cd MultiAgentHiringSystem -
Install Dependencies:
pip install -r requirements.txt
-
Run the Application: Execute the
app.pyscript in thesrcfolder with the following parameters:python src/app.py --job_title "Job Title" --job_description "Job Description" --cv_directory "path/to/cv/folder" --email_test 0
--job_title: The title of the job (e.g., "Software Engineer").--job_description: The full job description text.--cv_directory: Path to the folder containing CVs in PDF format.--email_test: Set to1to send real emails or0to simulate sending email invitations.
- Navigate to the
examplefolder:cd example - Run the batch file:
This will execute the system with 3 sample CVs located in the
example.bat
testfolder.
- Navigate to the
examplefolder:cd example - Run the script:
This will process the entire dataset of job descriptions and CVs.
python example.py
- The system uses an SQLite database for long-term memory storage.
- To reset the database, run the
reset_db.pyscript:python src/reset_db.py
The following text files are used to store intermediate outputs:
- candidate_data.txt: Contains summaries of CVs processed by the
CandidateExtractorAgent. - hiring_manager_response.txt: Contains responses from the
HiringManagerAgentregarding candidate selection. - job_description_summary.txt: Contains the summarized job description generated by the
JobDescriptionSummarizerAgent.
Install the required libraries using requirements.txt:
pip install -r requirements.txtThe dataset utilized in this project is provided by Hack the Future: A Gen AI Sprint Powered by Data, a hackathon hosted collaboratively by Accenture and GeeksforGeeks.
This project is licensed under the Apache License. See the LICENSE file for details.