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.
Maintenance Pulse
90/100Documentation
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:
| Database | Agency | What it covers |
|---|---|---|
| OSHA Inspections | Dept. of Labor | Workplace safety inspections, citations, violation types (Serious, Willful, Repeat), penalties, fatality/catastrophe investigations |
| EPA ECHO | Environmental Protection Agency | Facility-level environmental compliance under Clean Air Act (CAA), Clean Water Act (CWA), RCRA, SDWA, TRI; non-compliance quarters, formal actions |
| WHD Enforcement | Dept. of Labor, Wage & Hour Division | FLSA 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
dryRun | boolean | No | true | When true (or no DOL API key provided), returns a sample compliance profile. Set to false with an API key for real data. |
dolApiKey | string | For 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. |
companyName | string | Yes | -- | Company or business name to search across all 3 databases. Supports partial matching. Examples: WALMART, TYSON, AMAZON. |
state | string | No | -- | U.S. state filter (2-letter code, e.g., TX, CA). Narrows results across all 3 databases. |
city | string | No | -- | City name for additional context (used in EPA ECHO searches). |
naicsCode | string | No | -- | NAICS industry code prefix (2-6 digits). Applied to OSHA and EPA ECHO searches. |
maxOshaResults | integer | No | 25 | Maximum OSHA inspection records to retrieve (1-100). |
maxEchoResults | integer | No | 25 | Maximum EPA ECHO facility records to retrieve (1-100). |
maxWhdResults | integer | No | 25 | Maximum DOL WHD enforcement cases to retrieve (1-100). |
includeOshaViolations | boolean | No | true | Fetch 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:
- Go to https://dataportal.dol.gov/registration
- Register for a free account
- Your API key will be emailed to you
- Enter the key in the
dolApiKeyinput 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, orHighbased 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:
| Finding | Points |
|---|---|
| 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
| Source | API | Authentication | Rate limits |
|---|---|---|---|
| OSHA Inspections | DOL Open Data Portal v4 | API key (free) | Shared with WHD; 500ms delay between calls |
| EPA ECHO | EPA ECHO REST Services | None (public) | No documented limit |
| WHD Enforcement | DOL Open Data Portal v4 | API 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:
- OSHA Inspection & Citation Search -- standalone deep-dive into OSHA data
- Company Deep Research Agent -- comprehensive company intelligence
- SAM.gov Contract Monitor -- federal contract and debarment data
- CFPB Consumer Complaints -- consumer complaint data
- OpenCorporates Search -- global corporate registry data
- Workplace Compliance MCP Server -- MCP server exposing these same data sources as AI tools
- Compliance Intelligence MCP -- broader compliance MCP server
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
Configure
Set your parameters in the Apify Console or pass them via API.
Run
Click Start, trigger via API, webhook, or set up a schedule.
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.
Related actors
Bulk Email Verifier
Verify email deliverability at scale. MX record validation, SMTP mailbox checks, disposable and role-based detection, catch-all flagging, and confidence scoring. No external API costs.
GitHub Repository Search
Search GitHub repositories by keyword, language, topic, stars, forks. Sort by stars, forks, or recently updated. Returns metadata, topics, license, owner info, URLs. Free API, optional token for higher limits.
Website Content to Markdown
Convert any website to clean Markdown for RAG pipelines, LLM training, and AI apps. Crawls pages, strips boilerplate, preserves headings, tables, and code blocks. GFM support.
Website Tech Stack Detector
Detect 100+ web technologies on any website. Identifies CMS, frameworks, analytics, marketing tools, chat widgets, CDNs, payment systems, hosting, and more. Batch-analyze multiple sites with version detection and confidence scoring.
Ready to try Workplace Compliance Intelligence?
Start for free on Apify. No credit card required.
Open on Apify Store