CROL-List makes The City Record — the official daily journal where every NYC agency must publish its contracts, hearings, rule changes, rezonings, and staff moves (NYC Charter §1066) — actually searchable, and emails you the moment something you care about shows up in it.
- Use it: crol-list.org
- Changelog: crol-list.org/changelog.html
- System Stats: crol-list.org/stats.html
Track a rezoning in your neighborhood. Before: dig through City Planning's ZAP case portal by project number, or wait for a neighborhood listserv to notice. With CROL-List: search "Bushwick rezoning" in plain English, follow the project, and get an email the moment its status changes — mapped against the actual tax lots.
Catch a contract award before it's old news. Before: comb the City Record by hand, or wait for a reporter to flag it. With CROL-List: watch any agency or vendor — "construction contract awards over $500k" — and get notified the day it posts, with the award amount (reconciled against what Checkbook NYC shows was actually paid), the vendor, and a link to the real notice.
Get alerts in your own language. Before: English-only civic data, full stop. With CROL-List: switch the whole interface — search, filters, digests — to Spanish, Simplified Chinese, or Russian. Notices themselves stay in English (it's the official record's language), but everything CROL-List adds around them speaks yours.
Follow a role or a salary band. Before: cross-reference three separate NYC Open Data portals by hand. With CROL-List: one People-lens search shows a title's civil-service exam status, pay band, and appointment history together.
- 💵 Money: Follow contracts from RFP → Intent to Award → Award, complete with bidding deadlines, PASSPort links, agency contacts, and CSV exports. Profiles for nine public authorities also show their latest official state-filed awards, clearly labeled as annual filings that may lag by a year.
- 🔮 Predictive Forecasting: Track upcoming solicitation opportunities 6 months before they are formally published. Fuses historical Checkbook NYC award durations to calculate expiration/renewal cycles, scrapes annual MOCS agency plans, displays a chronological vertical timeline widget on profiles, and triggers early-warning alert notifications.
- 👤 People: Explore city job listings, civil service exam statuses, pay scales, and appointment/payroll histories.
- 🏗 Land: Map rezonings in plain English, linked to the official City Planning ZAP registry and tax-lot (MapPLUTO) boundary polygons.
- 🏛 Property: Track municipal asset auctions (real estate, equipment, timber) and check building demolition statuses.
- 📋 Rules & 🗓 Meetings: Monitor regulatory changes, public comment windows, and public hearings.
- Subscription Quiz: Build tailored watches via an onboarding wizard.
- Subscribe by Email: Write to
subscribe@crol-list.orgin plain English; an LLM parses it into a watch and replies with a double-opt-in confirmation link. - MCP for AI Assistants: Point any MCP client at
api.crol-list.org/mcpto search notices and create/preview watches programmatically (docs). - Proactive Alerts: Receive morning email digests (queued per-subscriber delivery with independent retries) or subscribe to live RSS/Atom, JSON, and iCal feeds. Alerts deliver in your chosen language.
- Multilingual UI: Switch the interface to Spanish, Simplified Chinese, or Russian via the header language selector; your preference is remembered. City Record notices remain in English (the official source language).
- The Data: the City Record at a glance — sections, volume, procurement mix, top agencies/vendors by cleaned dollars — computed live in the browser.
- Unified Workspace: Pin records, write local notes, export CSV/JSON dossiers, and generate shareable snapshot links.
| Source / Portal | Endpoint / ID | Used For |
|---|---|---|
| City Record Online (Socrata) | dg92-zbpx |
core notices: solicitations, awards, rules, meetings |
| Checkbook NYC API | POST /api (Contracts, Contracts_NYCHA) |
registered amounts, paid-to-date, renewal expiration forecasting, and date-guarded NYCHA solicitation matches |
| NYS Authorities Budget Office (Socrata) | 8w5p-k45m, d84c-dk28 |
recent official awards on nine mapped public-authority profiles; annual filings may lag by a year |
| MOCS Procurement Plans (Socrata) | whpb-ebtd |
Charter §112 agency solicitation plans (forecasting) |
| Citywide Payroll (Socrata) | k397-673e |
People lens (individual pay histories) |
| Civil Service List (Socrata) | vx8i-nprf |
People lens (exam details) |
| ZAP Projects (Socrata) | hgx4-8ukb |
Land lens (rezonings status) |
| MapPLUTO (ArcGIS Online) | /MAPPLUTO |
Land lens (geographic lot boundary layers) |
| DOB Job Filings (Socrata) | w9ak-ipjd, ic3t-wcy2 |
Property lens (building demolition verification) |
This repository holds the complete system: a static client (index.html) and a serverless
Cloudflare Worker backend (worker/) that handles email alerts, feeds, public metrics, and
the plain-English search assistant. It's designed to be forked and pointed at any city's
open-data portal.
For the code map and how the pieces fit together, see CONTRIBUTING.md; for backend routes, storage, and deploy steps, see worker/README.md.
Both unit layers run automatically in CI on every pull request and push to main
(.github/workflows/ci.yml); the Playwright functional suite runs on manual dispatch.
Run tests from the repository root:
- Unit Tests: Run
node --testto verify entity stem compilers, name resolution, and date logic. - Worker Tests: Run
node --testinside theworker/directory. - Functional (Playwright) Tests: Driven against a headless Chromium browser using:
Requires Python 3 and Playwright (
./test/functional/run.sh
pip install playwright && playwright install chromium). - Production E2E Tests: Run against the live production deployment using:
CROL_BASE=https://crol-list.org/ ./test/functional/run.sh