How navyanaik30/resume-job-matcher works
This is a resume-to-job matcher: a user submits a resume PDF and job description, and the Flask endpoint returns an overall match, text and skill scores, matched and missing skills, and recommendations. Internally, the endpoint extracts and validates resume text, computes TF-IDF similarity and skill gaps, then scores features with a trained Random Forest. Separate dataset preparation and training scripts produce the runtime model artifacts. The tree includes a frontend, but its source was not sampled, so its request wiring is uncertain.
Main entry points: app.py Flask API · prepare_data.py Dataset Preparation · train_model.py Model Training · skill_gap.py Skill Gap
Components 14
Match Analysis
- Flask API
app.py - PDF Extraction
pdf_reader.py - Resume Validation
app.py - Text Similarity
app.py - Skill Gap
skill_gap.py - Match Scoring
app.py
User Interface
- Frontend
frontend/index.html
Model Preparation
- Dataset Preparation
prepare_data.py - Model Training
train_model.py
Data And Artifacts
- Source Dataset
dataset/job_resume_fit.csv - Processed Dataset
dataset/processed_dataset.csv - Random Forest
model.pkl - TF-IDF Vectorizer
vectorizer.pkl
Other components
- User
Connections 16
- User → Frontend: uses
- User → Flask API: submits PDF and job text
- Flask API → PDF Extraction: extracts text
- Flask API → Resume Validation: validates resume
- Flask API → Text Similarity: computes similarity
- Flask API → Skill Gap: requests skill gap
- Flask API → Match Scoring: scores features
- Flask API → TF-IDF Vectorizer: transforms text
- Flask API → Random Forest: predicts match
- Flask API → Frontend: returns results
- Dataset Preparation → Source Dataset: reads
- Dataset Preparation → Skill Gap: calculates skill gaps
- Dataset Preparation → Processed Dataset: writes
- Model Training → Processed Dataset: reads
- Model Training → Random Forest: writes
- Model Training → TF-IDF Vectorizer: writes