AIDEVELOPER TOOLS

Workplace Compliance Intelligence

Unified compliance profile combining **OSHA safety inspections**, **EPA ECHO environmental compliance**, and **DOL Wage & Hour enforcement** data for any U.S. company. Get a single risk-scored report with penalties, violations, back wages, and significant findings -- all from one search.

0
Users (30d)
0
Runs (30d)
90
Actively maintained
Maintenance Pulse
Free
Per event

Maintenance Pulse

90/100
Last Build
Today
Last Version
1d ago
Builds (30d)
8
Issue Response
N/A

Documentation

Unified compliance profile combining OSHA safety inspections, EPA ECHO environmental compliance, and DOL Wage & Hour enforcement data for any U.S. company. Get a single risk-scored report with penalties, violations, back wages, and significant findings -- all from one search.

What does this actor do?

This actor searches three major federal compliance databases in parallel and merges the results into a single ComplianceProfile with an automated risk assessment:

DatabaseAgencyWhat it covers
OSHA InspectionsDept. of LaborWorkplace safety inspections, citations, violation types (Serious, Willful, Repeat), penalties, fatality/catastrophe investigations
EPA ECHOEnvironmental Protection AgencyFacility-level environmental compliance under Clean Air Act (CAA), Clean Water Act (CWA), RCRA, SDWA, TRI; non-compliance quarters, formal actions
WHD EnforcementDept. of Labor, Wage & Hour DivisionFLSA minimum wage/overtime violations, child labor, FMLA, H-1B/H-2A visa violations, Davis-Bacon, back wages, repeat violator flags

The output is a structured JSON compliance profile with a computed risk level (Low / Medium / High) based on the severity and frequency of findings across all three sources.

Why use this actor?

  • One search, three databases -- no need to run separate queries against OSHA, EPA, and WHD
  • Risk scoring -- automated assessment with weighted scoring for fatalities, repeat violations, child labor, significant non-compliance, and large penalties
  • Significant findings summary -- plain-English list of the most important compliance issues
  • Structured output -- clean, typed JSON ready for dashboards, reports, or downstream processing
  • Due diligence -- screen companies before partnerships, acquisitions, or contract awards
  • Compliance monitoring -- periodically check suppliers, contractors, or portfolio companies

Use cases

  • M&A due diligence: Screen acquisition targets for workplace safety and environmental compliance risks
  • Supply chain compliance: Evaluate suppliers and contractors for labor and safety violations
  • Government contracting: Check vendors against SAM.gov debarment-adjacent data (OSHA/EPA/WHD records)
  • ESG reporting: Gather quantitative compliance data for Environmental, Social, and Governance reports
  • Investigative journalism: Research company compliance histories across multiple federal databases
  • Insurance underwriting: Assess workplace risk profiles before issuing policies
  • Legal research: Gather enforcement history for litigation support or regulatory filings

Input parameters

ParameterTypeRequiredDefaultDescription
dryRunbooleanNotrueWhen true (or no DOL API key provided), returns a sample compliance profile. Set to false with an API key for real data.
dolApiKeystringFor real data--Your DOL Open Data Portal API key. Register free at https://dataportal.dol.gov/registration. Required for OSHA and WHD data. Not needed for EPA ECHO or dry run mode.
companyNamestringYes--Company or business name to search across all 3 databases. Supports partial matching. Examples: WALMART, TYSON, AMAZON.
statestringNo--U.S. state filter (2-letter code, e.g., TX, CA). Narrows results across all 3 databases.
citystringNo--City name for additional context (used in EPA ECHO searches).
naicsCodestringNo--NAICS industry code prefix (2-6 digits). Applied to OSHA and EPA ECHO searches.
maxOshaResultsintegerNo25Maximum OSHA inspection records to retrieve (1-100).
maxEchoResultsintegerNo25Maximum EPA ECHO facility records to retrieve (1-100).
maxWhdResultsintegerNo25Maximum DOL WHD enforcement cases to retrieve (1-100).
includeOshaViolationsbooleanNotrueFetch detailed violation/citation records for each OSHA inspection. Requires extra API calls.

Getting a DOL API Key

OSHA and WHD data require a free API key from the Department of Labor:

  1. Go to https://dataportal.dol.gov/registration
  2. Register for a free account
  3. Your API key will be emailed to you
  4. Enter the key in the dolApiKey input field (it is stored securely as a secret)

EPA ECHO data is publicly accessible and does not require any API key.

Output format

The actor outputs a single ComplianceProfile object to the default dataset:

