root
ss
d60989a
|
raw
history blame
3.33 kB
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

  1. Input: Provide a job description and upload resumes (PDF, DOCX, TXT, or CSV format)
  2. Processing: The system creates embeddings for both the job description and resumes using the NV-Embed-v2 model
  3. Ranking: Calculates a hybrid score based on:
    • Semantic similarity (cosine similarity between embeddings)
    • Keyword relevance (BM25 scoring)
  4. 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

  1. Visit the Hugging Face Space at [URL]
  2. Enter a job description
  3. Upload resumes (PDF, DOCX, TXT, or CSV)
  4. Click "Find Top Candidates"
  5. 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