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