US WARN Layoff Notices - Oregon & Texas
Pricing
from $1.80 / 1,000 layoff notice observations
US WARN Layoff Notices - Oregon & Texas
Official Oregon and Texas WARN notice records with source links, reported worker counts, explicit date meanings and saved revision comparisons. Keyless; bounded state coverage.
Pricing
from $1.80 / 1,000 layoff notice observations
Rating
0.0
(0)
Developer
Brandt May
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share

Track published WARN notices
For workforce researchers and company watchlists, collect official WARN notice observations and compare revisions to the same source record.
Coverage: Oregon HECC and Texas TWC only, within the selected page window. Agency update cadence determines freshness.
Open this Actor in Console · First run · Results · Cost · Full guide
Try this Actor
- Use the existing “Recent Oregon notice observations” example below: up to five saved notices from one inspected page, without comparison history.
- Open the dataset for notices and source links. In the key-value store, inspect
SUMMARY.sourcesfor page coverage and source status.
Read the results correctly: Notices are not a census of layoffs or proof of completed job losses. Oregon's reported city may be a corporate location; repeat counts are not unique workers.
Oregon WARN Notice Observations — copy this input into the JSON editor in Console.
{"states":["OR"],"maxResults":5,"maxSourcePages":1}
Result preview
The dataset view highlights these columns:
- Source state ·
state - Published employer ·
employerName - Reported location ·
reportedLocation - Source notice date ·
noticeDate - Meaning of notice date ·
noticeDateMeaning - Effective layoff date ·
effectiveDate
Use the original source links and the field definitions below when interpreting the results. CSV works well for flat columns; JSON preserves nested values.
Usage and pricing
Base result rate on the FREE tier: $3 per 1,000 layoff notice observations. The Pricing tab shows your plan's result rate and any Actor Start charge. Set a small result limit for the first run; the requested limit is not a guarantee of that many results.
Customer workflow: A source-linked WARN revision desk
Keep one current row for each published Oregon or Texas notice, with revisions separated from first observations. Researchers can review the original notice before using it in a company or regional brief.
Setup: Connect your own Apify and Google Sheets notice register and a human review queue through Make or n8n. Keep credentials in your connector's credential manager.
{"states": ["OR"],"maxSourcePages": 1,"maxResults": 100,"comparePrevious": true,"onlyChanges": false,"snapshotName": "customer-or-warn-v1","maxRunSeconds": 240}
Start with a 300-second Run timeout and $0.50 maximum run charge, alongside the input's 240-second budget. Check current pricing and the selected scope before increasing either limit.
- Create a Notices sheet with one row per
id. Run the input above once and seed the register. Label these rows "First observed" so an older notice is not presented as a newly announced layoff. - Review Run report and
SUMMARY. Require no source, time, spending, or history errors; check each row hassourceCollectionComplete: true. Save the whole matched page window before treating this as an established baseline. - For later runs, keep the same scope and
snapshotName, then setonlyChanges: true. Run one writer at a time. In n8n use Sheets "Append or Update Row"; in Make use a key lookup followed by update-or-create. - Route
changedrows to a revision queue with the officialrecordUrl,changedFields, and previous/current worker counts. Let a researcher review the notice before adding it to a brief.
| Destination information | Actor fields |
|---|---|
| Sheet key | id |
| Employer and place | employerName, reportedLocation, locationMeaning |
| Dates and their meanings | noticeDate, noticeDateMeaning, effectiveDate |
| Reported count revision | affectedWorkers, previousAffectedWorkers, affectedWorkersDelta |
| Evidence | recordUrl, contentHash, observedAt |
Keep the meaning: This input inspects one Oregon page, currently 20 notices. OR and TX are the only supported sources. Notice dates are source-defined, and Oregon locations can be corporate locations. Repeat notices and amendments must not be summed as unique people.
Empty or interrupted runs: A healthy change-only repeat may be empty. Keep the existing sheet; absence is not withdrawal. First observations mean new to your saved history, not newly published.
Reliable delivery: Read the completed run's own SUMMARY and paginated dataset. Retain its run ID; if destination delivery fails, replay that dataset and deduplicate by run ID plus row key. Keep destination writes sequential, and write source text literally.
Validation: Inputs and mappings were checked locally against this Actor. The exact customer connection has not been run end to end. Choose recurrence after a manual bootstrap; this guide creates no schedule. See the run API, pagination guide, and the full Actor guide below for detailed setup and limits.
Full guide
Read official WARN notice records from Oregon HECC and Texas Workforce Commission. Get employer names, reported worker counts, source links, dates with explicit meanings, and optional comparisons with previously saved observations.
Useful for company watchlists, workforce research, regional reporting and recruiting operations. Each result retains its source record ID and a content hash so a changed headcount can be handled as a revision to that record.
Coverage and source meaning
| Source | Fields and limits |
|---|---|
| Oregon HECC WARN list | Tracking number, Notification Date, employer, published City, affected-worker count, layoff type and notice-attachment page. The index does not expose an effective layoff date. Published City can be an employer or corporate location outside Oregon; it is not a verified affected worksite. |
| Texas TWC open data | Socrata row ID, employer/job-site name, affected city/county/workforce area, notice receipt date, effective layoff date, reported worker count and TWC system-entry date. Dataset update time is included when available. |
noticeDateMeaning distinguishes Oregon's published Notification Date from Texas's employer-notice receipt date. Neither is advertised as a publication date. observedAt is this Actor's retrieval time; sourceDataUpdatedAt is Texas's dataset update time. No publication timestamp is inferred.
These are published notices, not all layoffs or confirmed completed job losses. Notices can change, be withdrawn, cover phased separations or overlap. Do not add repeat observations, amendments or matching company names together as unique people. Employer names are not resolved to legal entities. The Actor does not read notice PDFs, extract employee names, infer layoff causes, assess legal compliance or predict financial distress.
At the October 8, 2026 source check, Oregon's recent list included an October 6 notice. Texas's dataset was last updated July 7 and its newest notice-received date was June 23. Source freshness depends on the agency; successful retrieval does not imply new notices or same-day coverage.
Quick start
Run {} without credentials. Code defaults select Oregon, inspect one index page (currently 20 notices), and save up to 10 matching observations. No proxy or browser is required.
The Actor supports only OR and TX. It sorts matching observations by noticeDate descending after collection. Oregon's index is traversed in its published order; a bounded window is not a claim of complete chronological or statewide coverage. Texas pages are ordered by received date and source ID. See SUMMARY.sources for inspected pages, latest date within the window, source failures and whether the end of each published index was reached.
Inputs
| Input | Default | Meaning |
|---|---|---|
states | ["OR"] | OR, TX, or both. Empty also selects OR. |
maxResults | 10 | Saved notice observations across selected sources, 1–1000. |
maxSourcePages | 1 | Pages inspected per state, 1–20. Oregon currently returns 20 records/page; Texas uses 100. Filters apply to this inspected window. |
companyNames | [] | Up to 30 case-insensitive employer-name fragments, matched with OR logic. No company discovery outside the inspected pages. |
noticeDateFrom, noticeDateTo | empty | Inclusive YYYY-MM-DD bounds on each source's notice date. These do not filter the effective layoff date. |
minAffectedWorkers | 0 | Minimum published worker count. Zero retains records with an unknown count. |
comparePrevious | false | Compare each record against its last saved observation. |
onlyChanges | false | Enables comparison and emits first observations or changed records. |
snapshotName | "default" | Independent history namespace, 1–80 letters, digits, _ or -. Use one concurrent writer per name. |
maxRunSeconds | 240 | Actor budget, 30–900 seconds, also constrained by the platform deadline with a 25-second reserve. |
Three exact examples
1. Recent Oregon notice observations
Use the copyable first-run input above.
2. Texas notices with effective layoff dates
{"states":["TX"],"maxResults":5,"maxSourcePages":1}
3. Larger reported workforce reductions in both sources
{"states":["OR","TX"],"minAffectedWorkers":100,"maxResults":10,"maxSourcePages":1}
These examples do not require a baseline. Their date coverage follows the agencies' currently available data and the inspected page window.
Output
One dataset row is one successful source-record observation. Main fields:
id,state,sourceRecordId,sourceName,sourceUrl,recordUrl.employerName,reportedLocation,locationMeaning,county,workforceArea.noticeDate,noticeDateMeaning,effectiveDate,systemEnteredDate.affectedWorkers,layoffType, andrawsource date/count values.contentHash,observedAt,sourceDataUpdatedAt,sourceCollectionComplete.comparisonStatus,changed,changedFields,previousObservedAt,previousAffectedWorkers,affectedWorkersDelta.
Fields unavailable in a source are null. An Oregon recordUrl leads to its official notice attachment index, not extracted PDF content. Texas's record link is a public API query for that exact source row.
affectedWorkersDelta compares the same source record's current and previously saved counts. A negative value is a revision, not evidence that jobs were restored. first_observation means this record has no saved history in the selected namespace; it does not mean the agency just published it. Texas source IDs can change if the agency replaces its dataset, which would create new observations in this Actor's history.
Change tracking and history
History uses an Actor-specific named key-value store. The first comparison run emits the matching inspected records. Repeat runs with onlyChanges: true can legitimately return zero rows. Unchanged records are not billed because no dataset row is saved. If maxResults or a spending limit stops the first run before the whole inspected window is saved, a later run may emit the remaining previously unseen records.
The content hash covers the normalized employer, location, dates, worker count and type. Retrieval time and dataset update time do not cause false content changes. History advances only after a confirmed dataset write, and only if that source completed its selected page window. Failed collection, invalid history, exhausted deadlines and rejected output do not overwrite the affected history. Storage write failures are reported in SUMMARY. A saved final row at a charge limit can still update its history.
The Actor never treats a missing notice as a deletion or withdrawal. An index omission, changing page window or state archive rollover is insufficient evidence. Separate snapshots do not coordinate; use one writer at a time per snapshotName.
Run summary, limits and failures
SUMMARY in the default key-value store records total, matched, inspected, sources, failedSources, scopeLimited, incomplete, charge/deadline stops and history updates. savedSourceNoticeCount counts distinct source IDs in saved output. distinctPublishedEmployerNames counts exact published names, not unique legal entities. Worker counts are not summed.
An intentional page/output bound sets scopeLimited; it is not an upstream failure. Partial failures set incomplete and status: "partial". If every source fails, or the deadline expires before any usable output, the run fails with diagnostics instead of saving error rows. Valid empty filters, unchanged windows and a spending limit permitting no rows return a clear summary. Successful records from an earlier page may be saved after a later-page failure with sourceCollectionComplete: false; their history is not advanced.
Public requests respect robots directives, public-address checks, redirect validation, response-size limits and the remaining deadline. Texas requests are paced at least one second apart. A bounded retry is used for 429/5xx responses; access restrictions are not bypassed. Socrata allows unauthenticated queries but applies shared IP rate limits. The Actor needs no API key. Oregon's older Socrata dataset is not used because it was unavailable during qualification.
Pricing
The proposed price is $0.003 per saved notice observation ($3 per 1,000). The Store's current pricing card is authoritative, including any Actor start charge and plan discounts. An observation with unavailable optional fields is still a notice; fake error rows are never saved. Comparison rows repeat a source notice when its tracked fields change or when comparison is disabled.
Support
For bugs or source corrections, use Actor Issues or email bmay@mayd-it.com. Please include the run ID and source record ID, without credentials or employee personal information. Public data correction requests should also be directed to the relevant publishing agency.
Help with your run
Open the Issues tab on this Actor with the run URL, the input field that caused trouble and what you expected to receive. Remove API keys and private information before posting.
Understand your run
Open Run report in the run’s Output tab for saved-record counts, reported source issues and limits, and suggested next steps. Use CSV export to take the saved results into a spreadsheet. The existing JSON results and detailed machine-readable summary remain available.
The report reflects this run’s recorded coverage. A successful run or a saved result does not establish that every possible source record was collected.