metadata
title: Resume Screener and Skill Extractor
emoji: 📄
colorFrom: blue
colorTo: green
sdk: streamlit
sdk_version: 1.31.0
app_file: app.py
pinned: false
license: mit
Resume Screener and Skill Extractor
A Hugging Face Space application for efficiently screening resumes against job descriptions using a hybrid ranking approach that combines semantic similarity with keyword-based scoring.
Features
- Hybrid Resume Ranking: Combines semantic similarity (via NV-Embed-v2) with keyword-based BM25 scoring
- Skill Extraction: Automatically identifies relevant skills from resumes based on job requirements
- Fast Search: Uses FAISS for efficient similarity search with large resume collections
- Multi-format Support: Processes PDFs, DOCX, TXT, and CSV files
- Explanation Generation: Provides explanations for why each resume was ranked highly
- Visualization: Displays comparative scores and key matches for easy analysis
- Batch Processing: Supports uploading multiple resumes simultaneously
How It Works
- Input: Provide a job description and upload resumes (PDF, DOCX, TXT, or CSV format)
- Processing: The system creates embeddings for both the job description and resumes using the NV-Embed-v2 model
- Ranking: Calculates a hybrid score based on:
- Semantic similarity (cosine similarity between embeddings)
- Keyword relevance (BM25 scoring)
- Results: Returns the top 10 most suitable resumes with:
- Overall score and individual component scores
- Matched skills and key phrases
- Explanations for why each resume was ranked highly
Technical Details
Models Used
- NV-Embed-v2: State-of-the-art embedding model for semantic similarity
- QwQ-32B: Used for generating explanations (simulated in the current version)
Libraries
- FAISS: Facebook AI Similarity Search for fast vector similarity search
- rank_bm25: Implementation of the BM25 algorithm for keyword-based scoring
- Streamlit: For the user interface
- Hugging Face Transformers: For accessing and using the models
Configuration Options
The sidebar provides several configuration options:
- Model Selection: Choose which embedding model to use
- Ranking Weights: Adjust the balance between semantic similarity and keyword matching
- Results Count: Set how many top results to display
- FAISS Usage: Toggle the use of FAISS for faster searching with large resume collections
Getting Started
Online Usage
- Visit the Hugging Face Space at [URL]
- Enter a job description
- Upload resumes (PDF, DOCX, TXT, or CSV)
- Click "Find Top Candidates"
- Review the results
Local Installation
git clone https://huggingface.co/spaces/[username]/Resume_Screener_and_Skill_Extractor
cd Resume_Screener_and_Skill_Extractor
pip install -r requirements.txt
streamlit run app.py
Future Enhancements
- Integration with Hugging Face datasets for loading resumes directly
- Enhanced skill extraction using more sophisticated NLP techniques
- Real-time explanation generation using QwQ-32B
- Support for additional file formats and languages
- Customizable scoring algorithms and weights
License
MIT License
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference