Alerts don't have to stop at your inbox. Every saved search can also post to Slack, feed a Clay table, or hit your own endpoint, and the same data is one tool call away for AI agents over MCP. The options live in the feed's Save this search dialog; keys and plans on your account page.
Slack: a territory channel that pings itself
One message per alert per day, the night after the nightly run picks up the filing.
- In Slack: Apps → Incoming Webhooks → Add to Slack, pick the channel
(say
#new-raises-tx), copy the webhook URL (https://hooks.slack.com/services/…). - On the feed, set your filters, hit Save this search, and paste the URL into Slack webhook.
Each matching company arrives as one line: name, city/state, amount (or undisclosed), sector with its provenance, filed date, site and EDGAR links. Available on every paid plan, same as email alerts.
Clay: the Form D source for Clay tables
Point a saved search at a Clay webhook and every matching company lands as a table row the night we pick up its filing. Then enrich with your own Clay credits (emails, headcount, tech stack) and push to your CRM. You bring the enrichment; we bring the signal, often weeks before the databases have it.
- In Clay: New table → Import data → Monitor a webhook; copy the webhook URL.
- On the feed, save your search with the URL in Outbound webhook (Max plan).
One JSON POST per company, one Clay row each, no parsing:
{
"event": "filing.matched",
"filter": "TX fintech $5M+",
"matched_on": "2026-07-14",
"company": "Acme Robotics Inc",
"location": "Austin, TX",
"state": "TX",
"filed": "2026-07-13",
"amount_usd": 12000000,
"stage": "early",
"sector": "fintech",
"sector_provenance": "inferred",
"description": null,
"website": null,
"edgar_url": "https://www.sec.gov/Archives/edgar/data/…",
"accession": "0001234567-26-001234"
}
The same field names as the CSV export; amount_usd: null means the filer
declared an indefinite amount, never zero. Webhooks carry fresh filings only (no
+60-day replays, so your table never needs deduping), up to 20 companies per alert per
day, and any HTTPS endpoint works the same way (the alert's name rides in an
X-FormDRadar-Filter header).
The second touch: +60 days
Founders drown in "congrats on the raise" the week the news breaks. Then the inbox goes quiet right as the hiring budget lands. Tick Second touch at +60 days on any alert and the companies you saw at filing time come back exactly two months later, flagged as second-touch, in your email and Slack. The counter-play, on a timer.
Bulk list match: "who on my list raised?"
Upload a CSV of company names on your account page (first column, up to 5,000 names) and get back a CSV with a row per match (filed date, amount, sector, website, EDGAR link) and a No row for everything else. Max plan; also scriptable:
curl -X POST -H "Authorization: Bearer YOUR_SESSION_TOKEN" \
--data-binary @accounts.csv "https://form-d-radar-paid.nicholas-9e7.workers.dev/match.csv"
Matching is deliberately conservative: exact (case-insensitive) or
normalized (punctuation and legal suffixes like Inc/LLC stripped), never
fuzzy, because two different companies can share a name. A shared name returns every
match; the match_type column and the EDGAR link tell you what you're
looking at before you call.
MCP: Form D for AI agents
The API speaks the Model Context Protocol. Give Claude (or any MCP client) your API key and it can search filings mid-conversation:
claude mcp add --transport http formd https://form-d-radar-paid.nicholas-9e7.workers.dev/mcp \
--header "Authorization: Bearer fdr_YOUR_KEY"
Two tools: search_filings (state, sector, minimum amount, date range,
cursor-paginated) and get_filing (one accession). Same rows, same
provenance fields, same daily budget as the REST API. Max plan, keys from your
account page.