Takeoff Radar

Put the signal where you work

Slack, Clay, webhooks, MCP: every saved search is a feed you can point at your stack.

DATA THROUGH 2026-09-04 · 140,587 FILINGS SINCE 2024-04-01

Alerts don't have to stop at your inbox. Every saved search can also post to Slack or feed a Clay table, and ChatGPT or Claude can answer from the same data once you paste in one link. Nothing here needs a developer: each recipe below is a couple of steps, mostly copy-and-paste.

Pick your recipe

You wantRecipeEffortPlan
New raises announcing themselves in a team channelSlackTwo stepsAny paid plan
Filings landing in a Clay table, enriched, then pushed to your CRMClayTwo stepsMax
A reason to call back when the hiring budget landsThe +60-day second touchOne checkboxAny paid plan
To know who on an existing client list just filedBulk list matchOne uploadMax
To ask ChatGPT or Claude about new filingsMCPPaste one linkMCP
Filings inside your own CRM, dashboard, or scriptsThe API referenceThree stepsMCP

New here? Start with Slack. It works end to end in five minutes, the whole team sees the result, and every other recipe reuses the same Save-this-territory dialog you'll have just learned.

Slack: a territory channel that pings itself

One message per alert per day, the night after the nightly run picks up the filing.

  1. In Slack: Apps → Incoming Webhooks → Add to Slack, pick the channel (say #new-raises-tx), copy the webhook URL (https://hooks.slack.com/services/…).
  2. On the feed, set your filters, hit Save this territory, 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 filing-dated signal, fresh from EDGAR.

  1. In Clay: New table → Import data → Monitor a webhook; copy the webhook URL.
  2. 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: the filing fields the CSV export carries, already split into columns Clay understands.

Each POST carries event, filter, matched_on, company, location, state, filed, amount_usd, stage, sector, sector_provenance, description, website, edgar_url, accession and takeoff_url.

The same field names as the CSV export; amount_usd: null means the filer declared an indefinite amount, never zero. takeoff_url is there only for filings that have a published page on this site. Any HTTPS endpoint works the same way (the alert's name rides in an X-TakeoffRadar-Filter header).

Webhooks carry fresh filings only (no +60-day replays, so your table never needs deduping), up to 20 companies per alert per day.

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 filed?"

Upload a CSV of company names on your My radar 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. One upload, one download, no setup at all. Max plan.

Also scriptable, for a recurring check:

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: we match names exactly, ignoring capitals, punctuation, and endings like Inc or LLC, and we never guess at near matches, 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: ask an AI assistant about new filings

The data speaks the Model Context Protocol, so ChatGPT, Claude, or any MCP client can pull filings in the middle of a conversation: who filed in Illinois this week, and draft me an intro to the top three. It is the MCP plan's namesake, at 1,000 calls a day.

Setup, without a terminal

  1. On your My radar page, under API keys, click Create connector link. You get a URL that looks like https://form-d-radar-paid.nicholas-9e7.workers.dev/mcp/tkc_…. It is shown once, so copy it before you leave the page, and treat it like a password: anyone holding it can read filings on your account.
  2. In your assistant, add it as a custom connector and paste the link as the server URL. In Claude this is Settings, then Connectors, then Add custom connector; in ChatGPT it is Settings, then Connectors. The exact wording moves around as those apps change, but the field you want is the one asking for a URL.
  3. Ask it something. What was filed in Illinois this week? is enough to prove it is connected.

Setting up a second app? Create a second link rather than reusing the first. Each one revokes on its own, so losing a laptop costs you one connector instead of all of them. Revoke any of them from the same panel; the change takes effect immediately.

Setup, if you live in a terminal

An API key in a header works too, and is the better fit for scripts and servers:

claude mcp add --transport http takeoff https://form-d-radar-paid.nicholas-9e7.workers.dev/mcp \
  --header "Authorization: Bearer tkr_YOUR_KEY"

Connector links reach the MCP server only. An API key on the MCP plan also reaches the REST API.

What it can do

Three tools: new_this_week (the open question, no arguments needed), search_filings (state, sector, minimum amount, date range, cursor-paginated) and get_filing (one accession). Three ready-made prompts come with it, so a client that shows them gives you Build my call list for this week, What was filed in my state, and Draft outreach about a filing as one click. Same rows, same provenance fields, same daily budget as the REST API.

search_filings and get_filing also return two more objects per row: what the company's own public job board showed the last time we read it, and whether it sponsors work visas, each carrying the date it was read. Both are left off a company we have not observed rather than returned as zeros. The API reference says what each one holds and how long an observation counts for.

No connector, no setup: the feed's Copy for ChatGPT (or any AI) button puts your filtered view on your clipboard as a table, up to 100 filings at a time, ready to paste into whichever assistant you already have open. Each row carries who to ask for, the company's site and what it does, so a paste is enough to build a call list.