Open Source ยท MIT License

AI-Powered
Job Scam Detection

Protect yourself from fraudulent job postings with 40+ detection signals, intelligent scoring, and real-time analysis across every major job platform.

$ pip install sentinel
$ sentinel scan "https://linkedin.com/jobs/view/..."
โœ“ Score: 78/100 โ€” HIGH RISK
โ†ณ 6 signals triggered: upfront_payment, ssn_requested, ...

How It Works

Three steps from suspicious URL to actionable safety score โ€” in milliseconds.

1 ๐Ÿ“‹

Paste the URL or Text

Drop in any job posting URL or paste the description directly. Supports LinkedIn, Indeed, RemoteOK, USAJobs, Remotive, and plain text.

2 ๐Ÿง 

AI Multi-Signal Analysis

40+ signals fire in parallel โ€” regex patterns catch red flags in under 10ms, while NLP models analyze sentiment, structure, and linguistic cues.

3 ๐Ÿ“Š

Get Your Safety Score

A confidence score from 0โ€“100 with a full signal breakdown, category weights, and actionable guidance on what to investigate.

Built for Real Protection

Every design decision prioritizes accuracy โ€” because false positives cost people jobs, and false negatives cost people money.

๐Ÿ”ฌ

Multi-Signal Analysis

40+ independent signals spanning red flags, structural patterns, ghost job indicators, linguistic markers, and positive trust signals โ€” each calibrated against a dataset of 1,500+ real postings.

๐Ÿ“ˆ

Intelligent Scoring

Confidence grows with accumulated evidence rather than binary rules. Multiple weak signals combine correctly, and contradictory positive signals reduce false alarms โ€” like a trained investigator would reason.

๐Ÿ”„

Adaptive Detection

Detection improves continuously based on user-reported outcomes. Scam tactics that evade today's detectors get caught faster tomorrow as the system adapts.

โšก

Real-Time Detection

Regex-based signals complete in under 10ms per posting, making it viable to scan hundreds of listings during a job search session without perceptible delay.

๐ŸŒ

Multi-Source Coverage

Native scrapers for LinkedIn, RemoteOK, Indeed, USAJobs, and Remotive โ€” with a generic extractor that handles any URL. Job boards update their HTML; our adapters stay current.

๐Ÿ”Œ

Browser Extension

Analyze postings inline as you browse. Risk badges appear directly on job listing cards โ€” no copy-paste needed. Works on Chrome, Firefox, and Edge.

Live Demo

Paste a job description below and get an instant client-side scam analysis. No data is sent to any server.

job-description.txt โ€” JobSentinel Analyzer
Full Demo โ†’

Signal Categories

Every signal is hand-crafted, independently weighted, and continuously validated against known scam patterns.

Upfront payment required
SSN / banking info requested
Guaranteed income claims
Check cashing scheme
MLM / pyramid structure
High-pressure urgency tactics
Excessive personal info demand
Impersonation of known brands
No company name or address
Fake recruiter contact
Wire transfer / money order
Interview via text only
Request for gift cards
Fake government job offer
Vague company description
Unusually high salary claim
Grammar and spelling errors
Reshipping / package handling
Cryptocurrency payment
Generic job description
Mismatched domain / email
No physical address
Immediate hire offer
Mystery shopper role
No formal application
Copied posting text
Perpetually open role
No contact information
Posting age anomaly
Candidate pool building
No hiring manager listed
Duplicated across cities
Non-existent department
No qualifications listed
Missing salary range
Zero responsibilities listed
Unusually short description
No job title clarity
Detailed company info
Structured interview process
Legitimate benefits listed
Verified employer badge
Clear salary range
LinkedIn profile linked
ATS / careers portal link
Named hiring manager

By the Numbers

Built with rigor, tested against reality.

0
Detection Signals
0
Signal Categories
0
Test Cases Validated
<10ms
Detection Latency

Get Started in Seconds

Installable via pip. Works as a CLI, Python library, or REST API.

Installation
$ pip install sentinel

# or install from source
$ git clone https://github.com/ericrihm/JobSentinel
$ cd JobSentinel && pip install -e .
CLI Usage
# Scan a single URL
$ sentinel scan "https://linkedin.com/jobs/view/..."

# Analyze a text file
$ sentinel analyze posting.txt

# Batch scan from a list
$ sentinel batch urls.txt --output results.json
Python API
from sentinel import Sentinel

s = Sentinel()
result = s.analyze(url="https://...")

print(result.score)        # 78
print(result.verdict)      # HIGH_RISK
print(result.signals)      # [...signals...]
Sample Output
โœ“ JobSentinel v0.9.0
  Analyzing: linkedin.com/jobs/view/...

  Score:   78 / 100 (HIGH RISK)
  Signals: 6 triggered

  โ— upfront_payment    (+35)
  โ— ssn_early          (+40)
  โ— urgency_pressure   (+22)
  โœ“ structured_process (-12)

Open Source

MIT licensed. Built in the open, improved by the community.

๐Ÿ“œ

MIT License

Use it, fork it, embed it in your product. No strings attached.

View License
๐Ÿค

Contributions Welcome

Add new signals, improve scrapers, report false positives. See CONTRIBUTING.md to get started.

Contribute
๐Ÿ›

Report Issues

Found a missed scam pattern or a false positive? Open an issue with the posting (redacted) and we'll fix it.

Open Issue