California WARN Notices Scraper
Pricing
Pay per event
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
Maintained by CommunityActor 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.
| Field | Description |
|---|---|
| companyName | Employer or company name from the WARN report |
| county | California county or parish column value |
| address | Reported workplace address |
| city | Parsed city when available from the address |
| state | Parsed state abbreviation, normally CA |
| postalCode | Parsed ZIP code when available |
| noticeDate | WARN notice date as YYYY-MM-DD when available |
| processedDate | EDD processed date as YYYY-MM-DD when available |
| effectiveDate | Layoff, closure, or relocation effective date |
| layoffClosureType | Layoff, closure, relocation, permanent, temporary, or unknown text |
| affectedEmployees | Number of employees affected |
| relatedIndustry | Industry or NAICS sector label from the report |
| naicsSector | Leading NAICS sector code when present |
| sourceUrl | Source XLSX report URL |
| sourceFileType | Source file type, currently xlsx |
| sourceSheet | Workbook sheet parsed |
| sourceRowNumber | Source row number in the workbook |
| stableKey | SHA-1 key for diffing and deduplication |
| scrapedAt | Run 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 ApifyClientclient = 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().itemsprint(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.
Related scrapers
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.
What happens if EDD moves the report link?
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.