Recipe: Regulatory landscape

The task

You need a company’s federal regulatory footprint — pending rules, EPA enforcement, federal contract awards, sanctions exposure — assembled from primary-source government data rather than a news summary.

Tools used: edgar_search_filings, the Federal Register search tool (namespaced federal_register_search_documents on the gateway — see Step 2), echo_facility_search, usa_recipient_profile, sanctions_screen.

Calls: 4–5.

Copy-paste prompt

Map <company>'s federal regulatory exposure using Pipeworx: recent SEC filings and 10-K risk
factors, Federal Register mentions, EPA facility/enforcement records, federal contract
awards, and a sanctions screen. For each source, tell me plainly if the matches could be a
different entity with a similar or overlapping name rather than the company itself — three
of these five tools are name/keyword matches, not strict entity filters.

What a good answer looks like

federal_register_search_documents({ query: "Tesla" })

returns (live call, 2026-08-06 — trimmed to one result):

{
  "query": "Tesla",
  "total": 452,
  "documents": [
    {
      "document_number": "2026-14506",
      "title": "Tesla, Inc., Denial of Petition for Decision of Inconsequential Noncompliance",
      "type": "Notice",
      "agencies": ["Transportation Department", "National Highway Traffic Safety Administration"],
      "publication_date": "2026-07-17",
      "html_url": "https://www.federalregister.gov/documents/2026/07/17/2026-14506/..."
    }
  ]
}

A trustworthy answer distinguishes, per document, proposed rule (upcoming exposure) vs. final rule (recent shift) vs. notice (often a company-specific petition, as above) — the type field carries this, and treating all 452 hits as “regulatory activity” without reading type overstates how much of it is rulemaking versus routine agency correspondence.

Three of the five tools in this recipe are keyword/fuzzy matches over a name, not a strict entity filter — and each one’s failure mode is a clean, well-formed, believable-looking response that is quietly about the wrong entity.

1. EPA ECHO: facility name is a substring match, not a company filter

echo_facility_search({ facility_name: "%Tesla%", state: "TX" })

(Note the argument is facility_name, not company_name — a bare company_name argument is silently ignored by the schema and the call fails: “At least one search parameter is required (facility_name, state, zip, city, or naics).”)

Live result, top 5 of 36 matches:

TESLA II TESLA TO FAGUS TRANSMISSION LINE   — a transmission line near Childress, TX
ETT 345KV TESLA SUBSTATION EXPANSION         — an electrical substation
LINE P (SOUTH) TESLA REPLACEMENT             — another transmission line
NEW TESLA SERVICE AND COLLISION CENTER        — plausibly Tesla, Inc.
TESLA                                          — unclear; likely named after the physicist, not the company

Three of five results are electrical infrastructure named after Nikola Tesla (a very common naming pattern for transmission/substation projects), not Tesla, Inc. the automaker. A summary that reports “N EPA facility matches” without inspecting each name overstates the company’s actual EPA footprint.

2. USAspending: recipient_name is a full-text keyword search, not a recipient filter

usa_recipient_profile({ recipient_name: "Tesla", start_date: "2025-01-01", end_date: "2025-12-31" })

Live result — awards[].recipient_name values seen:

TESLA GOVERNMENT INC.
TESLA LABORATORIES INC.
GE PRECISION HEALTHCARE LLC
COMMONWEALTH SCIENTIFIC AND INDUSTRIAL RESEARCH ORGANISATION

