WARN Layoffs Scraper - Multi-State Layoff & Closure Notices
Pricing
from $1.00 / 1,000 record scrapeds
WARN Layoffs Scraper - Multi-State Layoff & Closure Notices
Aggregate WARN Act layoff and closure notices across multiple US states. Unified schema covering employer, location, effective date, affected workers, and layoff type. Built for recruiters, financial analysts, journalists, and labor researchers.
Pricing
from $1.00 / 1,000 record scrapeds
Rating
0.0
(0)
Developer
BowTiedRaccoon
Maintained by CommunityActor stats
1
Bookmarked
22
Total users
6
Monthly active users
15 days ago
Last modified
Categories
Features
Share
WARN Layoffs Aggregator — Multi-State WARN Act Notice Scraper & Layoff Tracker
Aggregate WARN Act layoff and closure notices across US state labor agencies into a single normalized dataset — a queryable WARN notice database for tracking layoffs by state. Currently covers eight states — California, Florida, Illinois, Maryland, New Jersey, New York, Texas, and Washington — in one schema with employer, location, dates, affected worker counts, and layoff type, plus a canonical employer key so one company counts as one employer across every state.
WARN Layoffs Aggregator Features
- Pulls WARN notices from CA, FL, IL, MD, NJ, NY, TX, and WA in one run
- Every state arrives in one consistent schema, whatever the agency publishes
employer_name_normalizedgives each employer one canonical key across states ("Starbucks Corporation", "STARBUCKS CORP." and "Starbucks, Inc." all becomestarbucks), so per-employer counts need no cleanup- Filters by notice date range, minimum affected workers, and plant-closures-only
- Classifies each notice as
layoff,closure,furlough, orotherwhile keeping the raw source string for reference - Stable
notice_idper (state, employer, notice_date, effective_date) so dedupe across runs is trivial - Pay-per-event pricing at roughly $0.001 per notice
Who Uses This WARN Layoff Data by State?
- Recruiters and outplacement firms — surface mass layoffs early to source candidates and pitch services
- Financial analysts and short sellers — track distress signals across portfolio companies and industries
- Labor researchers and policy teams — build longitudinal datasets on plant closures by state, county, or sector
- Journalists — monitor new filings for reporting leads on closures, furloughs, and large reductions in force
- Economic development offices — track employer activity in their jurisdiction without maintaining a feed per state
How WARN Layoffs Aggregator Works
- You pick states. Pass
["CA", "FL", "IL", "MD", "NJ", "NY", "TX", "WA"]for everything supported, or a subset. Leave the field empty and it pulls all of them. - The aggregator pulls the notices each state agency has published.
- Each notice gets normalized into the shared schema, run through your filters (date range, minimum workers, closure-only), and saved. Output is identical regardless of which state it came from.
Per-state coverage notes
| State | Notice date | Also published | Not published by the agency |
|---|---|---|---|
| CA | Day | County | |
| FL | Day | Work-site address | County, notice type |
| IL | Day | Work-site address, notice type | County |
| MD | Day | County, notice type | |
| NJ | Month only — dated the 1st of the posting month | City | Street address, county, notice type |
| NY | Day | County or region | Worker count on some notices |
| TX | Day | County, workforce area (region) | Street address, notice type |
| WA | Day | Notice type, permanence | Street address, county |
Where an agency publishes no notice type, layoff_type is other. Texas data arrives with the agency's own publication lag.
Input
Per-employer distress research, five states
{"states": ["TX", "NJ", "IL", "FL", "WA"],"noticeDateFrom": "2025-01-01","maxItems": 2000}
Group the result on employer_name_normalized to count recent notices per employer across states.
Default — California, New York and Maryland, recent notices
{"states": ["CA", "NY", "MD"],"noticeDateFrom": "2024-01-01","maxItems": 100}
Filter to large layoffs only
{"states": ["CA"],"minAffectedWorkers": 250,"maxItems": 50}
Plant closures only, single state
{"states": ["NY"],"onlyClosures": true,"noticeDateFrom": "2023-01-01","maxItems": 200}
Input Parameters
| Field | Type | Default | Description |
|---|---|---|---|
| states | string[] | ["CA","NY","MD"] | Two-letter state codes. Leave empty to pull all supported states. Supported: CA, FL, IL, MD, NJ, NY, TX, WA. |
| noticeDateFrom | string | "2024-01-01" | YYYY-MM-DD lower bound on notice date. Empty for no lower bound. |
| noticeDateTo | string | "" | YYYY-MM-DD upper bound on notice date. Empty for no upper bound. |
| minAffectedWorkers | integer | 0 | Drop notices below this worker count. 0 disables the filter. |
| onlyClosures | boolean | false | Restrict output to plant closures (excludes mass layoffs and reductions in force). |
| maxItems | integer | 100 | Maximum notices to return across all states combined. |
WARN Layoffs Aggregator Output Fields
{"notice_id": "9c8f238123cbc6fe","source_state": "CA","source_url": "https://edd.ca.gov/siteassets/files/jobs_and_training/warn/warn_report1.xlsx","employer_name": "Republic National Distributing Company","employer_name_normalized": "republic national distributing","employer_address": "30825 Wiegman Road","city": "Hayward","county": "Alameda County","state": "CA","zip": "94544","notice_date": "2025-07-01","effective_date": "2025-09-02","affected_workers": 104,"layoff_type": "closure","layoff_type_raw": "Closure Permanent","closure_permanent": true,"region": "","scraped_at": "2026-04-25T23:08:41.544Z"}
| Field | Type | Description |
|---|---|---|
| notice_id | string | Stable hash of (state, employer, notice_date, effective_date). Use it as a primary key for dedupe across runs. |
| source_state | string | Two-letter state code identifying which agency the notice came from. |
| source_url | string | URL of the listing page or source document the notice was parsed from. |
| employer_name | string | Filing employer's legal or DBA name as printed on the notice. |
| employer_name_normalized | string | Canonical employer key, the same for every state: lowercase, punctuation and legal suffixes (Inc, LLC, Corp) removed, "d/b/a" tails and site suffixes ("Amazon - SJC13") dropped. Group or join on this to count notices per employer. |
| employer_address | string | Street address of the layoff or closure site, when reported. |
| city | string | City of the layoff or closure site. |
| county | string | County or region, when the source provides it. |
| state | string | Two-letter state code of the layoff site. |
| zip | string | ZIP/postal code, when reported. |
| notice_date | string | Date the WARN notice was issued or posted (YYYY-MM-DD). |
| effective_date | string | Date the layoff or closure takes effect (YYYY-MM-DD). |
| affected_workers | number | Number of workers affected. |
| layoff_type | string | Normalized type: layoff, closure, furlough, or other. |
| layoff_type_raw | string | Raw type/classification string as printed by the source — useful when the normalized value loses nuance. |
| closure_permanent | boolean | True when the notice indicates a permanent closure or non-recall layoff. |
| region | string | Sub-state region (e.g. NY Hudson Valley, Long Island) when the source supplies one. |
| scraped_at | string | ISO-8601 UTC timestamp of when this record was scraped. |
FAQ
How do I scrape WARN Act notices across multiple states?
WARN Layoffs Aggregator handles this. Pass the state codes you care about (or leave them empty for all supported states) and it returns one normalized dataset. No state-specific parsing on your end.
Is there a WARN notice API or database I can query for layoffs by state?
Yes. This actor acts as a WARN notice database: run it on Apify, filter by states, date range, and worker count, and pull the results as JSON, CSV, or Excel through the Apify dataset API. That gives you a programmatic WARN Act layoff feed without scraping each state agency yourself.
How much does WARN Layoffs Aggregator cost to run?
WARN Layoffs Aggregator uses pay-per-event pricing: $0.10 per actor start plus $0.001 per record. A run that pulls 500 notices across several states costs about $0.60.
Which states are supported?
California, Florida, Illinois, Maryland, New Jersey, New York, Texas, and Washington. File an issue if you need another jurisdiction and we'll prioritize it.
Can I filter by layoff type or company size?
Yes. Set minAffectedWorkers to drop small layoffs and onlyClosures to filter to permanent plant closures only. Combine both for a clean signal on large permanent shutdowns.
How fresh is the data?
WARN Layoffs Aggregator pulls live from each agency's portal on every run. Each state updates on its own cadence — California weekly, the others on rolling schedules — and Texas lags the agency's own listing. Run nightly if you want continuous coverage.
Need More Features?
Need a state we don't yet support, additional fields, or custom filters? File an issue or get in touch.
Why Use WARN Layoffs Aggregator?
- One schema, eight states — every agency's notices land in one normalized output with a shared employer key, so you don't reconcile state-by-state formats or company spellings.
- Affordable — Roughly $0.001 per notice, which is cheaper than the time you'd spend reconciling source-specific date formats and column names.
- Stable record IDs — Every notice gets a deterministic
notice_id, so re-running the actor lets you upsert into a database without dedup logic.