Job Scam Detector & Trust Score for Job Postings
Pricing
from $2.00 / 1,000 results
Job Scam Detector & Trust Score for Job Postings
Score job postings 0-100 for scam and ghost-job risk. For job boards, career centers and job seekers who scrape LinkedIn or Indeed. Flags upfront fees, fake checks, reshipping, task scams, chat-app interviews and stale postings, with evidence and FTC sources, plus the employer's H-1B filing history.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Ultimate Foresight Inc
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Job Scam Detector & Trust Score adds a 0-100 trust score to every job posting, with scam signals (upfront fees, fake checks, reshipping, "task" jobs, chat-app interviews, free-mail recruiters, pay that's too good to be true), ghost-job signals (very old, evergreen or expired postings) and the employer's H-1B filing history from U.S. Department of Labor data. Every flag comes with a plain-English reason and the exact words that triggered it. It runs on the output of LinkedIn and Indeed job scrapers or on jobs you paste in. Click Start with the prefilled example to see a result in a few seconds.
Risk signals, not accusations. A low score means "review this before you publish it or apply". It does not mean the employer is fraudulent, and a high score doesn't guarantee a job is real or still open. Scammers often impersonate real companies. Rule-based, no AI, no network calls.
What does Job Scam Detector & Trust Score do?
- ✅ Scores each posting 0-100 with a band (
low risk,some caution,review carefully,high risk) - ✅ Reports
scamRiskandghostJobRiskseparately, so a stale but real job isn't labeled a scam - ✅ Detects scam patterns from FTC job-scam guidance: fees, fake checks and "approved vendors", reshipping, money mules, task scams, crypto pay, Telegram/WhatsApp interviews, SSN or bank details upfront, look-alike email domains
- ✅ Adds the employer's H-1B LCA history (86,789 employers, DOL decisions 2024-10-01 to 2026-06-30): match type, certified count, last decision date, sponsor score
- ✅ Auto-detects fields from LinkedIn-style and Indeed-style scraper output;
fieldMaphandles any other schema - ✅ Merge mode returns your original item plus a
trustobject (drop-in enrichment); compact mode returns only the key fields - ✅ Every flag includes
id,type,points,reason,evidenceand, where relevant, asourcelink
Who is it for?
- 📰 Job boards, aggregators and newsletters that republish scraped jobs and don't want to show scams or dead listings
- 🎓 Career coaches, bootcamps and university career centers that send job lists to students
- 🌍 International job seekers and visa tools, thanks to the H-1B sponsor history on every posting
- 🔬 Researchers studying job scams, ghost jobs or pay transparency
How to check job postings for scams
- Click Try for free or Start. The input is prefilled with two example postings.
- Replace them with your own jobs in Jobs (JSON), or pick the dataset of a LinkedIn, Indeed or other job scraper in Jobs dataset ID.
- Choose Output mode: original item plus
trustobject, or compact summary. - Click Start. Each posting becomes one row.
- Filter by
trust.trustBandorscamRisk, then download or fetch the results through the API.
How the trust score works
| Signal | Points | Based on |
|---|---|---|
| Asks you to pay (application, training or starter-kit fees) | −35 | FTC "Job Scams" |
| Fake check, "send the rest", or buying equipment from an "approved vendor" | −40 | FTC "Job Scams" |
| Receiving and reshipping packages from home | −35 | FTC "Job Scams" |
| Moving money through your own bank account | −40 | FTC "Job Scams" |
| "Task" jobs: product boosting, app optimization, pay to unlock tasks | −35 | FTC task-scam alerts |
| Pay or deposits in crypto | −20 | FTC crypto alert |
| Interview or contact only on Telegram, WhatsApp or text, or a chat-app apply link | −25 / −20 | FTC |
| Asks for SSN, bank or ID documents to apply | −25 | FTC |
| Recruiter uses a free webmail address (Gmail, Outlook…) | −12 | FTC |
| A large employer is named but the contact is free webmail (impersonation pattern) | −15 | DOL data + FTC |
| Email domain doesn't match the company website, or a look-alike domain ("acme-careers.xyz") | −10 / −20 | |
| Pay far too high for a no-experience remote entry-level role | −20 | FTC |
| "Be your own boss", commission-only, MLM, no interview, mystery shopper or rebate processor | −8 to −15 | FTC |
| Missing company name, very thin description, ALL CAPS, "!!!" | −4 to −8 | |
| Ghost job: evergreen or "talent pool" wording, posted 45+ or 90+ days ago, reposted, expired | −5 to −15 | Posting metadata |
| No pay range (noted when the location has a pay-transparency law) | −2 / −4 | |
| Positive: applies through a known ATS or job board, apply link or email on the company domain, pay stated, employer appears in DOL H-1B filings | +3 to +8 | DOL LCA data |
Scoring: every posting starts at 80, then the points above are added. If a strong scam signal is present, positive points are capped at +5. The score is kept between 0 and 100.
| Band | Score |
|---|---|
| low risk | 75 or higher |
| some caution | 55–74 |
| review carefully | 35–54 |
| high risk | under 35 |
scamRisk and ghostJobRisk are reported separately, so a stale but real job isn't labeled a scam.
Employer H-1B / DOL history
Company names are matched against U.S. DOL OFLC LCA disclosure data (H-1B, H-1B1 and E-3), covering decisions from 2024-10-01 to 2026-06-30 for 86,789 employers. This data is public domain. Each posting gets:
- the match type and confidence;
- the certified H-1B LCA count;
- the date of the last certified decision;
- a 0–100 sponsor score and tier;
- whether the posting itself says it sponsors visas.
If a posting promises visa sponsorship but the employer name has no LCA filings, it gets a small flag. That can also just mean a new filer or a name mismatch.
Input example
This is the prefilled input:
{"jobs": [{"title": "Remote Administrative Assistant (No Experience)","companyName": "Global Logistics Partners","salary": "$45 - $55 an hour","location": "Remote","postedAt": "2 days ago","email": "hr.globallogisticspartners@gmail.com","description": "Work from home, no experience needed! You will receive a check to purchase your home office equipment from our approved vendor. Deposit the check and send the remaining balance via Zelle. Interview will be conducted via Telegram."},{"title": "Software Engineer II","companyName": "Google","location": "Sunnyvale, CA","postedAt": "2026-10-14","salary": "$141,000 - $202,000 a year","applyUrl": "https://careers.google.com/jobs/results/123","companyWebsite": "https://google.com","description": "Minimum qualifications: Bachelor's degree or equivalent practical experience. 2 years of experience with software development in one or more programming languages. About the job: our team builds the payments platform used by millions of merchants. You will design, test and launch services, review code, and work with product managers. The US base salary range for this full-time position is $141,000-$202,000 + bonus + equity + benefits."}]}
Scoring a scraper's dataset in compact mode:
{"datasetId": "YOUR_LINKEDIN_OR_INDEED_JOBS_DATASET_ID","outputMode": "compact","checkSponsorHistory": true,"staleDays": 45,"veryStaleDays": 90}
Fields detected automatically:
- LinkedIn style:
title,companyName,descriptionText,salaryInfo,applyUrl,postedAt - Indeed style:
positionName,company,description,salary,externalApplyLink,postingDateParsed,isExpired - also
email,companyWebsiteandlocation. UsereferenceDate(YYYY-MM-DD) to score an old export as of a given date.
Output example
This is real output from the prefilled input above (run on 2026-10-21, default merge mode), not trimmed. Posting ages are computed from the run date, so a rerun later gives different postedDaysAgo values.
[{"title": "Remote Administrative Assistant (No Experience)","companyName": "Global Logistics Partners","salary": "$45 - $55 an hour","location": "Remote","postedAt": "2 days ago","email": "hr.globallogisticspartners@gmail.com","description": "Work from home, no experience needed! You will receive a check to purchase your home office equipment from our approved vendor. Deposit the check and send the remaining balance via Zelle. Interview will be conducted via Telegram.","trust": {"trustScore": 0,"trustBand": "high risk","scamRisk": "high","ghostJobRisk": "none found","flagCount": 5,"flags": [{"id": "check_overpayment","type": "scam","points": -40,"reason": "Fake-check / send-the-rest / approved-vendor pattern. FTC: an offer that includes depositing a check and sending money on is a scam.","evidence": "Deposit the check and send the remaining","source": "https://consumer.ftc.gov/articles/job-scams"},{"id": "chat_app_interview","type": "scam","points": -25,"reason": "Interview or contact only through chat apps (Telegram/WhatsApp/text). FTC: real employers don't recruit that way.","evidence": "Interview will be conducted via Telegram","source": "https://consumer.ftc.gov/consumer-alerts/2025/08/how-spot-avoid-task-scams"},{"id": "pay_too_good","type": "scam","points": -20,"reason": "Pay (~$93,600+/yr) for a no-experience/remote entry-level role is far above what such roles typically pay - a common scam lure.","evidence": "$45 - $55 an hour","source": "https://consumer.ftc.gov/articles/job-scams"},{"id": "free_email_contact","type": "scam","points": -12,"reason": "Recruiter/apply contact uses a free webmail address instead of a company domain.","evidence": "gmail.com","source": "https://consumer.ftc.gov/articles/job-scams"},{"id": "thin_description","type": "scam","points": -5,"reason": "Very short description (229 chars): few verifiable details."},{"id": "pay_range_listed","type": "positive","points": 3,"reason": "Pay is stated."}],"postedDaysAgo": 2,"salaryAnnualizedUsd": [93600,114400],"sponsorHistory": {"matchType": "none","hasLcaRecord": false},"sponsorshipStatedInPosting": "not stated","disclaimer": "Automated risk signals from public FTC job-scam guidance, posting metadata and U.S. DOL H-1B LCA data. A low score means 'review before applying or publishing', not that the employer is fraudulent; a high score is not a guarantee the job is real or open."}},{"title": "Software Engineer II","companyName": "Google","location": "Sunnyvale, CA","postedAt": "2026-10-14","salary": "$141,000 - $202,000 a year","applyUrl": "https://careers.google.com/jobs/results/123","companyWebsite": "https://google.com","description": "Minimum qualifications: Bachelor's degree or equivalent practical experience. 2 years of experience with software development in one or more programming languages. About the job: our team builds the payments platform used by millions of merchants. You will design, test and launch services, review code, and work with product managers. The US base salary range for this full-time position is $141,000-$202,000 + bonus + equity + benefits.","trust": {"trustScore": 97,"trustBand": "low risk","scamRisk": "none found","ghostJobRisk": "none found","flagCount": 0,"flags": [{"id": "pay_range_listed","type": "positive","points": 3,"reason": "Pay is stated."},{"id": "domain_matches_company","type": "positive","points": 6,"reason": "Apply link or contact email is on the company's own domain.","evidence": "google.com"},{"id": "employer_in_dol_filings","type": "positive","points": 8,"reason": "Employer appears in U.S. DOL H-1B LCA filings (16023 certified, FY2025-FY2026 data) - evidence of a real U.S. employer entity.","evidence": "Google LLC","source": "https://www.dol.gov/agencies/eta/foreign-labor/performance"}],"postedDaysAgo": 7,"salaryAnnualizedUsd": [141000,202000],"sponsorHistory": {"matchType": "exact","matchConfidence": 1,"matchedEmployer": "Google LLC","hasLcaRecord": true,"certifiedH1bLca": 16023,"lastCertifiedDecision": "2026-06-30","sponsorScore": 100,"sponsorTier": "frequent sponsor"},"sponsorshipStatedInPosting": "not stated","disclaimer": "Automated risk signals from public FTC job-scam guidance, posting metadata and U.S. DOL H-1B LCA data. A low score means 'review before applying or publishing', not that the employer is fraudulent; a high score is not a guarantee the job is real or open."}}]
How much does it cost to score job postings?
This Actor uses pay-per-event pricing:
- $0.002 per posting (one result row per posting)
- a tiny Actor start fee of $0.00005 per run
- plus the small Apify platform usage of the run, paid by you. For the prefilled 2-posting example this was about $0.0001 (512 MB, about 2 seconds).
So 100 postings cost about $0.20 and 1,000 postings about $2, plus a few cents or less of platform usage. You pay only for postings actually checked. Apify lets you set a maximum cost per run so a large batch can never exceed your budget.
Use it through the API, integrations or AI agents
- API: run it and get results in one call:
POST https://api.apify.com/v2/acts/ultimatemc~job-posting-trust-score/run-sync-get-dataset-itemswith your Apify token and the input JSON as the body. Client libraries for JavaScript and Python are on the API tab. - AI agents (MCP): add
https://mcp.apify.com?tools=ultimatemc/job-posting-trust-scoreto Claude, Cursor, ChatGPT or any MCP client, and your agent can check whether a job posting looks like a scam as a tool. See Apify MCP server. - Chain it after a scraper: pass the
datasetIdof another Actor's run, or trigger this Actor with a webhook when the scraper finishes. - Automation: schedule runs, trigger webhooks, or connect Make, Zapier, n8n, Google Sheets and other integrations from Apify Console.
FAQ
Does a low score mean the job is a scam?
No. It means the posting has warning signs worth checking. Read the evidence in each flag before acting.
Does a high score mean the job is real?
No. Scammers copy real companies' names and postings. The score only reflects the text and metadata you supply.
Does it visit the job page or check the website?
No. It makes no network calls. It doesn't check domain age or whether the posting is still live.
Does it use AI?
No. It's rule-based, so the same posting always gets the same score, and every scam rule cites public FTC guidance.
How current is the H-1B data?
The bundled DOL OFLC LCA disclosure data covers decisions from 2024-10-01 to 2026-06-30 (public domain), with personal fields removed.
Limitations
- English only and keyword-based. It can miss new scam scripts and misread unusual wording.
- Free webmail is common for real small local employers, so it costs only a moderate penalty.
- H-1B matching uses the employer name only and can pick a sibling entity; check
sponsorHistory.matchTypeandmatchConfidence. Most legitimate small employers never file LCAs, so a missing record isn't a negative signal. - Ghost-job signals depend on the dates your scraper returns. "Reposted" is detected only when the scraper exposes it.
- U.S.-focused (FTC guidance, DOL data, state pay-transparency notes).
Other tools by Ultimate Foresight
- Ad Copy Policy Checker for Meta, Google & TikTok: checks ad text against Facebook, Instagram, Google Ads and TikTok ad policies before you submit.
- H-1B Visa Sponsor Checker & Score for Job Listings: adds Department of Labor H-1B sponsorship history and a 0-100 score to company names or job listings.
- Chain vs Independent Labeler for Google Maps Leads: labels local businesses as chain, franchise or independent.
- YouTube Monetization Checker for Scripts & Titles: pre-checks titles, descriptions and scripts for wording that leads to limited or no ads.
- Etsy & eBay Listing Policy & Banned Item Checker: pre-checks marketplace listings for prohibited items, counterfeit wording and off-platform contact.
- SAM.gov Amendment & Opportunity Change Tracker: shows what changed between versions of a SAM.gov notice: deadlines, set-asides, NAICS and attachments.
- Product Recall Checker for Brands, UPCs & Products: matches your brands, products, UPCs or model numbers against CPSC, FDA and NHTSA recalls.
- App Store & Google Play Listing Policy Checker: pre-checks app names, subtitles and descriptions against Apple and Google Play metadata rules.
Found a scam pattern we miss or a false positive? Open an issue on the Issues tab with the posting text, and we'll review the rule.