AI-powered recruitment tool that analyzes job descriptions and candidate resumes to generate structured evaluation reports using LLM technology.
Vibe HR streamlines the hiring process by leveraging Large Language Models to automatically evaluate candidates against job requirements. Simply upload a job description and candidate resumes, and get detailed, structured assessment reports that help you make informed hiring decisions faster.
- Smart Resume Analysis: Upload multiple resume formats (PDF, DOCX, TXT)
- Job Description Matching: Automatically compare candidates against specific job requirements
- Structured Reports: Generate consistent, detailed evaluation reports for each applicant
- Batch Processing: Analyze multiple candidates simultaneously
- Skills Assessment: Identify relevant skills, experience gaps, and strengths
- Scoring System: Quantitative rankings to help prioritize candidates
- Backend: Python with Flask/FastAPI
- Frontend: Streamlit or React.js
- LLM Integration: OpenAI GPT / Anthropic Claude API
- File Processing: PyPDF2, python-docx for document parsing
- Database: SQLite/PostgreSQL
- Python 3.8 or higher
- pip (Python package manager)
- API key for your chosen LLM provider (OpenAI or Anthropic)
# Clone the repository
git clone https://github.com/yourusername/vibe-hr.git
cd vibe-hr
# Create virtual environment
python -m venv venv
# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
# Run setup script (installs dependencies and creates .env)
python setup.py
# OR install manually:
pip install -r requirements.txtAdd your API keys to the .env file:
# LLM API Configuration
OPENAI_API_KEY=your_openai_api_key_here
ANTHROPIC_API_KEY=your_anthropic_api_key_here
# Application Configuration
FLASK_APP=app.py
FLASK_ENV=development
SECRET_KEY=your_secret_key_here
PORT=5000# Starts both backend and frontend
python start.py# Terminal 1 - Backend API
python app.py
# Terminal 2 - Frontend UI
streamlit run streamlit_app.py# Run demo with sample data
python demo.pyAccess Points:
- 🎨 Frontend UI: http://localhost:8501
- 📡 Backend API: http://localhost:5000
- 🔍 API Health: http://localhost:5000/health
- Upload Job Description: Paste or upload your job posting
- Add Resumes: Upload candidate resumes (supports PDF, DOCX, TXT)
- Generate Reports: Click analyze to process all candidates
- Review Results: Get structured reports with scores and recommendations
POST /api/jobs - Create new job analysis
GET /api/jobs/<id> - Get job details
POST /api/jobs/<id>/candidates - Add candidates to job
GET /api/reports/<job_id> - Get analysis reports
vibe-hr/
├── app.py # Main Flask application
├── streamlit_app.py # Streamlit frontend
├── start.py # Startup script for both servers
├── setup.py # Setup and installation script
├── demo.py # Demo script with sample data
├── requirements.txt # Python dependencies
├── env.example # Environment variables template
├── src/
│ ├── models/
│ │ └── database.py # SQLAlchemy models and DB manager
│ ├── services/
│ │ └── llm_service.py # LLM integration (OpenAI/Anthropic)
│ ├── utils/
│ │ └── file_processor.py # Resume file processing
│ └── api/
│ └── routes.py # Flask API routes
├── uploads/ # Temporary file storage
├── templates/ # HTML templates
├── static/ # Static files
├── tests/ # Unit tests
│ └── test_app.py # Basic API tests
└── README.md # Documentation
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Integration with ATS systems
- Advanced filtering and search
- Interview scheduling automation
- Team collaboration features
- Analytics dashboard
- Mobile app
This project is licensed under the Apache License - see the LICENSE file for details.
@ChenyangLi4288 - cyli4288@gmail.com
- Thanks to OpenAI/Anthropic for LLM APIs
- Inspiration from modern HR tech solutions
- Built with ❤️ for better hiring experiences