Downloads · 30 days
126
13% of all-time downloads
Om-Shandilya/resume-matcher-bert
resume-matcher-bert is a sentence similarity model from Om-Shandilya. Use it when you need a score for how close two texts are. It is set up for sentence-transformers. The card lists the license as apache-2.0.
This repository contains a domain-adapted BERT model (MiniLM variant) designed for semantic matching of resumes and job descriptions. It also includes a pre-built FAISS index of job embeddings for fast similarity search.
Downloads · 30 days
126
13% of all-time downloads
All-time downloads
959
Public
Parameters
22.7M
2.9 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors273 MB · 54%
From the Hugging Face model README
This repository contains a domain-adapted BERT model (MiniLM variant) designed for semantic matching of resumes and job descriptions.
It also includes a pre-built FAISS index of job embeddings for fast similarity search.
jobs.faiss – FAISS index with pre-computed embeddings for job descriptions.An applicant can provide a single resume and retrieve the top-k most relevant job titles, based on semantic similarity rather than keyword overlap.
from sentence_transformers import SentenceTransformer
import faiss, numpy as np
# Load model
model = SentenceTransformer("your-username/resume-matcher-bert/dapt_minilm_huggingface")
# Encode resume
resume_text = "Experienced data scientist skilled in NLP and computer vision."
resume_vec = model.encode([resume_text])
# Load FAISS index
index = faiss.read_index("applicant/jobs.faiss")
# Search top matches
D, I = index.search(np.array(resume_vec, dtype="float32"), k=5)
print("Top matching job indices:", I[0])
A recruiter can upload a job description and a set of candidate resumes. The system encodes all documents with the MiniLM model and ranks the resumes according to their semantic closeness to the job description.
from sentence_transformers import SentenceTransformer
from sklearn.metrics.pairwise import cosine_similarity
import numpy as np
# Load model
model = SentenceTransformer("your-username/resume-matcher-bert/dapt_minilm_huggingface")
# Example job description
job_desc = "Hiring a data scientist with experience in Python, NLP, and deep learning."
job_vec = model.encode([job_desc])
# Example resumes
resumes = [
"Software engineer with Java and Spring Boot background.",
"Data scientist with Python, NLP, and machine learning expertise.",
"Frontend developer with React and UI/UX design skills."
]
# Encode resumes
resume_matrix = model.encode(resumes)
# Compute similarity
scores = cosine_similarity([job_vec], resume_matrix)[0]
# Rank resumes
ranked_indices = np.argsort(scores)[::-1]
for idx in ranked_indices:
print(f"Resume: {resumes[idx]} | Score: {scores[idx]:.4f}")
This project is released under the Apache License 2.0. It may be used for both academic and commercial purposes, with proper attribution.