GTM CLI
GTM in your terminal
One binary, gtm, searches and enriches companies and contacts, pulls signals and runs research. You get JSON, CSV or a table back.
$ gtm companies search --industry software --sort -revenue -f table
ID NAME REVENUE EMPLOYEES
122634324 Uber $55.2B 36,600
352810353 Stripe $5.1B 8,000
94209531 HubSpot $3.4B 9,016
344589814 ZoomInfo $1.3B 3,180
✓ 4 rows · page 1
Scripts and pipelines
Made for scripts, cron and CI
Every command prints structured output, returns a real exit code and runs unattended. Pipe it into jq, write it to a file, or fail a build when a search comes back empty.
Output formats and workflows$ gtm contacts search --management-level "C Level Exec" -f jsonl > c-level.jsonl
$ gtm companies search --industry software -f json | jq -e '.data | length > 0'
true
$ echo $?
0
Coding agents
Works with your coding agent
Ask Claude Code or Codex for a list in plain English. It reads gtm --help, looks up the right filter values, runs the commands and checks the file it wrote. On GTM Bench the CLI did the same work on about a third of MCP’s tokens.
Use it with an AI agent> Find VPs of Sales at software companies in Boston with 500+ employees. Save as CSV.
⏺ Bash(gtm lookup --field metro-regions --fuzzy boston)
⎿ MA - Boston
⏺ Bash(gtm contacts search --management-level "VP Level Exec" --department Sales …)
⎿ 214 contacts → vps-sales-boston.csv
⏺ Saved 214 VPs of Sales to vps-sales-boston.csv. The first five are below.
The platform
Built on the ZoomInfo platform
The GTM CLI connects to the same data, agents and saved GTM context as every other ZoomInfo interface.
$ gtm research account --company-id 122634324 \
--query "Who should we call this week, and why?"
$ gtm gtm-context get -f yaml
Companies
1 parent · 14 subsidiaries
People
212 in buying roles
Signals
9 this quarter
Uber Freight is expanding its carrier platform and its new CFO is reviewing tooling spend. Lead with consolidation.ZoomInfoCRMCalls
The context graph
100M+ companies and 500M+ contacts, matched to the records in your CRM, calls, email and calendar, so every account resolves to a single record.
Explore the graphContext Agents
Account Research, Contact Research and Conversation Intelligence do the research on ZoomInfo’s side and return the answer with its sources.
Meet the agentsYour GTM context
Save your ICPs, personas, offerings and competitors once and every agent uses them. The marketplace adds ready-made skills, workflows and audiences.
Browse the marketplace
On GTM Bench, Claude with ZoomInfo used 24× fewer tokens than Claude with web search. Read GTM Bench
Get started
Up and running in a minute
Install the binary, sign in through your browser, then run your first search or hand it to your agent.
01
Install
macOS and Linux. Use the full tap name: a bare brew install gtm installs an unrelated tool.
brew install zoominfo/gtm-ai/gtm-ai-cli02
Sign in
This opens your browser to sign in with your ZoomInfo login, SSO included. New to ZoomInfo? Sign up first to get 1,000 data and 1,000 AI credits.
gtm auth loginRun it once yourself before you hand the CLI to an agent.
03
Run your first pull
Try a search yourself, or paste the prompt into a coding agent with terminal access. It starts from your saved GTM context and asks before it spends credits.
gtm companies search --industry software -f tableFirst GTM session
(Use the ZoomInfo MCP tools if available; otherwise use the GTM CLI. Use the tool schema or CLI help for supported commands.) I just connected ZoomInfo. Help me complete the job below. 1. Read my saved business context with get_gtm_context, or the CLI equivalent. This read is free. Use the returned offerings, ICP, and role to frame the work. If context is missing, continue with the information we have. Save changes only if I explicitly ask; a first briefing does not require updating shared business context. 2. Prepare a connected account briefing. Ask me only which company or domain to brief if I haven't named one. Use the account and decision already in this conversation when available. Connect the account's available CRM history, including stage and status, with recent customer conversations and external buying signals. Use Account Research, and add Browse Engagements, Conversation Intelligence, or company signals when the briefing needs more evidence. Return a short briefing: where things stand, what changed, what remains unresolved, and one recommended next action. Cite the source and date for each material fact when returned. Distinguish the recommendation from the evidence. 3. Before calling a tool, check its schema or documented inputs rather than guessing at parameters. Ask only for missing inputs, in a single message, then name the tools and give a credit estimate if supported by their documentation. Label it as an estimate: actual charges depend on records and work done. Ask for approval once before paid research, then complete the selected job. If a tool call comes back "No approval received" or a similar permission response, say so plainly, name the tool, and continue with the remaining steps. Don't retry the same call hoping for a different result, and don't invent an approval that didn't happen. Include a source-coverage note of no more than 3 lines. Separate an unavailable or unauthorized source from a successful search with no matching records. If connection status is unknown, say so. Never infer "no customer history" from an empty result. Continue with available evidence and identify what is missing; use https://gtm.ai/guides/connect-customer-context for source setup. Recommend CRM changes as drafts. Applying them requires an available, separately connected CRM workflow and my authorization. Do not claim a CRM update was made by ZoomInfo research tools.
New to ZoomInfo?
Sample output. Company figures are from ZoomInfo; counts and files are illustrative.