Inspiration
Online job scams are becoming increasingly convincing. Fake job postings often look legitimate while using suspicious emails, fake company information, misleading URLs, urgency tactics, or unrealistic offers to trick job seekers.
We built ScamShield to help users verify a job posting before applying or sharing sensitive information. The goal is to provide a simple Trust Score and explain the signals that make a job posting suspicious.
What it does
ScamShield is an AI-powered fake job posting detection platform that analyzes job listings and identifies potential scam indicators.
Key Features
- Job Posting Analysis - Analyze job descriptions using NLP and machine learning.
- URL Analysis - Detect suspicious URLs, insecure connections, and shortened links.
- Company Verification - Analyze available company information and identify missing or suspicious details.
- Recruiter Analysis - Check recruiter contact information, personal email addresses, phone numbers, and suspicious patterns.
- Machine Learning Detection - Uses trained ML models to classify potentially fraudulent job postings.
- Trust Score - Generates a score from 0–100% based on multiple risk factors.
- Risk Classification - Categorizes listings into different levels of trust/risk.
- Detailed Analysis - Shows the reasons and indicators contributing to the final result.
How we built it
ScamShield is built using Python and Flask, with a machine-learning pipeline for detecting fraudulent job postings.
Technology Stack
- Backend: Python, Flask
- Machine Learning: Scikit-learn
- NLP: TF-IDF Vectorization
- Models: SGD Classifier, Random Forest
- Data Balancing: SMOTE
- Frontend: HTML, CSS, JavaScript
- Deployment: Render
How we built it
ScamShield follows a multi-stage analysis pipeline that evaluates a job posting from different perspectives before generating the final decision.
Detection Pipeline
Ingested
↓
NLP Text
↓
URL Scan
↓
Company Check
↓
Recruiter Check
↓
Trust Score
↓
Decision
Pipeline Stages
| Stage | Description |
|---|---|
| Ingested | Collects and processes the job posting information provided by the user. |
| NLP Text | Analyzes the job description and identifies suspicious language, patterns, and textual indicators using NLP and machine learning. |
| URL Scan | Checks the submitted URL for security and suspicious characteristics such as insecure connections, shortened URLs, and potentially risky domains. |
| Company Check | Evaluates the available company information and looks for missing, inconsistent, or suspicious details. |
| Recruiter Check | Analyzes recruiter-related information such as contact details, email addresses, phone numbers, and other potential warning signs. |
| Trust Score | Combines the signals from the different checks to calculate an overall Trust Score. |
| Decision | Converts the final score and detected risk factors into an easy-to-understand assessment for the user. |
The pipeline is designed to avoid relying on a single signal. Instead, ScamShield combines NLP analysis, URL inspection, company verification, and recruiter checks to produce a more comprehensive assessment of a job posting.
The system combines text-based machine learning, numerical features, and rule-based security checks instead of depending on a single detection method.
Our current evaluation reports an ensemble accuracy of 98.11%, with 89.86% precision, 80.52% recall, and 84.93% F1-score on the evaluation dataset.
Challenges we ran into
1. Detecting different types of scams
Fake job postings do not follow one fixed pattern. Some scams look highly professional, while legitimate listings can sometimes contain unusual wording.
We had to combine multiple signals instead of relying only on keywords.
2. Reducing false positives
A system that flags every unusual job as a scam would not be useful. We combined ML predictions with additional verification signals to make the final assessment more reliable.
3. Extracting information from URLs
Automatically extracting useful information from different job-posting URLs was challenging because websites use different structures and formats.
4. Making ML results understandable
A simple "Scam" or "Not Scam" result does not tell users why a listing is suspicious. We therefore designed the system around a Trust Score + detailed risk indicators.
Accomplishments we're proud of
- Built a complete working fake job detection platform.
- Implemented both URL-based and manual job analysis.
- Combined NLP, machine learning, and heuristic analysis.
- Developed an explainable 0–100% Trust Score.
- Implemented multiple scam detection indicators.
- Achieved a reported 98.11% ensemble accuracy on our evaluation setup.
- Successfully deployed the application and made it publicly accessible.
- Created a simple interface that allows users to analyze suspicious job postings without requiring technical knowledge.
What we learned
Building ScamShield taught us that fraud detection is not simply about training a model and checking its accuracy.
We learned how to:
- Process and extract useful information from unstructured job descriptions.
- Apply TF-IDF and machine-learning classification to real-world text.
- Handle imbalanced datasets using SMOTE.
- Combine multiple models into an ensemble.
- Use rule-based checks alongside ML predictions.
- Design explainable results instead of relying on black-box predictions.
- Deploy a machine-learning application as a real-world web service.
Most importantly, we learned that high model accuracy does not automatically mean a reliable security product. Real-world systems need explainability, multiple sources of evidence, and continuous improvement.
What's next for ScamShield
We plan to expand ScamShield into a broader job-security platform.
Future Roadmap
- Browser extension for real-time job analysis
- Advanced domain and phishing detection
- Real-time company verification
- Recruiter identity and profile verification
- Improved explainable AI
- Continuous model retraining with new scam patterns
- Community-based scam reporting
- Multilingual job scam detection
- Public API for colleges, job boards, and recruitment platforms
- Mobile-friendly/PWA experience
Our Vision
Make ScamShield a security layer for the online job market, helping job seekers identify suspicious opportunities before they become victims of employment fraud.
Built With
- css
- flask
- html
- javascript
- machine-learning
- natural-language-processing
- python
- random-forest
- scikit-learn
- sgd-classifier
- smote
- tf-ide
Log in or sign up for Devpost to join the conversation.