Resume Matcher β BERT Model (Domain-Adapted MiniLM)
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.
Repository Contents
- applicant/
jobs.faiss
β FAISS index with pre-computed embeddings for job descriptions.
- dapt_minilm_huggingface/
- Fine-tuned model files (config, tokenizer, vocabulary, and weights).
How to Use
Applicant Use Case
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])
Recruiter Use Case
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}")
License
This project is released under the Apache License 2.0. It may be used for both academic and commercial purposes, with proper attribution.
Notes
- Use this model when you need contextual, semantic understanding rather than keyword matching.
- If you require a lighter baseline or need faster results, refer to the TF-IDF version.
- Downloads last month
- 97
Model tree for Om-Shandilya/resume-matcher-bert
Base model
sentence-transformers/all-MiniLM-L6-v2