ai-resume-matcher · in-browser demo

How well does this CV match the job?

Paste a CV and a job description. The same pipeline as the Python service runs in your browser: SBERT semantic similarity, TF-IDF keyword overlap, skill gaps and gendered-word flags. Your text is never uploaded.

 
 
The model (all-MiniLM-L6-v2, about 90 MB) downloads on first use and is cached after that.
–
Overall score (0.5 semantic + 0.2 keyword + 0.3 skills)

Semantic similaritySBERT cosine
Keyword overlapTF-IDF cosine
Skills coveredmatched / required

Matched skills

Asked for in the job and found in the CV

Missing skills

Asked for in the job, not found in the CV

Gendered words in the job ad

Whole words only: "he", "his", "man", "she", "her", "woman"

Shared keywords

Words both texts use, strongest first, highlighted below. Filler words such as "and" are hidden here but still count toward the keyword score.

CV

Job description

How it works and what it can't do
  • Both texts are lower-cased and stripped of punctuation, then embedded with all-MiniLM-L6-v2 (first 256 tokens, mean pooled). Semantic similarity is the cosine of the two embeddings.
  • Keyword overlap is a TF-IDF cosine fitted on just these two texts, computed the way scikit-learn's TfidfVectorizer does by default.
  • Skills come from a fixed list of 16 (Python, Docker, SQL, PyTorch, ...). A skill counts as present when the text names it, or when one of its lines or sentences is within cosine 0.4 of the skill's embedding (so "trained CNNs in PyTorch" can count as deep learning). Skills outside the list are not seen at all.
  • The gendered-word check only looks for six pronouns and nouns. It does not detect coded language ("rockstar", "aggressive") and is a prompt for a human to look, not a verdict.
  • The scores rank how close two texts are. They say nothing about whether a person can do the job; do not use them to reject candidates automatically.