A multi-agent AI system that provides comprehensive CV analysis, feedback, and recommendations using Python, LangChain, LangGraph, and Streamlit with Anthropic's Claude.
- Multi-format Support: Upload PDF, DOCX, or TXT files
- Intelligent Data Extraction: Automatically extract structured information from CVs
- Comprehensive Analysis: AI-powered analysis of experience, skills, and education
- Constructive Feedback: Detailed feedback on CV strengths and areas for improvement
- Actionable Recommendations: Specific suggestions for career development
- Beautiful UI: Modern, responsive Streamlit interface
- Export Results: Download comprehensive reports in JSON format
The application uses a multi-agent architecture with four specialized agents:
- Extraction Agent: Extracts structured data from CV text
- Analysis Agent: Analyzes CV content and provides insights
- Feedback Agent: Generates constructive feedback
- Recommendation Agent: Provides improvement suggestions and career guidance
CV Upload → Text Extraction → Data Analysis → Feedback Generation → Recommendations → Results
- Python 3.8+
- Streamlit: Web interface
- LangChain: LLM framework
- LangGraph: Multi-agent orchestration
- Anthropic Claude: AI language model
- Pydantic v2: Data validation and serialization
- PyPDF2: PDF processing
- python-docx: DOCX processing
-
Clone the repository:
git clone <repository-url> cd cv-reviewer
-
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
cp env.example .env
Edit
.envand add your Anthropic API key:ANTHROPIC_API_KEY=your_anthropic_api_key_here
-
Start the application:
streamlit run main.py
-
Open your browser and navigate to
http://localhost:8501 -
Upload your CV (PDF, DOCX, or TXT format)
-
Click "Start CV Review" to begin the analysis
-
Review the results:
- Extracted information
- Analysis results with scores
- Detailed feedback
- Improvement recommendations
-
Download the full report as JSON for further analysis
cv-reviewer/
├── app/
│ ├── __init__.py
│ ├── main.py # Streamlit main app
│ ├── models.py # Pydantic data models
│ ├── agents/
│ │ ├── __init__.py
│ │ ├── extraction_agent.py # CV data extraction
│ │ ├── analysis_agent.py # Data analysis
│ │ ├── feedback_agent.py # Feedback generation
│ │ └── recommendation_agent.py # Improvement suggestions
│ ├── graph/
│ │ ├── __init__.py
│ │ └── workflow.py # LangGraph workflow
│ ├── utils/
│ │ ├── __init__.py
│ │ ├── file_processor.py # File handling
│ │ └── llm_config.py # LLM configuration
│ └── ui/
│ ├── __init__.py
│ └── components.py # Streamlit UI components
├── requirements.txt
├── env.example
├── .gitignore
└── README.md
ANTHROPIC_API_KEY: Your Anthropic API key (required)
The application generates comprehensive reports including:
- Personal information (name, email, phone, location)
- Work experience with details
- Education background
- Skills with proficiency levels
- Certifications and languages
- Overall CV score (0-100)
- Strengths and weaknesses
- Experience analysis
- Skills analysis
- Education analysis
- Market alignment assessment
- General feedback
- Experience feedback
- Skills feedback
- Education feedback
- Presentation feedback
- Specific improvements
- Positive aspects
- Skill development suggestions
- Experience gap identification
- Career path suggestions
- Immediate actions
- Long-term goals
- Industry trends
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License.
If you encounter any issues:
- Check that your Anthropic API key is correctly configured
- Ensure your CV file is in a supported format
- Verify the file size is within limits
- Check the console for error messages
- Support for more file formats
- Integration with job boards
- Resume template suggestions
- ATS optimization scoring
- Multi-language support
- Batch processing capabilities
- Advanced analytics dashboard