Job Scam Detector & Trust Score for Job Postings avatar

Job Scam Detector & Trust Score for Job Postings

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Job Scam Detector & Trust Score for Job Postings

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

Ultimate Foresight Inc

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

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 scamRisk and ghostJobRisk separately, 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; fieldMap handles any other schema
  • ✅ Merge mode returns your original item plus a trust object (drop-in enrichment); compact mode returns only the key fields
  • ✅ Every flag includes id, type, points, reason, evidence and, where relevant, a source link

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

  1. Click Try for free or Start. The input is prefilled with two example postings.
  2. 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.
  3. Choose Output mode: original item plus trust object, or compact summary.
  4. Click Start. Each posting becomes one row.
  5. Filter by trust.trustBand or scamRisk, then download or fetch the results through the API.

How the trust score works

SignalPointsBased on
Asks you to pay (application, training or starter-kit fees)−35FTC "Job Scams"
Fake check, "send the rest", or buying equipment from an "approved vendor"−40FTC "Job Scams"
Receiving and reshipping packages from home−35FTC "Job Scams"
Moving money through your own bank account−40FTC "Job Scams"
"Task" jobs: product boosting, app optimization, pay to unlock tasks−35FTC task-scam alerts
Pay or deposits in crypto−20FTC crypto alert
Interview or contact only on Telegram, WhatsApp or text, or a chat-app apply link−25 / −20FTC
Asks for SSN, bank or ID documents to apply−25FTC
Recruiter uses a free webmail address (Gmail, Outlook…)−12FTC
A large employer is named but the contact is free webmail (impersonation pattern)−15DOL 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−20FTC
"Be your own boss", commission-only, MLM, no interview, mystery shopper or rebate processor−8 to −15FTC
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 −15Posting 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 +8DOL 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.

BandScore
low risk75 or higher
some caution55–74
review carefully35–54
high riskunder 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, companyWebsite and location. Use referenceDate (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-items with 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-score to 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 datasetId of 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.matchType and matchConfidence. 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

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.