WARN Layoff Notice Monitor — 15 States, No Login avatar

WARN Layoff Notice Monitor — 15 States, No Login

Pricing

from $20.00 / 1,000 layoff notices

Go to Apify Store
WARN Layoff Notice Monitor — 15 States, No Login

WARN Layoff Notice Monitor — 15 States, No Login

Watch WARN Act layoff and closure notices in 15 states (CA, NY, FL, WA, PA, VA and more) and get only NEW or updated notices since the last run: company, location, employees affected, notice and effective dates, notice PDF. Daily schedule. No login. MCP-ready. $20 per 1,000 alerts.

Pricing

from $20.00 / 1,000 layoff notices

Rating

0.0

(0)

Developer

Peter Skotte

Peter Skotte

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

WARN Layoff Notice Monitor

Watches the official state WARN Act feeds (mass layoffs and plant closings) and emits only the notices that are new or changed since the last run. Point it at the states you sell into, schedule it daily or weekly, and get the leads pushed to a webhook.

WARN notices are the earliest public signal that a company is laying off 50+ people. Recruiters, staffing agencies, outplacement firms, workforce boards, lenders and journalists all use them, but every state publishes its own list in its own format. This actor normalizes 15 of them into one schema and remembers what it has already shown you.

State coverage

StateSourceFeed typeUpdate cadenceNotes
CACalifornia EDDXLSX reportTuesdays and ThursdaysNotice, processed and effective dates, address, industry, closure vs layoff
TXTexas Workforce Commission via data.texas.govSocrata JSON APIBatch updates, often weeks to months behindTWC's own spreadsheet sits behind an AWS WAF challenge, so the open-data mirror is used; expect a lag
NYNew York DOLTableau Public dashboard exported as CSVContinuousNotice date, posted date, site address, county, reason, permanent/temporary
FLFlorida DEO (REACT)HTML table, current yearContinuousAddress, industry, layoff date range
PAPennsylvania L&IHTML accordion grouped by monthMonthly groupingNotice dates are month-level only (noticeDate = first of month, postedDate = end of month or today)
WAWashington ESDASP.NET grid (16 per page)ContinuousLayoff start date, permanent/temporary, PDF link
INIndiana DWDHTML tableContinuousNAICS and industry description, PDF link; fetched through Apify datacenter proxy (in.gov blocks direct cloud traffic)
MDMaryland DLLRHTML tableContinuousAddress, NAICS, county, effective date
VAVirginia WorksHTML tableContinuousAddress, effective date, collective bargaining unit, PDF link
COColorado CDLEGoogle Sheet (current-year tab) exported as CSVContinuousWorkforce area, begin/end dates, reason, occupations
UTUtah DWSHTML tableContinuousNotice date, city, headcount only
ALAlabama Department of WorkforceHTML tableContinuousCity, planned start date, closure vs layoff
DCDC DOESHTML table, current yearContinuousEffective date may be a range or TBD
OROregon HECC Rapid ResponseHTML listing (25 per page)ContinuousCity column is the employer's address on file, not necessarily the affected site; PDF link
WIWisconsin DWDGoogle Sheet exported as CSVContinuousCounty, NAICS description, layoff begin date, PDF link

Not covered (checked September 2026): Illinois (DCEO site does not resolve), Massachusetts (report page removed), Michigan (JavaScript-only search), Ohio (client-rendered dashboard), New Jersey, North Carolina, Tennessee (PDF only), Georgia (list retired), Missouri (Incapsula wall), Arizona (search cannot be sorted by date). Ask if you need one of these.

Output

One record per new or updated notice:

FieldDescription
stateTwo-letter state code
companyEmployer name as published
locationCity (or county / workforce area when the state publishes no city)
countyCounty when published
addressSite address when published
employeesAffectedHeadcount, null when the state lists TBD
noticeDateDate of the WARN notice
postedDateDate the state posted or processed it (falls back to noticeDate); the lookback window is applied to this
effectiveDateFirst layoff / closure date
layoffTypeclosure, layoff or unknown
industryNAICS code or industry description when published
unionInfoCollective bargaining unit when published (VA)
noticeUrlLink to the notice PDF when the state provides one
sourceUrl, sourceNameWhere the record came from
changeTypenew on first sight, updated when the headcount or effective date changed
previousEmployeesAffectedPrior headcount on updated records
firstSeenAtISO timestamp of the run that first saw the notice
noticeKeyStable key (state + company + notice date + site, or the state's own ID)
monitorIdThe monitor this record belongs to

Some states add layoffDetail, effectiveDateEnd, effectiveDetail, reason, occupations or workforceArea.

Input

FieldDefaultDescription
states["CA","TX","NY"]State codes to monitor (see table above)
companyKeywords[]Only notices whose company name contains one of these words
minEmployees0Skip notices below this headcount
lookbackDays14Only notices posted within this many days; 0 disables the window
maxNewPerState5Cap per state per run; the rest carry over to the next run
maxItems10Cap per run across all states
firstRunModeemitAllbaseline makes the first run record everything and emit nothing
webhookUrl""POST a JSON summary with up to 50 notices after each run
monitorIddefaultEach ID keeps its own memory of seen notices
proxyConfigurationnoneOptional; the feeds work without one

How the monitor works

  1. Every run fetches the current list from each selected state.
  2. Notices are filtered by the lookback window, headcount and keywords, then compared with the monitor's memory (a named key-value store, warn-monitor-<hash of monitorId>, capped at 50,000 keys).
  3. Unseen notices are emitted as new; notices whose headcount or effective date changed are emitted as updated; everything else is skipped.
  4. Emitted notices are remembered. Notices cut off by maxNewPerState / maxItems are not, so they appear on the next run.
  5. If webhookUrl is set, one POST is sent per run with { monitorId, runAt, newCount, updatedCount, perState, errors, notices: [...] }.
  • Weekly digest: schedule weekly, lookbackDays: 14, maxNewPerState: 50, maxItems: 500.
  • Daily alerts: schedule daily, lookbackDays: 7, keep the caps generous, set webhookUrl.
  • Fresh start without a backlog: run once with firstRunMode: "baseline", then schedule normally. Only notices posted after the baseline run will be emitted.
  • Several watch lists: use a different monitorId per filter set (for example one per recruiter territory).
  • Large layoffs only: minEmployees: 500.

Pricing

$0.005 per run plus $0.02 per emitted notice. Runs that find nothing new cost only the start fee.