CoolFace
Apppublic

APProjects/warn-act-notices

sourceHugging Facecc-by-4.0updated 23m agoView on Hugging Face
0likes
App README

US WARN Act layoff notices — 61,374 notices, 48 states, rebuilt every day

[Open the live site →](https://approjects-warn-act-notices.static.hf.space/) · rebuilt 2026-09-22

61,374layoff notices on file, back to 1988
48state portals re-scraped every single day
6,828,902workers named across those notices (all of it free, dated 1988-01-01 onward, no delay)
195notices filed in the last 30 days (22,065 workers)
5,544near-duplicate employer spellings merged onto 1,243 employers, redone every morning (Aramark alone files under 159 spellings)
22daily snapshots in the observed change log (698 field changes / disappearances recorded since 2026-08-30)

Every US state publishes WARN Act layoff notices in its own format — different columns, different date conventions, some as quarterly PDFs, several with no notice date at all. This project re-scrapes 48 of them daily, normalizes them into one schema, deduplicates with stable row ids, and canonicalizes employer names so Amazon.com Services LLC and Amazon roll up together.

A one-off copy of this data starts rotting the week it is posted: states amend headcounts, re-issue notices and silently drop rows. Compare the rebuild date above with the "last updated" date on any other US WARN dataset before you choose one.

Free, no account, no email address

bash
curl -s https://approjects-warn-act-notices.static.hf.space/data/coverage.json | python3 -c "import json,sys; d=json.load(sys.stdin); print(d['total_rows'], 'notices;', len(d['states']), 'states')"

What a re-scrape cannot give you: the observed change log

State portals overwrite themselves. When an agency amends a headcount, moves an effective date or quietly removes a notice, the previous value leaves the public internet. Because this dataset is committed on every daily rebuild, its history is a point-in-time record of what each portal was publishing on each day, and that record is published as `/data/revisions.csv` (README): one row per field change or disappearance between consecutive daily builds, 22 snapshots since 2026-08-30, 698 rows so far, 169 of them a tracked field changing from one non-empty value to another.

Read it honestly: a row means our build changed, which can be the agency amending the notice or this project's parser improving. The cause_class column labels only what is mechanically decidable (field_populated, field_cleared, format_only, value_changed); row_absent means the row stopped appearing in our build, not that the employer withdrew it. It grows by one snapshot a day and cannot be backfilled by anyone starting later.

Get told when YOUR employers file — free, no card

Name up to three employers (or one whole state); every daily rebuild is matched against them and every match lands on your own alert page with an RSS feed (plus an optional Slack / Discord / Teams webhook).

[Start a free 30-day watch →](https://approj.gumroad.com/l/warn-free-watch) · $0, no card, nothing renews.

Paid tiers

[WARN Watch — $49/year](https://approj.gumroad.com/l/warn-watch)up to 500 employer terms + any number of whole states, matched on every daily refresh for a year. Private alert page + RSS + webhook, no login. What it looks like.
[Full historical archive — free](https://github.com/APVentureEngine/warn-act-notices/releases/latest)all 61,374 notices, 1988–present, 48 states, CSV + JSON + coverage metadata, rebuilt every morning. No paywalled years since 2026-09-07, no account, CC BY 4.0.

The free tier is not crippled to sell these: same normalization, same columns, same CC BY 4.0 licence.

Largest employers by workers noticed in 2026 so far

employerworkers noticed in 2026
Ideal US Talent Systems Worker OpCo11,973
Spirit Airlines6,906
Meta Platforms5,686
Amazon5,386
Republic National Distributing3,533

Honest scope

  • 48 states scraped; not covered yet: AR, NH, WY. coverage.json is the authoritative list and is regenerated on every run.
  • MI, PA and SC publish no notice date at all; those rows are labelled rather than guessed.
  • Compiled from state workforce-agency portals. Independent project, not affiliated with any government agency; not legal or financial advice.
  • Found a bad row? Open an issue — corrections ship the same day.

Source code: github.com/APVentureEngine/warn-act-notices. Underlying scrapers include Apache-2.0 code from biglocalnews/warn-scraper.

<!-- warn-feed:offer:start -->

A layoff record you can audit, not just download

This dataset is one cut of a single daily rebuild: 61,374 US WARN Act layoff notices from 48 state agencies, 1988 to today, one schema, no login, no delay, CC BY 4.0. Snapshot as of 2026-09-22; the files above are rebuilt every day, so the live count is the truth.

Several projects publish a current WARN scrape and two of them carry more rows than we do. None of them publish what the records used to say:

  • 698 observed changes to already-published notices, logged daily since 2026-08-31. data/revisions.csv records every field that differed between two consecutive daily builds — employee counts, effective dates, notice types, company names — with the old value, the new value and the date we saw it. We publish the observation and not the cause: a change is equally explained by the agency amending the notice or by our own parser improving, and we do not guess which (see data/revisions.README.txt). A scrape that starts tomorrow cannot backfill any of it; it only exists if someone was watching.
  • 6,799 notices whose state agency page no longer lists them. Agencies take notices down. We keep them, flagged as archive-only, so a count you ran last year still reconciles.
  • Point-in-time employer identity. The ticker crosswalk resolves a filer to the company as it existed at the time of the notice — Kmart, Sears Holdings, Symantec — not to whatever is on today's ticker file.

If you have to defend a number to an editor, a referee or a compliance reviewer, that provenance layer is the part you cannot rebuild yourself. How to cite this dataset →

Look something up right now — free, no signup, nothing to install. Check any employer or state against the last 180 days → It runs in your browser against these same files.

Building something with it? The same files are a free HTTP API — JSON and CSV, no key, no signup, access-control-allow-origin: * so fetch() works from a browser: endpoints, schema and curl examples →

Prefer a spreadsheet? One formula puts the last 90 days, the last 12 months or any single state into Google Sheets as a live range that refreshes itself — no signup, no add-on: the formulas, one per state → =IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/us-last-90-days.csv")

Backtesting, or citing a figure you published last month? Today's file has look-ahead and survivorship bias baked in: notices get amended after the fact and some rows are later deleted. The same table as it stood on any past day since 2026-08-30 — one immutable vintage per day, 22 so far, plus a first-appearance index giving the first and last day every notice id was in the file — is the point-in-time snapshot archive. Nobody can backfill it.

Need one industry only? The same filings, cut by an auditable employer-name rule (each row keeps the rule that fired): tech companies · hospitals & healthcare · retail store closings · restaurants & hotels · factory & plant closings · banks, insurance & finance · warehouses, trucking & logistics · all 20 sectors.

Or have it watch a list for you. Coming back to look is the part a CSV cannot do. WARN Watch — $49 for a year, one payment, nothing auto-renews, 14-day refund, no login: up to 500 employer names plus whole states, matched on every daily refresh, delivered to a private alert page + calendar (.ics) + RSS + an optional Slack / Discord / Teams webhook. Every alert carries that employer's whole filing history from the archive, which a keyword rule on an RSS feed cannot see. There is no built-in email — we do not claim one.

Not deciding today? Join the update list → — one email when a new dataset or tier is published; nothing promotional. A state added or a column renamed ships in the daily release instead, no address needed. The list is shared across APProjects datasets, holds an email address only, is run by Gumroad, and any message unsubscribes you. Rather give no address at all? Watch the repo's releases — GitHub notifies you on every daily republish, and a new state or changed field is in those notes the day it lands.

Reaching a human. WARN Feed is published by APProjects, an automated data publisher — that is stated plainly rather than dressed up. Corrections, coverage gaps, schema questions and refund requests all go here and are read: open an issue. Payments are handled by Gumroad as merchant of record, so an invoice can carry your company name.

Source, scrapers and methodology · the 48-state site <!-- warn-feed:offer:end -->

<!-- warn-feed:px:start --> <img src="https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/assets/px/hf/space-warn-act-notices.png" width="1" height="1" alt=""> <sub>Card views are counted anonymously: one 1×1 image on a public CDN, no cookies, no script, no personal data. The count is public: <a href="https://data.jsdelivr.com/v1/stats/packages/gh/APVentureEngine/warn-act-notices@main/files?period=month">jsDelivr stats</a>.</sub> <!-- warn-feed:px:end -->