Skip to content

AI-powered recruitment tool that analyzes job descriptions and candidate resumes to generate structured evaluation reports using LLM technology

License

Notifications You must be signed in to change notification settings

ChenyangLi4288/Vibe-HR

Repository files navigation

Vibe HR

AI-powered recruitment tool that analyzes job descriptions and candidate resumes to generate structured evaluation reports using LLM technology.

Overview

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.

Features

  • 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

Tech Stack

  • 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

Quick Start

Prerequisites

  • Python 3.8 or higher
  • pip (Python package manager)
  • API key for your chosen LLM provider (OpenAI or Anthropic)

Installation

# 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.txt

Environment Setup

Add 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

Running the Application

Option 1: Start Everything (Recommended)

# Starts both backend and frontend
python start.py

Option 2: Start Components Separately

# Terminal 1 - Backend API
python app.py

# Terminal 2 - Frontend UI
streamlit run streamlit_app.py

Option 3: Try the Demo

# Run demo with sample data
python demo.py

Access Points:

Usage

  1. Upload Job Description: Paste or upload your job posting
  2. Add Resumes: Upload candidate resumes (supports PDF, DOCX, TXT)
  3. Generate Reports: Click analyze to process all candidates
  4. Review Results: Get structured reports with scores and recommendations

API Endpoints

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

Project Structure

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

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Roadmap

  • Integration with ATS systems
  • Advanced filtering and search
  • Interview scheduling automation
  • Team collaboration features
  • Analytics dashboard
  • Mobile app

License

This project is licensed under the Apache License - see the LICENSE file for details.

Contact

@ChenyangLi4288 - cyli4288@gmail.com

Acknowledgments

  • Thanks to OpenAI/Anthropic for LLM APIs
  • Inspiration from modern HR tech solutions
  • Built with ❤️ for better hiring experiences

About

AI-powered recruitment tool that analyzes job descriptions and candidate resumes to generate structured evaluation reports using LLM technology

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published