Your agent, wired into the graph.
150M people. 10M companies, embedded. Live buying signals. gtm.dev exposes the graph as typed tools an agent calls directly — resolve, search semantically, verify — and every point behind this page is a real company in vector space.
22 tools · one key · usage-priced · ✓ verified, or null — never a guess
Three planes of data. One graph underneath.
Not a resold database — a graph we scrape, resolve, enrich, and verify ourselves. Every plane joins on the same canonical org id, so your agent never joins on a company name again.
Org charts, not contact lists. 48M people mapped into reporting structures — role level, teams, tenure — inside 150M+ professional profiles with titles scored for confidence. Ask for “VP+ in finance” and mean it.
org charts · professional profiles · title confidenceFirmographics plus vectors. Industry, size, geo, description — and 8M vector embeddings over the graph, so “API-first payroll for global teams” is a query, not a filter puzzle.
firmographics · 8M embeddings · lookalikesThe “why now” plane. 412K advertisers ranked by impressions, 2.8M job posts, 3.5M funding histories, 4.4M tech detections, 1.9M trade-show exhibitor listings — each resolved to a company you can act on.
ads · hiring · funding · tech · eventsSearch by meaning, not by filter.
Firmographic filters can’t say “feels like Stripe, but for logistics” — there’s no dropdown for that. Embeddings can. The whole company graph lives in vector space — the atlas you scrolled past is it — so your agent describes the ICP in plain language and gets a ranked neighborhood back.
Lookalikes fall out for free: seed one great customer, get its nearest neighbors by cosine — the expansion list every agent asks for eventually.
search_companiesplain-language ICP + any filter or signal → ranked companieslookalikesseed company → nearest neighbors, scoredsize_tamthe same query → a count + a reusable filter setWho’s spending. Who’s hiring. Who just raised. Who’s exhibiting.
A contact database tells you who exists. Signals tell you why now — active budget, active pain, active change — every one resolved to a real company.
› search_companies({ query: "restaurant software", running_ads: true, ads_platforms: ["linkedin"] }) // ranked by meaning, filtered to companies with live ad budgets
Active budget is the loudest signal there is.
412K advertisers from the Meta, LinkedIn and Google ad libraries, resolved to real companies and ranked by impressions. If they're paying to reach a market, they have budget, urgency and a GTM motion.
public ad libraries · meta + linkedin + google · impressions per advertiserSeven calls. Zero glue code.
Every GTM agent runs the same loop: find the trigger, resolve the account, qualify it, find the person, verify the channel, personalize. Today that loop crosses five vendors and a pile of glue code.
On gtm.dev it’s one server — every hop typed, every record carrying provenance. The trace on the right is the whole integration.
Verified, or nothing.
We don’t resell a database. We operate the pipelines and expose the output — which means we can tell you where every field came from, and we’d rather return null than guess.
We run the pipelines
The graph is built in-house, end to end. No vendor’s stale dump underneath, no license that vanishes. When a field is wrong, we can trace it to the run that produced it.
Emails verified at call time
A waterfall of finding providers, then live verification — status and score on every address. enrich_person does the work when you call it, not in a batch last quarter.
Research with receipts
research_company and research_person read live web pages and quote the exact passage behind every claim. Each quote is checked against the page; a claim that doesn’t match is dropped and counted, not shown.
Messy input, canonical output
“Acme Labs”, acme.io, half a URL — the resolver’s trigram + description + LLM cascade lands on one canonical entity with a confidence score. Every other tool composes on it.
email_status: "not_found"No address verified — so you get nothing, not a firstname.lastname guess that bounces and burns your sender. Catch-all domains get the same answer. Honesty is cheaper than a blocked domain.
Wired for agents, not dashboards.
Designed as tools an LLM calls — not an API bolted onto a UI product. Connect the MCP server, or hit the same tools over REST.
JSON Schema on every input; structured, versioned outputs. Your agent never parses prose.
Ambiguous input returns candidates with confidence — the resolution step agents otherwise get wrong.
gtm_live_sk_… / gtm_test_sk_… — test mode is free and fake-data-safe.
{
"mcpServers": {
"gtm": {
"url": "https://mcp.gtm.dev",
"headers": { "authorization": "Bearer gtm_live_sk_…" }
}
}
}
// that's the whole integration — every tool appears in your agentEngineers building GTM agents
Founders and platform teams wiring an LLM to “find the right people at the right accounts.” You want primitives, not another SaaS login.
who_is_advertising → find_people → enrich_person
The Clay-and-n8n crowd
You already orchestrate workflows. Point them at MCP tools with verified data behind them instead of six enrichment columns that disagree.
build_list → find_people → enrich_person
B2B data inside your product
A vertical CRM, an analytics tool, a sales copilot — embed enrichment and signals via API without becoming a data company yourself.
resolve_company → enrich_company → company_tech
The flagship reference implementation: a full AI-SDR product — discovery, research, outreach — running entirely on these tools. If gtm.dev can power that, it can power yours.
RocketSDR — built on gtm.devPriced like infrastructure.
Usage-based credits, metered by what comes back: you pay per record returned, not per call. Resolution is nearly free because you’ll call it constantly; a verified email costs more because it does more. No seats, no platform fee.
Test mode is free forever. 1,000 live credits — 200 companies + 500 profiles — to start. No card, no call with sales. Full pricing →
| you get back | examples | credits |
|---|---|---|
| canonical answer | resolve_company · resolve_geo | 0.1 flat |
| person profile | find_people · enrich_person | 1 / profile |
| company record | search_companies · who_is_advertising | 2.5 / company |
| verified email | enrich_person | +5 / email |
| research | research_company · research_person | 5 flat |
Stop scraping.
Start calling tools.
Connect the MCP server and your agent has the graph in the next five minutes — 150M people, 10M companies embedded, and the signals that say why now.