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
backing —
edgar_search_filingsincluded (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. Useedgar_company_filings({ ticker_or_cik })instead ofedgar_search_filingswhen you already have a CIK — it’s entity-scoped and doesn’t have this problem. - EPA ECHO is for facilities, and
facility_nameis a starts-with or wildcard-contains match —{facility_name: "%Tesla%", state: "TX"}for contains,{facility_name: "Tesla", state: "TX"}for starts-with. A barestatealone 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.