HireFlow is an advanced AI microservice designed to revolutionize the resume screening process. It intelligently matches candidate resumes against job descriptions, providing recruiters with semantic similarity scores and human-like evaluation summaries.
Built entirely with free and open-source tools, HireFlow mirrors the functionality of sophisticated Applicant Tracking Systems (ATS) and AI-based HR screening solutions, demonstrating robust NLP, embedding, and Retrieval-Augmented Generation (RAG) capabilities.
Traditional resume screening is time-consuming, prone to human bias, and often misses suitable candidates due to keyword-only matching. Existing AI solutions are often proprietary and costly.
HireFlow leverages cutting-edge open-source NLP techniques to analyze resumes and job descriptions semantically. It provides a data-driven, efficient, and transparent method for candidate ranking, reducing manual effort and improving the accuracy of initial shortlisting.
- 📄 Robust PDF Text Extraction: Extracts text accurately from a wide range of PDF formats.
- 🧠 Semantic Matching: Uses Sentence Transformers for semantic similarity beyond keyword matching.
- 💡 AI-Powered Evaluation Summaries (RAG): Integrates with Google Gemini 2.0 Flash for generating natural language explanations of match quality.
- ⚡ High-Performance FastAPI API: RESTful API with modern, async FastAPI backend.
- 📊 Candidate Ranking: Sorts candidates by similarity score with detailed AI feedback.
- 🔒 Secure API Key Management: Uses environment variables to manage secrets.
Experience HireFlow in action!
[Optional: Link to Live Hosted API/Frontend]
- Live API Endpoint:
http://your-hosted-api-url
- Live Web UI (if applicable):
http://your-frontend-url
Image: Screenshot of the /match_resumes
endpoint.
Image: POST request to /match_resumes
with resume files + job description.
Image: JSON response with ranked candidates and AI summaries.
- Upload files + input job description
- Display extracted results and similarity scores with AI summaries
Image: Flowchart from upload → FastAPI → extraction → embedding → LLM → JSON output
Image: Pipeline diagram showing raw text → embeddings → cosine similarity → LLM RAG
Category | Technology | Logo | Justification |
---|---|---|---|
Backend/API | Python | 🐍 | Primary language for AI/ML and API development |
FastAPI | ⚡ | High-performance API framework | |
Uvicorn | 🌀 | ASGI server for running FastAPI efficiently | |
PDF Parsing | PyMuPDF (fitz) | 📄 | Fast and robust PDF text extractor |
pdfplumber | 📄 | Fallback parser for difficult PDFs | |
NLP/Embeddings | Sentence-Transformers | 🧠 | Generates dense semantic embeddings |
all-MiniLM-L6-v2 | ⚙️ | Efficient pre-trained transformer model | |
AI/LLM (RAG) | Google Gemini 2.0 Flash | 🌠 | LLM used for RAG and human-like match evaluation |
Utilities | numpy, scikit-learn | 📊 | Vector operations and similarity computation |
python-dotenv | 🔐 | Secure API key/environment variable management | |
requests | 🌐 | For calling external APIs like Gemini | |
Dev Tools | Git / GitHub | 🧬 | Version control and collaboration |
PyCharm / VS Code | 💻 | Development environments | |
Jupyter Notebook | 📓 | Interactive testing and experimentation |
📁 Save tech logos under:
assets/tech_logos/
Placeholder files:sbert.png
,pymupdf.png
,pdfplumber.png
,uvicorn.png
,gemini.png
git clone https://github.com/your-username/hireflow.git
cd hireflow
Step 2: Create and Activate a Virtual Environment
python -m venv .venv
# On Windows
.\.venv\Scripts\activate
# On macOS/Linux
source .venv/bin/activate
Step 3: Install Dependencies
pip install -r requirements.txt
Step 4: Configure Environment Variables
GOOGLE_GENERATIVE_AI_API_KEY="YOUR_ACTUAL_GOOGLE_API_KEY_HERE"
Step 5: Prepare Sample Data
data/job_description.txt: Paste your sample job description.
data/resumes/: Add resume PDF files (e.g., resume_john_doe.pdf).
Step 6: Run the API
bash
Copy
Edit
python main.py
API will be available at: http://127.0.0.1:8000
✅ Testing the API
Visit: http://127.0.0.1:8000/docs
Use the interactive Swagger UI.
/match_resumes Endpoint
Method: POST
URL: http://127.0.0.1:8000/match_resumes
Body:
job_description: Text
resumes: Multiple PDF files (File)
Response will include extracted data, similarity scores, and AI summaries.
🛣️ Future Enhancements (Roadmap)
Frontend UI: Build with Streamlit/React/Vue
Advanced NER: Use spaCy or Hugging Face Transformers
Database Integration: Store resume/job data (PostgreSQL/MongoDB)
User Authentication: Multi-user support
Dockerization: Containerize with Docker
Cloud Deployment: Deploy on AWS/GCP/Render
JD Parsing: Auto-extract key requirements from job descriptions
Advanced LLM Integration: Fine-tune or expand RAG pipeline
🤝 Contribution
Contributions are welcome! Feel free to open issues or submit pull requests to improve HireFlow.
---
Let me know if you'd like this as a downloadable `.md` file or if you want a version with embedded images and links pre-filled.