California WARN Notices Scraper avatar

California WARN Notices Scraper

Pricing

Pay per event

Go to Apify Store
California WARN Notices Scraper

California WARN Notices Scraper

Extract official California EDD WARN layoff notices with companies, counties, affected employees, dates, industry, and source links.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Extract structured California EDD WARN layoff notices from the official public WARN page and current XLSX report.

Use it to monitor layoffs, closures, affected employee counts, counties, dates, company names, addresses, and source links without manually downloading spreadsheets from the Employment Development Department.

What does California WARN Notices Scraper do?

California WARN Notices Scraper turns the public California EDD Worker Adjustment and Retraining Notification data into clean Apify dataset rows.

It discovers the current official WARN report from the EDD WARN landing page.

It downloads the XLSX report.

It parses the detailed WARN report sheets.

It normalizes company, county, address, notice date, effective date, processed date, layoff or closure type, employee counts, industry, and source metadata.

It generates a stable key for monitoring and deduplication.

It keeps the original source file URL on every row for auditability.

Who is it for?

Recruiting teams can monitor companies that are reducing headcount and may have available candidates.

Outplacement providers can identify employers and regions with newly affected workers.

Sales teams can find organizations going through restructuring events.

Workforce boards can track layoffs and closures by county.

Economic development teams can monitor local labor-market changes.

Journalists can watch official notices for new employment-impact stories.

Risk and compliance teams can schedule checks and diff changes over time.

Why use this actor?

The EDD page is public, but the useful data is inside report files.

Manual spreadsheet checks are repetitive.

Column names and date formats need normalization before automation.

Scheduled Apify runs can create a repeatable monitoring feed.

Stable keys help you compare new runs against old runs.

Source URLs make downstream audits easier.

Data source

The actor starts from the official California EDD WARN page:

https://edd.ca.gov/en/jobs_and_training/Layoff_Services_WARN

The actor discovers XLSX WARN report links from that page.

The actor also logs discovered PDF archive links when archive discovery is enabled.

Structured extraction focuses on XLSX reports because they provide reliable tabular fields.

Output data

Each dataset item represents one WARN notice row.

FieldDescription
companyNameEmployer or company name from the WARN report
countyCalifornia county or parish column value
addressReported workplace address
cityParsed city when available from the address
stateParsed state abbreviation, normally CA
postalCodeParsed ZIP code when available
noticeDateWARN notice date as YYYY-MM-DD when available
processedDateEDD processed date as YYYY-MM-DD when available
effectiveDateLayoff, closure, or relocation effective date
layoffClosureTypeLayoff, closure, relocation, permanent, temporary, or unknown text
affectedEmployeesNumber of employees affected
relatedIndustryIndustry or NAICS sector label from the report
naicsSectorLeading NAICS sector code when present
sourceUrlSource XLSX report URL
sourceFileTypeSource file type, currently xlsx
sourceSheetWorkbook sheet parsed
sourceRowNumberSource row number in the workbook
stableKeySHA-1 key for diffing and deduplication
scrapedAtRun timestamp

How much does it cost to scrape California WARN notices?

This actor uses pay-per-event pricing.

There is a small start charge per run.

There is a per-item charge for each WARN notice saved.

Formula-derived BRONZE pricing is about $0.00003 per WARN notice, with lower per-item prices on higher Apify tiers.

Use maxItems and filters to control run size.

Small county or company filters cost less than full statewide exports.

Input options

startUrls accepts the EDD WARN page or direct report URLs.

reportUrls accepts optional direct XLSX report URLs.

maxItems caps the number of rows saved.

county filters by county text.

companyQuery filters by company name text.

minNoticeDate keeps notices on or after a date.

maxNoticeDate keeps notices on or before a date.

includeArchives discovers and logs archive files from the EDD page.

Example input

{
"startUrls": [
{ "url": "https://edd.ca.gov/en/jobs_and_training/Layoff_Services_WARN" }
],
"maxItems": 100,
"includeArchives": true
}

County monitoring example

{
"startUrls": [
{ "url": "https://edd.ca.gov/en/jobs_and_training/Layoff_Services_WARN" }
],
"county": "Los Angeles County",
"maxItems": 250,
"includeArchives": true
}

Company monitoring example

{
"startUrls": [
{ "url": "https://edd.ca.gov/en/jobs_and_training/Layoff_Services_WARN" }
],
"companyQuery": "manufacturing",
"maxItems": 100
}

Date filtering example

{
"startUrls": [
{ "url": "https://edd.ca.gov/en/jobs_and_training/Layoff_Services_WARN" }
],
"minNoticeDate": "2026-01-01",
"maxItems": 500
}

How to run

