How sanjay-sahoo-0804/smart-resume-skill-gap-analyzer works
The product is a Flask resume analyzer and job recommender. Its implemented request flow accepts a PDF and optional job description, extracts and cleans resume text, computes TF-IDF-based scores and skill gaps, ranks jobs, and renders results. The README also describes Sentence-BERT matching, but the sampled web route uses TF-IDF; the experimental semantic modules are shown as a separate, optional branch. Wiring beyond the sampled source is omitted.
Main entry points: app.py Flask route · result.html Results view · job_recommender.py Job ranking · bert_model.py Sentence encoder
Components 15
Web workflow
- Flask route
app.py - Resume form
templates/index.html - Results view
templates/result.html
Resume analysis
- PDF extraction
pdf_reader.py - Text cleaning
preprocess.py - Job match score
tfidf_similarity.py - Skill catalogue
skills_list.txt - Skill gap detection
skill_gap.py - Skill match scores
tfidf_skill_match.py
Job recommendations
- Job ranking
job_recommender.py - Job descriptions
jobs/jobs.json
Experimental semantics
- Sentence encoder
experimental/bert_model.py - Semantic similarity
experimental/semantic_similarity.py - Semantic skill scores
experimental/semantic_skill_match.py
Other components
- Candidate
Connections 14
- Candidate → Resume form: submits resume
- Candidate → Flask route: sends request
- Flask route → PDF extraction: extracts PDF
- Flask route → Text cleaning: cleans text
- Flask route → Job match score: scores optional JD
- Flask route → Skill catalogue: loads skills
- Flask route → Skill gap detection: checks skills
- Flask route → Skill match scores: scores skills
- Flask route → Job ranking: requests rankings
- Job ranking → Job descriptions: reads jobs
- Flask route → Results view: renders results
- Results view → Candidate: displays analysis
- Semantic similarity → Sentence encoder: encodes text
- Semantic skill scores → Sentence encoder: encodes skills