# EEOC Enforcement & Litigation Newsroom Scraper (`maximedupre/eeoc`) Actor

Search public EEOC newsroom history with one keyword and filters. Save structured enforcement, litigation, and settlement announcements with employers, dates, offices, classifications, statutes, settlement amounts, case numbers, and source content.

- **URL**: https://apify.com/maximedupre/eeoc.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** Business, News, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.70 / 1,000 eeoc announcements

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### ⚖️ Find EEOC enforcement records for workplace case research

For compliance teams, employment lawyers, HR researchers, and data builders, this Actor searches public EEOC newsroom history and saves one structured row for each eligible announcement. Review headlines, source links, dates, announcement types, employers, offices, settlement amounts, civil case numbers, discrimination categories, cited statutes, and source content in a dataset for research and comparison.

- Search public announcements for an [**EEOC complaint**](https://apify.com/maximedupre/eeoc/examples/eeoc-complaint) and review matching enforcement records.
- Use an [**EEOC complaint form**](https://apify.com/maximedupre/eeoc/examples/eeoc-complaint-form) research question to find related public announcements.
- Trace an [**EEOC complaint process**](https://apify.com/maximedupre/eeoc/examples/eeoc-complaint-process) through published announcement records.
- Review how an [**EEOC complaint hurts an employer**](https://apify.com/maximedupre/eeoc/examples/how-does-an-eeoc-complaint-hurt-an-employer) in public enforcement records.
- Study [**recent EEOC discrimination cases won**](https://apify.com/maximedupre/eeoc/examples/recent-eeoc-discrimination-cases-won) through matching newsroom announcements.
- Research [**hostile work environment bullying**](https://apify.com/maximedupre/eeoc/examples/hostile-work-environment-bullying) with related public records.
- Compare [**examples of EEOC settlements demands**](https://apify.com/maximedupre/eeoc/examples/examples-of-eeoc-settlements-demands) in the returned announcements.
- Check an [**EEOC lawsuit payout**](https://apify.com/maximedupre/eeoc/examples/eeoc-lawsuit-payout) in settlement and case records.

#### 🧾 Structured EEOC newsroom records

**Returned data**

Each saved row represents the first eligible occurrence of a public EEOC announcement. The row keeps source values as unavailable when the announcement does not provide them.

#### 🔎 Search and filter EEOC newsroom history

**How it runs**

Enter one keyword and add any filters that you need. The Actor searches available public EEOC newsroom history and saves matching announcements until the source is exhausted or Maximum records is reached. If the same source announcement appears again, the later match is ignored.

The input form has no required fields. Leave `Maximum records` empty to return all available results until the source is exhausted. The Actor reads public pages and does not require a buyer login.

#### ⚙️ Input

**Input fields**

| Field | Type | What it does |
| --- | --- | --- |
| `keyword` | string | Searches one phrase, such as an employer or discrimination topic. Leave it blank to search all available EEOC newsroom history. |
| `announcementType` | string: `all`, `litigation`, `settlements` | Chooses all announcements, litigation, or settlements. `all` includes public EEOC press releases. |
| `discriminationCategories` | array of strings | Keeps records with at least one listed category, such as race, disability, or age. |
| `statutes` | array of strings | Keeps records that cite at least one listed federal statute, such as Title VII or the ADA. |
| `offices` | array of strings | Keeps records from at least one listed EEOC district or field office. |
| `publishedFrom` | string (`YYYY-MM-DD`) | Includes records published on or after this date. |
| `publishedTo` | string (`YYYY-MM-DD`) | Includes records published on or before this date. |
| `maxItems` | integer | Stops after this many matching records. Leave it empty to return all available results until the source is exhausted. The prefilled value is 25. |

**Example input**

This small example uses the public default input:

```json
{
  "maxItems": 25
}
```

#### 🧾 Output

**Run output**

| Field | Type | What it does |
| --- | --- | --- |
| `dataset` | string (URL) | Links to the dataset containing the saved EEOC enforcement, litigation, and settlement records. |

Open the `dataset` URL to read the saved records.

**Dataset fields**

| Field | Type | What it does |
| --- | --- | --- |
| `headline` | string | Gives the announcement headline. |
| `sourceUrl` | string | Links to the canonical EEOC page for the announcement. |
| `publishedDate` | string | Gives the publication date. |
| `announcementType` | string | Gives the announcement family, such as `press-releases`, `litigation`, or `settlements`. |
| `office` | string or null | Gives the named EEOC district or field office, or `null` when unavailable. |
| `employer` | string or null | Gives the respondent employer, or `null` when unavailable. |
| `settlementAmount` | number or null | Gives the reported settlement amount in US dollars, or `null` when none is reported. |
| `civilCaseNumber` | string or null | Gives the civil-action case number, or `null` when unavailable. |
| `discriminationCategories` | array of strings | Lists normalized discrimination categories named in the announcement. |
| `statutes` | array of strings | Lists federal statutes cited in the announcement. |
| `sourceContent` | object | Holds the full press-release content when available. |
| `sourceContent.text` | string | Holds the full press-release text when available. |
| `sourceContent.html` | string | Holds the full press-release HTML when available. |

**Example row**

This is an unshortened row from a successful run. Its fields and values are copied from the returned dataset.

```json
{
  "headline": "Tennessee Healthcare Management to Pay $200,000 in EEOC Race, National Origin and Age Discrimination Lawsuit",
  "sourceUrl": "https://www.eeoc.gov/newsroom/tennessee-healthcare-management-pay-200000-eeoc-race-national-origin-and-age",
  "publishedDate": "2026-08-10",
  "announcementType": "litigation",
  "office": "Memphis District Office",
  "employer": "Tennessee Healthcare Management",
  "settlementAmount": 200000,
  "civilCaseNumber": null,
  "discriminationCategories": [
    "age",
    "national origin",
    "race",
    "retaliation"
  ],
  "statutes": [
    "Title VII",
    "ADEA"
  ],
  "sourceContent": {
    "text": "NASHVILLE, Tenn. – Tennessee Healthcare Management, Inc. (THM), a provider of administrative, purchasing, technology and human resources services to health care communities, will pay $200,000 and furnish other relief to settle a race, national origin, age discrimination and retaliation lawsuit brought by the U. S. Equal Employment Opportunity Commission (EEOC) the federal agency announced today.The EEOC charged that THM refused to promote a highly qualified 58-year-old Asian American doctor and instead hired a younger white applicant who lacked the required credentials for the division director of research graduate medical education position in Kissimmee, Florida. When the doctor complained about the discrimination, he received write-ups and rebuke, and ultimately was fired in September 2021, the EEOC said.“This case demonstrates that employers should evaluate and promote employees based on their merits and not race, national origin and age,” said Faye Williams, regional attorney for the EEOC’s Memphis District. “Further, under federal law, employees have the right to complain about alleged discrimination without fear of retaliation.”Such alleged conduct violates Title VII of the Civil Rights Act of 1964 and the Age Discrimination in Employment Act (ADEA). The EEOC filed suit in U.S. District Court for the Middle District of Tennessee after first attempting to reach a pre-litigation settlement through its administrative conciliation process.EEOC Memphis District Director Delner Franklin-Thomas said, “Race, national origin, retaliation and age discrimination remain persistent problems in the workplace. The EEOC remains committed to fulfilling its statutory obligation of enforcing employment discrimination laws.”The two-year consent decree settling the suit enjoins THM from failing to promote any employee within THM’s Graduate Medical Education research group because of the employee’s age, race or national origin in the future. Likewise, the decree prohibits the company from discharging any employee for participating in internal investigations or opposing discriminatory employment practices or because the employee filed a charge of discrimination with any state or federal agency, including the EEOC.For more information on race and color discrimination, please visit https://www.eeoc.gov/racecolor-discrimination. For more information on national origin discrimination, please visit https://www.eeoc.gov/national-origin-discrimination. For information on age discrimination, please visit https://www.eeoc.gov/age-discrimination. For more information on retaliation, please visit https://www.eeoc.gov/retaliation.The EEOC’s Memphis District Office has jurisdiction over Tennessee, Arkansas, and 17 counties in Northern Mississippi, with area offices in Nashville and Little Rock.The EEOC is the sole federal agency authorized to investigate and litigate against businesses and other private sector employers for violations of federal laws prohibiting employment discrimination. For public sector employers, the EEOC shares jurisdiction with the Department of Justice’s Civil Rights Division. The EEOC also is responsible for coordinating the federal government’s employment antidiscrimination effort. More information about the EEOC is available at www.eeoc.gov.",
    "html": "<p><span style=\"font-family:Merriweather, serif;\">NASHVILLE, Tenn. – Tennessee Healthcare Management, Inc. (THM), a provider of administrative, purchasing, technology and human resources services to health care communities, will pay $200,000 and furnish other relief to settle a race, national origin, age discrimination and retaliation lawsuit brought by the U. S. Equal Employment Opportunity Commission (EEOC) the federal agency announced today.</span></p><p><span style=\"font-family:Merriweather, serif;\">The EEOC charged that THM refused to promote a highly qualified 58-year-old Asian American doctor and instead hired a younger white applicant who lacked the required credentials for the division director of research graduate medical education position in Kissimmee, Florida. When the doctor complained about the discrimination, he received write-ups and rebuke, and ultimately was fired in September 2021, the EEOC said.</span></p><p><span style=\"font-family:Merriweather, serif;\">“This case demonstrates that employers should evaluate and promote employees based on their merits and not race, national origin and age,” <strong>said Faye Williams, regional attorney for the EEOC’s Memphis District</strong>. “Further, under federal law, employees have the right to complain about alleged discrimination without fear of retaliation.”</span></p><p><span style=\"font-family:Merriweather, serif;\">Such alleged conduct violates Title VII of the Civil Rights Act of 1964 and the Age Discrimination in Employment Act (ADEA). The EEOC filed suit in U.S. District Court for the Middle District of Tennessee after first attempting to reach a pre-litigation settlement through its administrative conciliation process.</span></p><p><span style=\"font-family:Merriweather, serif;\"><strong>EEOC Memphis District Director Delner Franklin-Thomas said</strong>, “Race, national origin, retaliation and age discrimination remain persistent problems in the workplace. The EEOC remains committed to fulfilling its statutory obligation of enforcing employment discrimination laws.”</span></p><p><span style=\"font-family:Merriweather, serif;\">The two-year consent decree settling the suit enjoins THM from failing to promote any employee within THM’s Graduate Medical Education research group because of the employee’s age, race or national origin in the future. Likewise, the decree prohibits the company from discharging any employee for participating in internal investigations or opposing discriminatory employment practices or because the employee filed a charge of discrimination with any state or federal agency, including the EEOC.</span></p><p><span style=\"font-family:Merriweather, serif;\">For more information on race and color discrimination, please visit </span><a href=\"https://www.eeoc.gov/racecolor-discrimination\"><span style=\"font-family:Merriweather, serif;\">https://www.eeoc.gov/racecolor-discrimination</span></a><span style=\"font-family:Merriweather, serif;\">. For more information on national origin discrimination, please visit </span><a href=\"https://www.eeoc.gov/national-origin-discrimination\"><span style=\"font-family:Merriweather, serif;\">https://www.eeoc.gov/national-origin-discrimination</span></a><span style=\"font-family:Merriweather, serif;\">. For information on age discrimination, please visit </span><a href=\"https://www.eeoc.gov/age-discrimination\"><span style=\"font-family:Merriweather, serif;\">https://www.eeoc.gov/age-discrimination</span></a><span style=\"font-family:Merriweather, serif;\">. For more information on retaliation, please visit </span><a href=\"https://www.eeoc.gov/retaliation\"><span style=\"font-family:Merriweather, serif;\">https://www.eeoc.gov/retaliation</span></a><span style=\"font-family:Merriweather, serif;\">.</span></p><p><span style=\"font-family:Merriweather, serif;\">The EEOC’s Memphis District Office has jurisdiction over Tennessee, Arkansas, and 17 counties in Northern Mississippi, with area offices in Nashville and Little Rock.</span></p><p><span style=\"font-family:Merriweather, serif;\">The EEOC is the sole federal agency authorized to investigate and litigate against businesses and other private sector employers for violations of federal laws prohibiting employment discrimination. For public sector employers, the EEOC shares jurisdiction with the Department of Justice’s Civil Rights Division. The EEOC also is responsible for coordinating the federal government’s employment antidiscrimination effort. More information about the EEOC is available at </span><a href=\"https://www.eeoc.gov/\"><span style=\"font-family:Merriweather, serif;\">www.eeoc.gov</span></a><span style=\"font-family:Merriweather, serif;\">.</span></p>"
  }
}
```

#### 💳 Pricing

**Charged event**

The primary event is **EEOC announcement**. It charges for each public EEOC enforcement, litigation, or settlement announcement saved to your dataset. Check the Store for the current tier price.

#### 🔌 Integrations

**Dataset access**

Use the dataset URL from the run output with Apify exports or API clients.

**Walkthrough**

https://www.youtube.com/watch?v=bNACk1\_S\_6w\&list=PLObrtcm1Kw6MUrlLNDbK9QRg8VDJg0gOW\&index=4

#### ❓ FAQ

##### Can I search for one employer or discrimination topic?

Yes. Enter one keyword, such as an employer or discrimination topic. Leave it blank to search all available EEOC newsroom history.

##### Can I combine keyword, category, statute, office, and date filters?

Yes. Add any supported filters to the same one-keyword search. The filters narrow the matching announcements together.

##### What happens when Maximum records is empty?

The Actor returns all available results until the source is exhausted.

##### Does this Actor file an EEOC complaint?

No. It searches public EEOC newsroom announcements and does not submit complaints or provide legal advice.

##### What happens when an announcement has no settlement amount or case number?

The matching field is `null` when the source does not provide that value. Category and statute arrays can be empty when none are identified.

##### Why is the source content included?

`sourceContent.text` and `sourceContent.html` keep the public press-release content when available, so you can check the context behind the structured fields.

##### Can the same announcement appear more than once?

Only the first eligible occurrence is saved. A later match for the same source announcement is ignored.

##### Does this Actor monitor new EEOC announcements?

No. It searches available newsroom history during a run. Continuous monitoring and alerting are outside this Actor's scope.

##### Is this the official Equal Employment Opportunity Commission?

No. This is an Apify Actor that reads public EEOC pages; it is not the EEOC and does not speak for the agency.

### 📝 Changelog

**0.0: Initial release**

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~eeoc/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Related Actors

- [**CourtListener Scraper**](https://apify.com/maximedupre/courtlistener) — Search public opinions and federal RECAP dockets for related case context.
- [**Federal Register Scraper — Rules & Regulations**](https://apify.com/maximedupre/federal-register) — Find official rules and notices that add regulatory context to EEOC research.
- [**TeamBlind Reviews Scraper**](https://apify.com/maximedupre/teamblind-reviews-scraper) — Compare public employee reviews when researching an employer's workplace reputation.
- [**EEOC Enforcement & Litigation Newsroom Scraper**](https://apify.com/jungle_synthesizer/eeoc-enforcement-litigation-newsroom-scraper) — Collect similar EEOC enforcement press-release fields from another Store Actor.
- [**DOL Wage & Hour Enforcement Search**](https://apify.com/ryanclinton/dol-whd-enforcement) — Search federal labor enforcement records for wage-and-hour context.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `keyword` (type: `string`):

Focus this run on one phrase, such as an employer or discrimination topic. Leave blank to search all available EEOC newsroom history.

## `announcementType` (type: `string`):

Choose the announcement family to return. All announcements include the public EEOC press releases; litigation and settlements narrow the results.

## `discriminationCategories` (type: `array`):

Return records that include at least one of these categories, such as race, disability, or age. This filter combines with the other filters.

## `statutes` (type: `array`):

Return records that cite at least one of these federal statutes, such as Title VII or the ADA. This filter combines with the other filters.

## `offices` (type: `array`):

Return records from at least one of these EEOC district or field offices. This filter combines with the other filters.

## `publishedFrom` (type: `string`):

Include records published on or after this date.

## `publishedTo` (type: `string`):

Include records published on or before this date.

## `maxItems` (type: `integer`):

Stop after this many matching records. Leave empty to return all available results until the source is exhausted.

## Actor input object example

```json
{
  "maxItems": 25
}
```

# Actor output Schema

## `dataset` (type: `string`):

URL for the dataset containing public EEOC enforcement, litigation, and settlement records.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/eeoc").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "maxItems": 25 }

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/eeoc").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 25
}' |
apify call maximedupre/eeoc --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,maximedupre/eeoc"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ZweIpMPmI2aOIEiqw/builds/17MUhEv3dJrAFslPP/openapi.json