{
  "companyName": "TYSON",
  "searchState": "AR",
  "searchCity": null,
  "generatedAt": "2025-01-15T12:00:00.000Z",
  "summary": {
    "overallRiskLevel": "High",
    "totalViolations": 47,
    "totalPenalties": 285000,
    "totalBackWages": 120000,
    "oshaInspections": 12,
    "epaFacilities": 8,
    "whdCases": 5,
    "significantFindings": [
      "2 OSHA fatality/catastrophe inspection(s)",
      "47 OSHA violations across 12 inspections",
      "$285,000 in OSHA penalties",
      "3 EPA facilities in non-compliance",
      "2 EPA formal enforcement actions",
      "$120,000 in back wages owed"
    ]
  },
  "oshaRecord": { ... },
  "epaRecord": { ... },
  "whdRecord": { ... }
}

Summary section

The summary object provides the high-level risk assessment:

  • overallRiskLevel: Low, Medium, or High based on weighted scoring
  • totalViolations: Combined OSHA + WHD violation count
  • totalPenalties: Combined penalties across all 3 databases (in USD)
  • totalBackWages: WHD back wages owed to employees (in USD)
  • oshaInspections / epaFacilities / whdCases: Record counts per database
  • significantFindings: Plain-English list of the most important compliance issues

OSHA record

{
  "available": true,
  "inspections": [
    {
      "activityNumber": 1234567,
      "establishmentName": "TYSON FOODS INC - SPRINGDALE",
      "siteAddress": "600 W Oak St",
      "siteCity": "Springdale",
      "siteState": "AR",
      "siteZip": "72764",
      "inspectionType": "A",
      "inspectionTypeDescription": "Fatality/Catastrophe",
      "safetyOrHealth": "Safety",
      "naicsCode": "311615",
      "openDate": "2024-03-15T00:00:00",
      "closeCaseDate": "2024-08-20T00:00:00",
      "violations": [
        {
          "citationId": "01001",
          "standard": "1910.147(c)(1)",
          "violationType": "Serious",
          "currentPenalty": 15000,
          "initialPenalty": 15000,
          "gravity": "10"
        }
      ],
      "violationCount": 1,
      "totalPenalties": 15000
    }
  ],
  "totalInspections": 12,
  "totalViolations": 35,
  "totalPenalties": 285000,
  "fatalityInspections": 2,
  "complaintInspections": 4
}

Inspection type codes: A = Fatality/Catastrophe, B = Complaint, C = Referral, F = Follow-up, H = Planned, J = Unprogrammed Other, K = Programmed Other, L = Other.

Violation type codes: S = Serious, W = Willful, R = Repeat, O = Other, U = Unclassified.

EPA ECHO record

{
  "available": true,
  "facilities": [
    {
      "registryId": "110012345678",
      "facilityName": "TYSON FOODS SPRINGDALE",
      "city": "SPRINGDALE",
      "state": "AR",
      "programs": ["CAA", "CWA", "RCRA"],
      "complianceStatus": "Significant Violation",
      "significantNoncompliance": true,
      "quartersInNoncompliance": 4,
      "inspectionCount": 5,
      "lastInspectionDate": "01/15/2025",
      "totalPenalties": 50000,
      "formalActionCount": 2
    }
  ],
  "totalFacilities": 8,
  "facilitiesInNoncompliance": 3,
  "totalPenalties": 75000,
  "totalFormalActions": 4,
  "programsCovered": ["CAA", "CWA", "RCRA", "TRI"]
}

Environmental programs: CAA = Clean Air Act, CWA = Clean Water Act, RCRA = Resource Conservation and Recovery Act, SDWA = Safe Drinking Water Act, TRI = Toxics Release Inventory.

WHD record

{
  "available": true,
  "cases": [
    {
      "caseId": 1234567,
      "tradeName": "TYSON FOODS",
      "legalName": "Tyson Foods Inc",
      "city": "Springdale",
      "state": "AR",
      "naicsDescription": "Poultry Processing",
      "totalViolations": 12,
      "totalPenalties": 0,
      "totalBackWages": 120000,
      "employeesViolated": 45,
      "findingsStartDate": "2023-01-01T00:00:00",
      "findingsEndDate": "2024-06-30T00:00:00",
      "flsaRepeatViolator": false,
      "childLaborViolations": 0,
      "topStatutes": ["FLSA"]
    }
  ],
  "totalCases": 5,
  "totalViolations": 12,
  "totalPenalties": 0,
  "totalBackWages": 120000,
  "employeesAffected": 45,
  "repeatViolator": false,
  "childLaborCases": 0
}

Statutes tracked: FLSA (Fair Labor Standards Act), FMLA (Family and Medical Leave Act), H-1B, H-2A, H-2B (visa programs), SCA (Service Contract Act), DBRA (Davis-Bacon and Related Acts), MSPA (Migrant and Seasonal Agricultural Worker Protection Act), Child Labor.

Risk scoring methodology

