AI / NLP application
Resume Ranker
A Flask resume-ranking workflow combining document extraction, sentence embeddings, TF-IDF similarity, structured skills, and job-description matching.
View repository01 / COMPONENTS & DATA FLOW
Inside the system.
- 01PDF / DOCX
- 02Text + NLP features
- 03Semantic + lexical similarity
- 04Ranked result
Document extraction
The application uses PyPDF2 and docx2txt, with pdf2image and pytesseract available for scanned inputs. It parses resume content into structured fields.
Two matching signals
SentenceTransformer embeddings provide cosine semantic similarity. A TF-IDF vectorizer provides a separate keyword similarity against the job description.
Structured ranking
The ranker combines configured semantic and keyword weights with skills and other extracted signals. Results expose component scores rather than just a single unexplained number.
02 / IMPLEMENTATION DECISIONS
Why it works this way.
Lexical and semantic signals stay separate
Exact terminology and paraphrased experience are different matching cases. Keeping their scores visible helps explain why a resume ranked the way it did.
Extraction quality affects matching
OCR or parsing mistakes become inputs to both similarity paths. A confident-looking ranking should still be checked against the extracted document text.
03 / SCOPE & TRADEOFFS
The implementation boundary.
A ranking tool for exploring fit against a job description. Its scores do not predict hiring decisions or establish compatibility with every employer’s applicant-tracking system.
04 / READ THE IMPLEMENTATION