How kaviprince/fake-job-posting-detector works
The product is a Streamlit fake-job detector: users submit posting text, a URL, or an image; the app extracts text, requests a prediction with risk and keyword indicators, and presents a downloadable report. A separate training workflow cleans labeled postings, builds TF-IDF features, and trains a classifier. The README describes Random Forest, but the sampled training code selects Logistic Regression or Naive Bayes; the checked-in model artifact’s internals were not inspected. The dataset and some training outputs are absent from the supplied tree, so their paths and uncertain wiring are left unspecified.
Main entry points: app.py Streamlit app · explain.py Prediction explainer · preprocessing.py Dataset cleaning · model_train.py Classifier training
Components 14
Detection app
- Streamlit app
app.py - Analysis report
app.py
Prediction analysis
- Prediction explainer
explain.py - Text cleaner
text_utils.py
Model training
- Dataset cleaning
preprocessing.py - Labeled postings
- Cleaned postings
- Feature extraction
feature_extraction.py - Classifier training
model_train.py
Model artifacts
- TF-IDF vectorizer
main/models/tfidf_vectorizer.pkl - Classifier model
main/models/fake_job_model.pkl
Other components
- Job seeker
- Job posting site
- Tesseract OCR
Connections 17
- Job seeker → Streamlit app: submits input
- Streamlit app → Job posting site: fetches URL
- Job posting site → Streamlit app: returns page
- Streamlit app → Tesseract OCR: extracts image text
- Streamlit app → Prediction explainer: requests prediction
- Prediction explainer → Text cleaner: cleans text
- Prediction explainer → TF-IDF vectorizer: transforms text
- Prediction explainer → Classifier model: predicts probability
- Streamlit app → Analysis report: renders and offers
- Labeled postings → Dataset cleaning: loads postings
- Dataset cleaning → Text cleaner: cleans fields
- Dataset cleaning → Cleaned postings: writes cleaned rows
- Cleaned postings → Feature extraction: loads text
- Feature extraction → TF-IDF vectorizer: fits and saves
- Cleaned postings → Classifier training: loads labels and text
- Classifier training → TF-IDF vectorizer: loads for transform
- Classifier training → Classifier model: trains and saves