@pipeworx/pcaob
Connect: https://gateway.pipeworx.io/pcaob/mcp · Install: one-click buttons
Tools: 5
PCAOB Form AP auditor↔issuer engagements and firm inspection reports — hosted, keyless to the caller. Fleet #624: “who audits Company X and which engagement partner signed”, “every issuer audited by Firm Y”, and “has PCAOB found deficiencies at Firm Y” had no surface before this pack.
Tools
pcaob_auditor_of(company)— which firm audits a company and who the engagement partner is. Resolves a ticker/company name to SEC CIK first (resolveSecEntity, the same universeedgarandseckey on); falls back to an issuer-name search across Form AP filings for issuers without a clean SEC ticker (funds, broker-dealers).pcaob_firm_engagements(firm, fiscal_year?, limit?)— every issuer a firm reported auditing, optionally scoped to one fiscal year.firmmatches a numeric PCAOB Firm ID exactly, otherwise an ILIKE name search.pcaob_partner_engagements(partner, limit?)— every issuer one named engagement partner signed for.pcaob_auditor_changes(days?, limit?)— issuers whose most recent Form AP filing names a different firm than their prior filing, where the change landed in the last N days. Scans up to 1,500 issuers with a filing in the window (response says so if capped).pcaob_inspection_reports(firm, limit?)— PCAOB inspection history for a firm: report year, Part I.A deficiency rate, audits reviewed, PDF link.
Data
Two tables, mirrored by workers/data-pipeline (workers/data-pipeline/src/datasets/pcaob.ts),
migration supabase/migrations/107_pcaob_form_ap_inspections.sql:
pcaob_form_ap— PCAOB’s own bulk download of the entire AuditorSearch dataset (assets.pcaobus.org/firm-filings/FirmFilings.zip), ~156k rows as of 2026-08. Refreshed weekly; quoted CSV with embedded commas in issuer names, so ingest rides the slow parser and drains over several cron ticks via the resume-offset protocol (same pattern as USAspending).pcaob_inspection_reports— the Firm Inspection Reports downloadable dataset PCAOB publishes atpcaobus.org/oversight/inspections/firm-inspection-reports, ~4.3k rows (one per firm per inspection report). Uses the JSON variant of the dataset, not the CSV — PCAOB’s CSV file is UTF-16LE encoded and this pipeline’s parser is fixed at UTF-8; the JSON export of the identical data is plain UTF-8 and small enough to parse whole-body (format: 'json'in the data-pipeline runner, added for this pack — see the runner’s comment for why).
Identity notes
- Issuer CIK can be blank for non-SEC registrants (some broker-dealers) — those rows are kept
under
issuer_nameonly, never dropped. - Firm names vary by country affiliate (“PwC LLP” vs “PricewaterhouseCoopers LLP”). Search matches on the numeric PCAOB Firm ID when the input is all-digits, ILIKE name otherwise, and every response echoes the firm_id(s)/firm_name(s) it actually matched.
pcaob_auditor_changescompares each issuer’s own filing history, not a table-wide diff — PostgREST has no window functions, so this pulls a bounded recent history per issuer batch and picks the two most recent filings client-side. It is a real scan (not an aggregate query), hence the 1,500-issuer cap per call.
Caveat carried on every response
Form AP covers US issuer audits only, self-reported by the audit firm. Firm inspection findings are Part I.A summary counts from PCAOB’s published dataset, not the full report text — the PDF link is provided for that.
Tools
- pcaob_auditor_of — Which PCAOB-registered firm audits a company, and which engagement partner signed the most recent audit report — resolves a ticker or company name to SEC CIK first, then falls back to a name search in
- pcaob_firm_engagements — Every issuer a PCAOB-registered audit firm reported auditing via Form AP, optionally scoped to one fiscal year. Give a firm name (“Ernst & Young”, “Deloitte”) or its numeric PCAOB Firm ID. Use for “ev
- pcaob_partner_engagements — Every issuer a named engagement partner signed for, per Form AP. Give a last name (and optionally first name) — matches are partial. Use for “what companies has [partner name] audited”.
- pcaob_auditor_changes — Issuers whose most recent Form AP filing names a DIFFERENT audit firm than their prior filing, where the new filing landed in the last N days — the “who switched auditors recently” aggregation, which
- pcaob_inspection_reports — PCAOB inspection history for an audit firm: report year, Part I.A deficiency rate, audits reviewed, and a link to the PDF report. Give a firm name (partial match ok). Use for “has PCAOB found deficien
Tools
-
pcaob_auditor_changes— Issuers whose most recent Form AP filing names a DIFFERENT audit firm than their prior filing, where the new filing landed in the last N days — the who switched auditors recently aggregation, which no -
pcaob_auditor_of— Which PCAOB-registered firm audits a company, and which engagement partner signed the most recent audit report — resolves a ticker or company name to SEC CIK first, then falls back to a name search in -
pcaob_firm_engagements— Every issuer a PCAOB-registered audit firm reported auditing via Form AP, optionally scoped to one fiscal year. Give a firm name ( Ernst & Young , Deloitte ) or its numeric PCAOB Firm ID. Use for ever -
pcaob_inspection_reports— PCAOB inspection history for an audit firm: report year, Part I.A deficiency rate, audits reviewed, and a link to the PDF report. Give a firm name (partial match ok). Use for has PCAOB found deficienc -
pcaob_partner_engagements— Every issuer a named engagement partner signed for, per Form AP. Give a last name (and optionally first name) — matches are partial. Use for what companies has [partner name] audited .