None of these is Tesla, Inc. (the automaker) — “Tesla Laboratories” and “Tesla Government” are real but unrelated federal contractors, and GE Precision Healthcare / CSIRO almost certainly matched because tesla is also the SI unit for magnetic flux density (as in a “3 Tesla MRI scanner”) appearing somewhere in the award description — the tool searches award text broadly, not just the recipient field, despite the argument being named recipient_name. Also live-verified: the response’s own total_results field reads 0 even when awards is non-empty (10 real rows) — don’t trust total_results; count awards.length yourself. Filed as a fix task 2026-08-06 (fleet #138).

3. Sanctions screen: fuzzy name matching surfaces unrelated entities

sanctions_screen({ name: "Tesla" })

Live result: clear: false, top match "Zagros Electronic" — alt name “Tesla Hooshmand Sazan Company”, an Iranian entity on the BIS Entity List. clear: false here does not mean Tesla, Inc. has a sanctions hit — it means a fuzzy match found an unrelated company whose alternate name happens to contain the word “Tesla.” Read matches[].name and alt_names before reporting any sanctions signal; the tool’s own note field says as much: “Review matches — fuzzy name matching produces candidates, not confirmed identity matches.”

Step-by-step tool calls

1. SEC posture

edgar_search_filings({ query: "Tesla", form_type: "8-K" })

edgar_search_filings is also full-text search, not entity-scoped — a live “Tesla”/8-K query returned ViewRay, Inc. (Moscow-located, nothing to do with Tesla) ranked above TESLA MOTORS INC itself, out of 2,305 total hits. Check entity_name on every result rather than assuming a keyword match means the company. If you already have the CIK, edgar_company_filings({ ticker_or_cik }) is entity-scoped and doesn’t have this problem — see the research-a-public-company recipe.

Recent 8-Ks signal material events. For risk factors:

edgar_search_filings({ query: "Tesla", form_type: "10-K" })

Then read the most recent 10-K’s Item 1A.

2. Federal Register engagement

federal_register_search_documents({ query: "Tesla" })

(Not bare search_documents — that name collides across three packs on the gateway: federal_register_search_documents, riksdagen_se_search_documents, ptab_search_documents. Use the full namespaced name.)

Distinguish type in your output — Notice/Proposed Rule/Final Rule — per “What a good answer looks like” above.

3. EPA enforcement

echo_facility_search({ facility_name: "%Tesla%", state: "TX" })

Read name on every result before attributing it to the company — see the failure mode above. Returns facilities, open enforcement actions, formal vs. informal violations, and historical compliance per matched facility.

4. Federal contract awards

usa_recipient_profile({ recipient_name: "Tesla", start_date: "2025-01-01", end_date: "2025-12-31" })

Read awards[].recipient_name on every row — see the failure mode above. Useful as a positive (company has government revenue) or negative (lock-in to a procurement cycle) signal, if the rows actually belong to the target company.

5. Sanctions check

sanctions_screen({ name: "Tesla" })

Keyless screen against the US consolidated screening lists (SDN, BIS Entity List, and others). Returns candidate matches with a clear flag and a score per match — read both before reporting a hit. For global watchlists and PEP coverage, the open-sanctions pack does the same job with a BYO OpenSanctions key.

Citation pattern

The figures are illustrative — use what your own calls returned, and name the entity each result actually matched, not just the query string:

Tesla, Inc. regulatory landscape: EPA ECHO facility search for “Tesla” in Texas returns 36 name matches, most of which are unrelated electrical infrastructure — only the collision center facility is plausibly Tesla, Inc.’s. N proposed rules mention the company in Federal Register. USAspending’s “Tesla” keyword search surfaces unrelated contractors (Tesla Laboratories Inc., Tesla Government Inc.) rather than the automaker — no federal award match found for Tesla, Inc. itself in this window. Sanctions screen surfaced one fuzzy match (an Iranian entity with “Tesla” in an alternate name) — not a hit on the company.

Use the prompt

prompts/get({
  name: "regulatory_landscape",
  arguments: { company: "Tesla" }
})

Returns a substituted prompt that orchestrates the full sequence with rationales.

Caveats

  • All five sources here are plain-text name/keyword matches, with no company-registry backingedgar_search_filings included (see Step 1). Filter every result by its own entity-name field; never report a raw hit count as if it were pre-verified to be the target entity. Use edgar_company_filings({ ticker_or_cik }) instead of edgar_search_filings when you already have a CIK — it’s entity-scoped and doesn’t have this problem.
  • EPA ECHO is for facilities, and facility_name is a starts-with or wildcard-contains match{facility_name: "%Tesla%", state: "TX"} for contains, {facility_name: "Tesla", state: "TX"} for starts-with. A bare state alone is rejected upstream (too broad).
  • USAspending updates monthly and — separately from the keyword-match issue above — recent awards may not yet be reflected.
  • Sanctions are an L1 fuzzy-name check. A clean screen doesn’t mean the company has no compliance exposure; a flagged screen doesn’t mean it does — read the actual matched entity’s name before concluding either way.

Last reviewed August 6, 2026