Open the actor on Apify.

Keep the prefilled EDD WARN URL.

Choose a maximum item count.

Optionally add county, company, or date filters.

Start the run.

Download results as JSON, CSV, Excel, XML, or via API.

Scheduling tips

Schedule daily or weekly runs for monitoring.

Store previous datasets for comparison.

Use stableKey to detect new rows.

Use noticeDate and processedDate to sort changes.

Use county filters for local workflows.

Use company filters for account monitoring.

Integrations

Send new WARN notices to a CRM.

Create Slack alerts when new notices appear in a county.

Feed affected employee counts into a dashboard.

Join company names with enrichment APIs.

Trigger outreach workflows for outplacement services.

Track county-level totals in a data warehouse.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/california-warn-notices-scraper').call({
startUrls: [{ url: 'https://edd.ca.gov/en/jobs_and_training/Layoff_Services_WARN' }],
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);

API usage with Python

from apify_client import ApifyClient
client = ApifyClient('MY-APIFY-TOKEN')
run = client.actor('automation-lab/california-warn-notices-scraper').call(run_input={
'startUrls': [{'url': 'https://edd.ca.gov/en/jobs_and_training/Layoff_Services_WARN'}],
'maxItems': 100,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items[0])

API usage with cURL

curl -X POST 'https://api.apify.com/v2/acts/automation-lab~california-warn-notices-scraper/runs?token=MY-APIFY-TOKEN' \
-H 'Content-Type: application/json' \
-d '{"startUrls":[{"url":"https://edd.ca.gov/en/jobs_and_training/Layoff_Services_WARN"}],"maxItems":100}'

MCP for Claude Code

Use Apify MCP tools to run this actor from Claude Code.

MCP URL:

https://mcp.apify.com/?tools=automation-lab/california-warn-notices-scraper

Add the server with Claude Code:

$claude mcp add apify-california-warn "https://mcp.apify.com/?tools=automation-lab/california-warn-notices-scraper"

Equivalent MCP JSON config:

{
"mcpServers": {
"apify-california-warn": {
"url": "https://mcp.apify.com/?tools=automation-lab/california-warn-notices-scraper"
}
}
}

Example prompt:

"Run the California WARN Notices Scraper for Los Angeles County and summarize the top employers by affected employees."

MCP for Claude Desktop

Add the Apify MCP server to Claude Desktop.

Use the tool-filtered URL above.

Example Claude Desktop MCP configuration:

{
"mcpServers": {
"apify-california-warn": {
"url": "https://mcp.apify.com/?tools=automation-lab/california-warn-notices-scraper"
}
}
}

Ask for a county-level WARN monitoring report.

Export the dataset URL when you need the raw rows.

Data quality notes

Dates come from the official report and are normalized when possible.

Some address strings may not contain a parseable ZIP code.

Industry labels are preserved exactly from the report.

The naicsSector field is extracted from the leading sector code when present.

Every row includes the source workbook URL.

Archive behavior

The EDD page links historical PDF archives.

The actor discovers those archive URLs when includeArchives is enabled.

Current structured extraction is optimized for XLSX reports.

PDF archive URLs are logged for audit context.

Use direct XLSX report URLs in reportUrls when EDD publishes additional structured files.

Troubleshooting

If you get zero items, check whether your county, company, or date filter is too narrow.

If a date filter seems wrong, confirm that the source row has a valid notice date.

If EDD changes the page, provide the direct XLSX report URL in reportUrls.

If you need more rows, increase maxItems.

Legality

This actor extracts publicly available California EDD WARN information.

Respect Apify terms and your own compliance obligations.

Do not use the data for unlawful discrimination, harassment, or prohibited employment decisions.

Keep personal data handling policies aligned with applicable laws.

Try other automation-lab actors for company enrichment, job-market monitoring, government data extraction, and lead workflows.

Useful adjacent categories include business intelligence, public records, jobs, and government data.

FAQ

Does this actor require a login?

No. It uses public California EDD pages and report files.

Does it use a browser?

No. It uses lightweight HTTP requests and XLSX parsing.

Can I monitor one county?

Yes. Use the county filter.

Can I monitor one company?

Yes. Use companyQuery.

Can I diff new notices?

Yes. Use stableKey to compare current and previous datasets.

Can I export to Excel?

Yes. Apify datasets can be downloaded as Excel, CSV, JSON, XML, RSS, and HTML.

Use the EDD landing page as startUrls; the actor discovers current XLSX links. If needed, provide a direct XLSX URL in reportUrls.

Why are archive PDFs not parsed into structured rows?

The current production extraction focuses on structured XLSX data for reliability. Archive PDF links are still discovered and logged for source awareness.