The problem
Employment scams have industrialized: fake recruiters post convincing job ads, move victims to WhatsApp or Telegram, and extract "registration fees" before vanishing. Job boards struggle to review every posting manually, and keyword blocklists are trivially evaded by rewording. This project treats scam detection as what it is — a text-classification problem — and solves it with a fine-tuned transformer. Trained on EMSCAD's 17,880 labeled postings, the model reads the full posting text and outputs a fraud probability, while token-attribution highlights show which phrases pushed the decision. The demo makes this tangible: paste any posting, get a risk score, and see the scam markers lit up in the text. The build is careful about its limits — it is a screening aid for platforms and job seekers, not a legal verdict on any employer.
The job seeker pasting a suspicious posting into the demo to check whether it looks fraudulent before applying.
Follow the working sequence
How it works
- EMSCAD postings are cleaned: HTML stripped, fields (title, description, requirements, company profile) concatenated into one document per posting.
- Text is tokenized with the BERT tokenizer (≤512 tokens, truncation/padding) and split with stratification into 80/10/10 train/validation/test.
- A BERT-base (or DistilBERT) classifier head is fine-tuned with class-weighted cross-entropy; early stopping on validation PR-AUC.
- The held-out test set is scored: fraud-class F1, PR-AUC and false-positive rate are computed for the report.
- In the demo, pasted text runs through the same pipeline; the model returns a fraud probability and token attributions highlight scam phrases.
- Scores are banded with guidance text so job seekers know what to do with each verdict.
Tech stack:
- Python 3, Hugging Face Transformers (BERT/DistilBERT)
- PyTorch, scikit-learn
- pandas, NumPy
- HTML/CSS/JavaScript analysis demo
- EMSCAD dataset (Kaggle)
Dataset & model details
- Dataset: EMSCAD (Employment Scam Aegean Dataset) — 17,880 real job postings with binary fraudulent/legitimate labels (866 fraudulent, 17,014 legitimate); fields include title, description, requirements, company profile, employment type, location.
- Task: Binary text classification; input = concatenated posting text, output = P(fraudulent).
- Model: BERT-base fine-tuned (DistilBERT option for the lightweight demo); class-weighted loss, stratified 80/10/10 split.
- Metrics: Fraud-class F1 0.91, false-positive rate 0.7% (design targets for the built-to-order fine-tuning run); PR-AUC as the primary metric. No measured figures are claimed before the run.
| Parameter | Value |
|---|---|
| Dataset size | 17,880 postings (4.8% fraudulent) |
| Max sequence | 512 tokens |
| Fraud-class F1 | 0.91 (design target) |
| False-positive rate | 0.7% (design target) |
| Inference | Approximately 40–120 ms per posting on CPU (expected) |
| Explainability | Token-attribution highlights per decision |
| Demo | Single-page web app with lexicon analyzer |
Project features
- [BERT fraud classifier] Fine-tuned transformer on EMSCAD; input = full posting text (≤512 tokens), output = fraud probability.
- [Scam-phrase highlighting] Token-attribution surfaces the exact phrases driving each decision, rendered as highlights in the analyzed posting.
- [Risk scoring with bands] Postings scored 0–100 and banded (legitimate / suspicious / likely fraudulent) with plain-language guidance per band.
- [Scam-anatomy analysis] Dashboard views showing which phrase families separate fraud from legitimate postings across the dataset.
- [Imbalance-aware training] Class-weighted loss and stratified splits handle the 4.8% fraud rate; PR-AUC is the primary metric, not raw accuracy.
- [Legitimate-vs-fraud examples] Curated example postings demonstrate both extremes for viva demonstrations.
- [Explainability report] Per-decision phrase attributions plus corpus-level signal rankings, documented for the report.
What is included
- Fine-tuning notebook (preprocessing → training → evaluation)
- Fine-tuned model weights and tokenizer config
- Analysis web demo with phrase highlighting
- Corpus-level scam-pattern analysis plots
- Project report PDF (background, transformer theory, scam typology, methodology, results)
- PPT presentation for final review
- Viva Q&A preparation document (BERT, attention, fine-tuning, class imbalance, PR-AUC)
Limitations & prerequisites
- F1 and false-positive figures are design targets; the report records the actual metrics from the fine-tuning run for the order.
- The model screens language patterns — a well-written scam with no known markers can slip through, and novel scam templates need retraining data.
- It judges postings, not employers: a legitimate company with sloppy ad copy may score as suspicious (hence the low false-positive target).
- English-language postings only in the shipped build; multilingual support is listed as future scope.
- This is a screening aid, not a legal determination — the report states this explicitly.
Frequently Asked Questions
What is the EMSCAD dataset?
The Employment Scam Aegean Dataset: 17,880 real job postings labeled fraudulent or legitimate, with fields like title, description, requirements and company profile. It is the standard public benchmark for this task.
Why a transformer instead of keywords?
Scammers reword constantly; keyword lists decay within months. BERT reads context — it distinguishes "fee for certification" (normal) from "fee to activate your account" (scam pattern) — and generalizes to unseen phrasing.
How does the highlighting work?
Token-attribution scores each input token's contribution to the fraud prediction; the demo renders the top contributors as highlights, so every verdict is inspectable.
What about the 4.8% fraud rate?
Real job boards are imbalanced like this. Training uses class-weighted loss and stratified splits, and PR-AUC — not accuracy — is the headline metric, since 95% accuracy is trivial by always predicting "legitimate".
Can it catch new scam styles?
Only partially. Truly novel templates need fresh labeled examples; the report documents a retraining protocol for keeping the model current.
Is this project suitable for a final-year project?
Yes — for AI/ML, Computer Science and IT programs. It demonstrates transformer fine-tuning, imbalance handling, explainability and a user-facing demo. Suitable for B.E./B.Tech final-year projects in AI & Machine Learning, Computer Science and IT.
Components & software requirements
- Python 3, Hugging Face Transformers (BERT/DistilBERT)
- PyTorch, scikit-learn
- pandas, NumPy
- HTML/CSS/JavaScript analysis demo
- EMSCAD dataset (Kaggle)
Dataset & model details
- Dataset: EMSCAD (Employment Scam Aegean Dataset) — 17,880 real job postings with binary fraudulent/legitimate labels (866 fraudulent, 17,014 legitimate); fields include title, description, requirements, company profile, employment type, location.
- Task: Binary text classification; input = concatenated posting text, output = P(fraudulent).
- Model: BERT-base fine-tuned (DistilBERT option for the lightweight demo); class-weighted loss, stratified 80/10/10 split.
- Metrics: Fraud-class F1 0.91, false-positive rate 0.7% (design targets for the built-to-order fine-tuning run); PR-AUC as the primary metric. No measured figures are claimed before the run.
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.
Download free synopsis (PDF)
Enter your name and WhatsApp number — the synopsis PDF downloads immediately. We may send occasional project updates on WhatsApp; no spam.