This project implements a multi-agent workflow for processing resumes using Large Language Models (LLMs). It automates the extraction of key information from multi-page resumes, validates the extracted data, and allows for human intervention and feedback at various stages of the process.
- Resume Reading: Processes multi-page resumes in various formats (PDF, DOCX)
- Entity Extraction: Extracts key information such as personal details, education, work experience, and skills
- Entity Validation: Validates extracted information for accuracy and completeness
- Human Feedback Loop: Allows for user intervention and feedback at each stage
- JSON Output: Compiles validated entities into a predefined JSON format
- Monitoring: Utilizes LangGraph and LangSmith for monitoring LLM calls
-
Clone the repository:
git clone [repository-url] cd [repository-name]
-
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate`
-
Install required packages:
pip install -r requirements.txt
- Set the src as the root file
To process a resume, run the following command:
python main.py --file_path /path/to/your/resume.pdf
The system allows for human intervention at each stage of the process. When prompted:
- Enter the state you want to modify, or type 'next' to proceed to the next stage.
- If modifying a state, enter the new value when prompted.
- Type 'quit' at any time to exit the process.
This project uses LangGraph and LangSmith for monitoring LLM calls. To view the monitoring data:
- [Instructions for accessing LangGraph monitoring]
- [Instructions for accessing LangSmith monitoring]
main.py
: Entry point of the applicationagents/
:state.py
: Defines the ResumeState classresume_reader.py
: Contains the resume reading logicentity_extractor.py
: Implements entity extractionentity_validation.py
: Handles validation of extracted entitiesstore_entities.py
: Manages storage of validated entitiesentity_corrector.py
: Implements correction logic for extracted entities
Testing of all the agents have been implemented using the pytest
library
tests
:test_resume_reader.py
: Define unit tests for resume reader agenttest_entity_extractor.py
: Define unit test cases for entity extraction agenttest_entity_Validation.py
: Define unit test cases for the entity validation agent
- [List any important assumptions or design decisions made during development]
- Implement comprehensive unit tests for each component
- Implement a graphical user interface for easier interaction
- Enhance error handling and edge case management
- Improve scalability to handle a larger volume of resumes