USA OSHA Contractor Risk Lead Finder avatar

USA OSHA Contractor Risk Lead Finder

Pricing

from $2.00 / 1,000 osha risk leads

Go to Apify Store
USA OSHA Contractor Risk Lead Finder

USA OSHA Contractor Risk Lead Finder

Find U.S. contractor employers in public OSHA inspection data and rank safety, insurance, and vendor-risk leads with violations, penalties, risk scores, and CRM notes.

Pricing

from $2.00 / 1,000 osha risk leads

Rating

0.0

(0)

Developer

SignalCrawl

SignalCrawl

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Find US contractor employers in public OSHA inspection and enforcement records, then rank them as safety consulting, insurance loss-control, and vendor-risk leads.

This Actor queries official OSHA IMIS Establishment Search pages on osha.gov, parses inspection result tables, optionally opens each inspection detail page, and returns normalized OSHA risk leads with citations, penalties, flags, scoring, notes, source URLs, and stable dedupe keys.

Pricing Target

Target pricing: $2.00 per 1,000 OSHA risk leads.

Primary event: OSHA risk lead.

Why Use This Actor

OSHA data is public, but it is not packaged for sales, underwriting, or vendor monitoring workflows. This Actor turns official inspection pages into dedupe-ready leads that can be routed into a CRM, spreadsheet, risk engine, or AI workflow.

Use it to:

  • Find contractors with recent OSHA inspections by trade, state, NAICS, or SIC.
  • Prioritize employers with violations, serious/repeat/willful flags, or higher penalties.
  • Build safety consultant outreach lists.
  • Trigger insurance loss-control reviews.
  • Monitor contractor/vendor risk before onboarding or renewal.
  • Run recurring searches and dedupe by OSHA inspection number.

Data Source

The Actor uses official OSHA/DOL public pages:

  • OSHA Establishment Search: https://www.osha.gov/ords/imis/establishment.search
  • OSHA Inspection Detail: https://www.osha.gov/ords/imis/establishment.inspection_detail

OSHA states that IMIS data is updated over time and that open cases are especially dynamic. Treat scores and notes as prioritization signals, not legal conclusions.

Input

{
"searchTerms": ["roofing", "excavation", "concrete"],
"states": ["TX", "FL"],
"naicsCodes": ["23"],
"startDate": "2024-05-20",
"endDate": "2026-05-20",
"caseStatus": "all",
"violationStatus": "both",
"contractorsOnly": true,
"includeDetails": true,
"minRiskScore": 0,
"maxItems": 100,
"maxPagesPerQuery": 2,
"pageSize": 20
}

Input Options

FieldTypeDescription
searchTermsarrayEstablishment terms searched on OSHA, such as roofing, excavation, electrical contractor, or concrete.
statesarrayState abbreviations. Leave empty for all states.
naicsCodesarrayOptional parsed NAICS prefix filters, such as 23 or 238160.
sicCodesarrayOptional parsed SIC prefix filters.
startDatestringInspection start date, YYYY-MM-DD or MM/DD/YYYY.
endDatestringInspection end date, YYYY-MM-DD or MM/DD/YYYY.
caseStatusstringall, open, or closed.
violationStatusstringboth, yes, or no.
contractorsOnlybooleanKeeps parsed NAICS codes starting with 23 when a NAICS code is available.
includeDetailsbooleanOpens OSHA detail pages for city, address, citation flags, and penalties.
minRiskScoreintegerSave only leads with risk score at or above this value.
maxItemsintegerMaximum unique leads to save.
maxPagesPerQueryintegerOSHA result pages per search term/state pair.
pageSizeintegerOSHA rows requested per result page.

Output

{
"platform": "osha.gov",
"source": "OSHA IMIS Establishment Search",
"employerName": "Acme Roofing LLC",
"state": "TX",
"city": "Plano",
"siteAddress": "Acme Roofing LLC, 1250 Industrial Blvd, Plano, TX 75023",
"naics": "238160",
"naicsDescription": "Roofing Contractors",
"sic": null,
"sicDescription": null,
"inspectionId": "1850882.015",
"activityNumber": "1850882.015",
"openDate": "2025-08-20",
"caseStatus": "OPEN",
"inspectionType": "Referral",
"scope": "Partial",
"violationCount": 3,
"serious": true,
"repeat": false,
"willful": false,
"currentPenalty": 7946,
"initialPenalty": 7946,
"penaltyScore": 52,
"riskScore": 86,
"safetyConsultantNote": "Acme Roofing LLC in Plano, TX has 3 OSHA violation(s) tied to serious citation; review fall protection, training, and jobsite controls before outreach.",
"insuranceNote": "Use OSHA inspection 1850882.015 as a loss-control trigger; current penalty signal is $7,946 and risk score is 86/100.",
"vendorRiskNote": "Vendor risk review should verify corrective actions, citation status, EMR/loss runs, and subcontractor safety controls for Acme Roofing LLC.",
"matchedTerm": "roofing",
"dedupeKey": "osha:1850882.015",
"url": "https://www.osha.gov/ords/imis/establishment.inspection_detail?id=1850882.015",
"sourceUrl": "https://www.osha.gov/ords/imis/establishment.inspection_detail?id=1850882.015",
"sourceSearchUrl": "https://www.osha.gov/ords/imis/establishment.search?...",
"scrapedAt": "2026-05-20T00:00:00+00:00"
}

Scoring

penaltyScore is based on the highest parsed current or initial OSHA penalty total for the inspection.

riskScore combines:

  • Violation count.
  • Serious, repeat, and willful citation flags.
  • Inspection type signals such as complaint, referral, accident, fatality/catastrophe, or planned inspection.
  • Inspection scope.
  • Penalty score.

The score is intentionally transparent and deterministic so users can sort, filter, and override it downstream.

Common Run Patterns

Roofing fall protection outreach:

{
"searchTerms": ["roofing", "fall protection"],
"states": ["TX", "FL"],
"naicsCodes": ["238160"],
"violationStatus": "yes",
"includeDetails": true,
"minRiskScore": 55
}

Excavation insurance watchlist:

{
"searchTerms": ["excavation", "trenching", "site work"],
"states": ["CA", "AZ", "NV"],
"naicsCodes": ["238910"],
"includeDetails": true,
"minRiskScore": 45
}

Vendor-risk construction screening:

{
"searchTerms": ["construction", "concrete", "electrical contractor"],
"states": [],
"naicsCodes": ["23"],
"violationStatus": "yes",
"contractorsOnly": true,
"minRiskScore": 60
}

Notes And Limitations

  • This Actor uses public OSHA pages and does not require private credentials.
  • OSHA result pages are HTML, not a stable JSON API; parsing is defensive and may need maintenance if OSHA changes page layout.
  • OSHA indicates that open cases can change and citation details may lag.
  • Employer names can be similar; verify address and inspection detail before taking action.
  • Risk notes are workflow aids for lead prioritization, insurance review, and vendor-risk triage, not legal advice.

Local QA

python tests/qa_harness.py
python -m compileall src tests

The QA harness covers result table parsing, detail page parsing, penalty aggregation, score creation, filter logic, and JSON schema/example validity.