The risk assessment uses a weighted point system:

FindingPoints
OSHA fatality/catastrophe inspections+30
Child labor violation cases+30
Flagged as FLSA repeat violator+25
OSHA penalties > $50,000+20
EPA facilities in non-compliance+20
OSHA violations > 10+15
Back wages > $100,000+15
EPA formal enforcement actions+10
Employees affected > 50+10

Risk levels: Low (0-19 points), Medium (20-49 points), High (50+ points).

Dry run mode

By default, dryRun is set to true. This returns a realistic sample compliance profile so you can preview the output format and test integrations without needing an API key. Set dryRun to false and provide a DOL API key to search real data.

Dry run mode is also activated automatically when no DOL API key is provided. This ensures the actor always passes Apify platform auto-tests.

API data sources

SourceAPIAuthenticationRate limits
OSHA InspectionsDOL Open Data Portal v4API key (free)Shared with WHD; 500ms delay between calls
EPA ECHOEPA ECHO REST ServicesNone (public)No documented limit
WHD EnforcementDOL Open Data Portal v4API key (free)Shared with OSHA; 500ms delay between calls

All three databases are searched in parallel where possible. OSHA and WHD share the same DOL API rate limit, so a small delay is introduced between those two requests.

The actor uses exponential backoff retry logic (up to 3 retries) with special handling for HTTP 429 (rate limit) responses.

Example input

Basic search

{
  "dryRun": false,
  "dolApiKey": "YOUR_DOL_API_KEY",
  "companyName": "TYSON",
  "state": "AR"
}

Broad search with more results

{
  "dryRun": false,
  "dolApiKey": "YOUR_DOL_API_KEY",
  "companyName": "WALMART",
  "maxOshaResults": 100,
  "maxEchoResults": 50,
  "maxWhdResults": 50,
  "includeOshaViolations": true
}

Quick search without OSHA violation details

{
  "dryRun": false,
  "dolApiKey": "YOUR_DOL_API_KEY",
  "companyName": "AMAZON",
  "state": "CA",
  "includeOshaViolations": false
}

Integrations and programmatic usage

Apify API

curl -X POST "https://api.apify.com/v2/acts/ryanclinton~workplace-compliance-intel/runs" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "dryRun": false,
    "dolApiKey": "YOUR_DOL_API_KEY",
    "companyName": "TYSON",
    "state": "AR"
  }'

Python

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run = client.actor("ryanclinton/workplace-compliance-intel").call(run_input={
    "dryRun": False,
    "dolApiKey": "YOUR_DOL_API_KEY",
    "companyName": "TYSON",
    "state": "AR",
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"Company: {item['companyName']}")
    print(f"Risk: {item['summary']['overallRiskLevel']}")
    for finding in item["summary"]["significantFindings"]:
        print(f"  - {finding}")

JavaScript / Node.js

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const run = await client.actor('ryanclinton/workplace-compliance-intel').call({
    dryRun: false,
    dolApiKey: 'YOUR_DOL_API_KEY',
    companyName: 'TYSON',
    state: 'AR',
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
const profile = items[0];
console.log(`Risk Level: ${profile.summary.overallRiskLevel}`);
console.log(`Findings: ${profile.summary.significantFindings.join('; ')}`);

Performance

  • Typical run time: 5-15 seconds depending on result volume and API responsiveness
  • Compute units: Minimal (API calls only, no browser or heavy processing)
  • Memory: 256 MB is sufficient for all use cases
  • Parallel execution: EPA ECHO runs concurrently with OSHA; WHD starts after a 500ms delay to respect DOL rate limits

Limitations

  • OSHA and WHD data require a DOL API key (free registration)
  • Company name matching is partial/substring-based -- broad names may return unrelated results
  • EPA ECHO penalty amounts may not be available for all facilities
  • OSHA violation details require additional API calls per inspection batch (50 at a time)
  • Historical data availability varies by database; some records may go back decades, others only a few years
  • This actor searches U.S. federal databases only; it does not cover state-level OSHA plans or international data

Related actors

These actors on the Apify platform complement the Workplace Compliance Intelligence actor:

Support

If you have questions or encounter issues, please open an issue on the actor page or contact the author through Apify.

How it works

01

Configure

Set your parameters in the Apify Console or pass them via API.

02

Run

Click Start, trigger via API, webhook, or set up a schedule.

03

Get results

Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.

Use cases

Sales Teams

Build targeted lead lists with verified contact data.

Marketing

Research competitors and identify outreach opportunities.

Data Teams

Automate data collection pipelines with scheduled runs.

Developers

Integrate via REST API or use as an MCP tool in AI workflows.

Ready to try Workplace Compliance Intelligence?

Start for free on Apify. No credit card required.

Open on Apify Store