Vendor Integrity Checks
NYC DDC
The prompt
DDC's Agency Chief Contracting Officer asked whether AI could assemble a single Vendor Integrity Check report pulling together everything needed for a PPB Rule §2-08 responsibility determination — the mandatory pre-award check performed on every prime and subcontract vendor. DDC alone runs roughly 3,000 of these checks a year, each taking about two hours (~6,000 staff-hours annually), done by staff for whom this is only part of their job. The ask was simply to speed up Integrity Checks and Request for Sub Approvals, with DDC staff offering to fact-check the reports produced.
Sponsor: Michael Shipman, Agency Chief Contracting Officer · NYC DDC
The solution
Vendor Integrity replaces that manual, multi-tab sweep with a single, cited, re-runnable evidence report. A user enters a vendor name (plus optional principals, EIN/UEI, and address), and the product runs an agentic sweep across 23 configured federal, state, and city sources, matching against pre-ingested Postgres snapshots or querying live sources at report time. Every source resolves to one of four honest states — hit, clean, unavailable, or manual-follow-up — and every claim in the report carries a source URL and retrieval timestamp. Reports move through a draft, analyst-reviewed, and final lifecycle with a full audit trail, a computed three-year recertification date, and re-run/diff support so staff can see exactly what changed.
- New report request · /vendor-integrity
- Report library · /vendor-integrity/reports
- Methodology · /vendor-integrity/methodology
The method
- SAM.gov federal exclusions — 167,667 rows
- PASSPort public vendor directory — 36,203 rows
- NYC OCP Recent Contract Awards (Socrata qyyg-4tf5) — 53,007 rows
- NYC City Record Online (Socrata buex-bi6w) — 25,000 rows
- NYS OGS debarment list — 16 rows
- Live-queried at report time: Checkbook NYC, EPA ECHO, ACRIS, OSHA, NYS DOL, CourtListener, adverse-media search
Ingest scripts land the list-type sources into Neon Postgres (`nyc` schema, `vendor_integrity_` tables) on a weekly refresh; live sources are queried at report-request time. Claude orchestrates entity resolution across all 23 sources and drafts the report narrative under strict grounding rules — every claim must trace to a findings row. There's no predictive model here: it's agentic retrieval and structured reporting, gated by a staff access token.
Live verification rated this product PASS — TRUSTWORTHY: all 15 done-when criteria passed, no blockers, zero broken citation links, and a real debarred vendor was caught with a verified FEIN and debarment date.
- DOI Vendor Name Check (§2-08(f)) — confidential, fee-based, manual only
- Vendors' own PASSPort self-disclosures — agency-only
- Internal agency performance evaluations and pre-award survey reports — agency-only
- Full federal PACER dockets — CourtListener is a partial mirror
- NYS eCourts civil/criminal records — captcha-protected, manual follow-up only