@zoominfo/gtm-ai-cli 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +89 -44
- package/dist/index.js +29 -29
- package/package.json +21 -7
package/README.md
CHANGED
|
@@ -1,41 +1,86 @@
|
|
|
1
1
|
# GTM AI CLI
|
|
2
2
|
|
|
3
|
-
A command-line interface for
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
A command-line interface for searching [ZoomInfo](https://www.zoominfo.com/) go-to-market (GTM) data.
|
|
4
|
+
Search and enrich companies and contacts, surface intent signals and news, manage GTM context, and pipe results
|
|
5
|
+
through your shell as JSON, JSONL, CSV, YAML, or a table.
|
|
6
6
|
|
|
7
7
|
## Installation
|
|
8
8
|
|
|
9
|
-
###
|
|
9
|
+
### Homebrew (macOS and Linux)
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
npm run build:ts
|
|
16
|
-
npm link # makes `gtm` available globally
|
|
11
|
+
The easiest way to install the GTM CLI on MacOS or Linux is using [Homebrew](https://brew.sh/).
|
|
12
|
+
|
|
13
|
+
```shell
|
|
14
|
+
brew install zoominfo/gtm-ai/gtm-ai-cli
|
|
17
15
|
```
|
|
18
16
|
|
|
19
|
-
|
|
17
|
+
> **Heads-up:** the unrelated [Git Time Metric](https://github.com/git-time-metric/gtm) project also ships a `gtm` binary via Homebrew — always install with the tap-qualified name above, not a bare `brew install gtm`.
|
|
18
|
+
|
|
19
|
+
To upgrade to the latest version, run
|
|
20
|
+
|
|
21
|
+
```shell
|
|
22
|
+
brew upgrade gtm-ai-cli
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### NPM
|
|
26
|
+
|
|
27
|
+
For Windows users or users unable to use Homebrew, you can also install the GTM CLI through NPM
|
|
28
|
+
or any other node package installer (yarn, bun, etc.)
|
|
29
|
+
|
|
30
|
+
Ensure that you install it as a **global** package
|
|
31
|
+
|
|
32
|
+
```shell
|
|
33
|
+
npm install -g @zoominfo/gtm-ai-cli
|
|
34
|
+
```
|
|
20
35
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
36
|
+
This installs the canonical `gtm` command plus a `zoominfo` alias — every command works identically under either name (e.g. `zoominfo companies search`). These docs use `gtm` throughout.
|
|
37
|
+
|
|
38
|
+
### Download a Prebuilt Binary
|
|
39
|
+
|
|
40
|
+
Download the latest binary from the [releases](https://github.com/Zoominfo/gtm-ai-cli/releases) page for your platform.
|
|
41
|
+
The platforms supported by this tool are:
|
|
42
|
+
* macOS w/ Apple Silicon (arm64)
|
|
43
|
+
* macOS w/ Intel processor (x64)
|
|
44
|
+
* Linux
|
|
45
|
+
* Windows
|
|
46
|
+
|
|
47
|
+
Make the downloaded package executable and place it on your PATH
|
|
48
|
+
|
|
49
|
+
**macOS and Linux**
|
|
50
|
+
```shell
|
|
51
|
+
chmod +x gtm-macos-arm64
|
|
52
|
+
mv gtm-macos-arm64 /usr/local/bin/gtm
|
|
53
|
+
xattr -d com.apple.quarantine /usr/local/bin/gtm #only required on macOS
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Windows**
|
|
57
|
+
```powershell
|
|
58
|
+
Move-Item .\gtm-windows-x64.exe "$env:USERPROFILE\bin\gtm.exe"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### From source (Node 18+)
|
|
62
|
+
|
|
63
|
+
```shell
|
|
64
|
+
git clone https://github.com/Zoominfo/gtm-ai-cli.git
|
|
65
|
+
cd gtm-ai-cli
|
|
66
|
+
npm install
|
|
67
|
+
npm run build
|
|
68
|
+
npm link # makes `gtm` (and its alias `zoominfo`) available globally
|
|
24
69
|
```
|
|
25
70
|
|
|
26
71
|
## Authentication
|
|
27
72
|
|
|
28
73
|
OAuth 2.0 + PKCE via your browser. Tokens are saved to `~/.config/gtm-ai/` at mode `0600`.
|
|
29
74
|
|
|
30
|
-
```
|
|
75
|
+
```shell
|
|
31
76
|
gtm auth login # opens browser to authorize, saves token
|
|
32
|
-
gtm auth whoami # show login status
|
|
77
|
+
gtm auth whoami # show login status
|
|
33
78
|
gtm auth logout # revoke token and remove saved credentials
|
|
34
79
|
```
|
|
35
80
|
|
|
36
81
|
If you ever need a clean slate (e.g. to re-trigger DCR), remove the saved client:
|
|
37
82
|
|
|
38
|
-
```
|
|
83
|
+
```shell
|
|
39
84
|
rm ~/.config/gtm-ai/client_id ~/.config/gtm-ai/credentials
|
|
40
85
|
gtm auth login
|
|
41
86
|
```
|
|
@@ -52,7 +97,7 @@ Every subcommand accepts `-f, --format`. The `table` and `csv` formats auto-flat
|
|
|
52
97
|
| `yaml` | Human-readable diffs of deeply nested responses. |
|
|
53
98
|
| `table` | ASCII bordered table. Best for terminal browsing of small responses. |
|
|
54
99
|
|
|
55
|
-
```
|
|
100
|
+
```shell
|
|
56
101
|
gtm companies search --industry software -f table
|
|
57
102
|
gtm contacts search --management-level "C Level Exec" -f jsonl > c-level-contacts.jsonl
|
|
58
103
|
gtm-context get -f yaml
|
|
@@ -65,7 +110,7 @@ dotted paths to project from each record, applied before formatting. Handy for n
|
|
|
65
110
|
quick scans without `jq`. (Distinct from the enrich commands' `--fields`, which selects which
|
|
66
111
|
fields ZoomInfo returns server-side.)
|
|
67
112
|
|
|
68
|
-
```
|
|
113
|
+
```shell
|
|
69
114
|
gtm companies search --industry software --page-size 5 --select id,name,revenue -f table
|
|
70
115
|
gtm companies search --industry software --select name,company.id -f csv > orgs.csv
|
|
71
116
|
```
|
|
@@ -78,7 +123,7 @@ gtm companies search --industry software --select name,company.id -f csv > orgs.
|
|
|
78
123
|
|
|
79
124
|
ZoomInfo's search endpoints reject unknown industry/metro/topic strings with 422. **Always look up the canonical ID first**, then pass it to the search filters.
|
|
80
125
|
|
|
81
|
-
```
|
|
126
|
+
```shell
|
|
82
127
|
# Industries containing "software"
|
|
83
128
|
gtm lookup --field industries --fuzzy software -f table
|
|
84
129
|
|
|
@@ -104,7 +149,7 @@ Valid `--field` names: `industries`, `metro-regions`, `states`, `countries`, `co
|
|
|
104
149
|
|
|
105
150
|
**Search.** Requires at least one filter.
|
|
106
151
|
|
|
107
|
-
```
|
|
152
|
+
```shell
|
|
108
153
|
# By name
|
|
109
154
|
gtm companies search --name "ZoomInfo"
|
|
110
155
|
|
|
@@ -126,7 +171,7 @@ gtm companies search --naics "541511,541512"
|
|
|
126
171
|
|
|
127
172
|
**Enrich.** Provide any identifier:
|
|
128
173
|
|
|
129
|
-
```
|
|
174
|
+
```shell
|
|
130
175
|
gtm companies enrich --id 344589814
|
|
131
176
|
gtm companies enrich --domain stripe.com
|
|
132
177
|
gtm companies enrich --name "Stripe"
|
|
@@ -143,7 +188,7 @@ gtm companies enrich --file companies.json
|
|
|
143
188
|
|
|
144
189
|
**Similar companies** (machine-learning ranked list of look-alikes):
|
|
145
190
|
|
|
146
|
-
```
|
|
191
|
+
```shell
|
|
147
192
|
gtm companies similar --id 344589814
|
|
148
193
|
gtm companies similar --name "Stripe"
|
|
149
194
|
```
|
|
@@ -154,7 +199,7 @@ gtm companies similar --name "Stripe"
|
|
|
154
199
|
|
|
155
200
|
**Search.** Requires at least one filter.
|
|
156
201
|
|
|
157
|
-
```
|
|
202
|
+
```shell
|
|
158
203
|
# By name
|
|
159
204
|
gtm contacts search --first-name Henry --last-name Schuck
|
|
160
205
|
|
|
@@ -174,7 +219,7 @@ gtm contacts search --management-level "VP Level Exec" --department Sales --accu
|
|
|
174
219
|
|
|
175
220
|
**Enrich.** Provide any valid identifier combination — `personId` (most accurate), `email`, `phone`, or `firstName + lastName + (company OR companyId)`:
|
|
176
221
|
|
|
177
|
-
```
|
|
222
|
+
```shell
|
|
178
223
|
gtm contacts enrich --id 1260398587
|
|
179
224
|
gtm contacts enrich --email henry@zoominfo.com
|
|
180
225
|
gtm contacts enrich --phone 555-303-1234
|
|
@@ -191,14 +236,14 @@ gtm contacts enrich --file contacts.json
|
|
|
191
236
|
|
|
192
237
|
**Similar contacts** (find people who look like a reference person; optionally constrain to a target company):
|
|
193
238
|
|
|
194
|
-
```
|
|
239
|
+
```shell
|
|
195
240
|
gtm contacts similar --person-id 1260398587
|
|
196
241
|
gtm contacts similar --person-id 1260398587 --company-id 239305146 # similar contacts within Salesforce
|
|
197
242
|
```
|
|
198
243
|
|
|
199
244
|
**Recommended contacts** at a target company, based on your interaction history:
|
|
200
245
|
|
|
201
|
-
```
|
|
246
|
+
```shell
|
|
202
247
|
gtm contacts recommended --company-id 344589814 --use-case PROSPECTING
|
|
203
248
|
gtm contacts recommended --company-id 344589814 --use-case DEAL_ACCELERATION
|
|
204
249
|
gtm contacts recommended --company-id 344589814 --use-case RENEWAL_AND_GROWTH
|
|
@@ -210,7 +255,7 @@ gtm contacts recommended --company-id 344589814 --use-case RENEWAL_AND_GROWTH
|
|
|
210
255
|
|
|
211
256
|
Every request needs `--topics` (1-50). Look up exact topic names first.
|
|
212
257
|
|
|
213
|
-
```
|
|
258
|
+
```shell
|
|
214
259
|
gtm lookup --field intent-topics --fuzzy "data warehouse"
|
|
215
260
|
|
|
216
261
|
# Companies showing high intent for Cloud Applications + Java
|
|
@@ -227,7 +272,7 @@ gtm intent search --topics "AI Agents" --audience-strength-min B --audience-stre
|
|
|
227
272
|
|
|
228
273
|
**Enrich** — pull intent signals for a specific company:
|
|
229
274
|
|
|
230
|
-
```
|
|
275
|
+
```shell
|
|
231
276
|
gtm intent enrich --company-id 344589814 --topics "Cloud Applications" "Java"
|
|
232
277
|
gtm intent enrich --name "ZoomInfo" --topics "AI Agents" --signal-score-min 70
|
|
233
278
|
gtm intent enrich --website https://www.stripe.com --topics "Payments"
|
|
@@ -239,7 +284,7 @@ gtm intent enrich --website https://www.stripe.com --topics "Payments"
|
|
|
239
284
|
|
|
240
285
|
Scoops capture earnings, funding, M&A, leadership moves, layoffs, product launches, awards, partnerships, and more. Search requires at least one filter.
|
|
241
286
|
|
|
242
|
-
```
|
|
287
|
+
```shell
|
|
243
288
|
# Funding announcements at SF software companies in May 2026
|
|
244
289
|
gtm scoops search --scoop-types Funding --industry software --metro "MA - Boston" \
|
|
245
290
|
--published-start 2026-05-01 --published-end 2026-05-31
|
|
@@ -256,7 +301,7 @@ gtm scoops search --scoop-types "Product Launch" --description "artificial intel
|
|
|
256
301
|
|
|
257
302
|
**Enrich** — get scoops for a specific company:
|
|
258
303
|
|
|
259
|
-
```
|
|
304
|
+
```shell
|
|
260
305
|
gtm scoops enrich --company-id 344589814 --scoop-types "New Hire" Promotion
|
|
261
306
|
gtm scoops enrich --name "Stripe" --published-start 2026-01-01
|
|
262
307
|
```
|
|
@@ -267,7 +312,7 @@ gtm scoops enrich --name "Stripe" --published-start 2026-01-01
|
|
|
267
312
|
|
|
268
313
|
`enrich_news` is currently the only news tool. Requires `--company-id`.
|
|
269
314
|
|
|
270
|
-
```
|
|
315
|
+
```shell
|
|
271
316
|
# Recent funding/financial news for ZoomInfo
|
|
272
317
|
gtm news enrich --company-id 344589814 --categories FINANCIAL_RESULTS FUNDING
|
|
273
318
|
|
|
@@ -286,7 +331,7 @@ Valid `--categories`: `FINANCIAL_RESULTS`, `FUNDING`, `GENERAL_NEWS`, `GENERAL_P
|
|
|
286
331
|
|
|
287
332
|
This is the context that shapes how every other ZoomInfo tool interprets your queries — your offerings, ICPs, buyer personas, competitors, strategic priorities. Zero credits consumed.
|
|
288
333
|
|
|
289
|
-
```
|
|
334
|
+
```shell
|
|
290
335
|
# Compressed view (~1k tokens)
|
|
291
336
|
gtm-context get
|
|
292
337
|
|
|
@@ -304,7 +349,7 @@ gtm-context update --query "Create buyer personas from these interviews" --sourc
|
|
|
304
349
|
|
|
305
350
|
### `gtm feedback` — submit feedback to ZoomInfo
|
|
306
351
|
|
|
307
|
-
```
|
|
352
|
+
```shell
|
|
308
353
|
gtm feedback submit --category DATA_QUALITY --message "Henry Schuck's company should be ZoomInfo Technologies, not ZoomInfo"
|
|
309
354
|
gtm feedback submit --category FEATURE_REQUEST --message "Want a --csv-headers flag to control column order"
|
|
310
355
|
```
|
|
@@ -319,7 +364,7 @@ Natural-language research that blends ZoomInfo market data with your CRM and con
|
|
|
319
364
|
history. Frame the goal in `--query` (the tool decides what to retrieve) rather than passing
|
|
320
365
|
keywords. Get the ZoomInfo IDs from `gtm companies search` / `gtm contacts search`.
|
|
321
366
|
|
|
322
|
-
```
|
|
367
|
+
```shell
|
|
323
368
|
# Company/account research
|
|
324
369
|
gtm research account --company-id 344589814 \
|
|
325
370
|
--query "Prepping for a renewal call — relationship status, recent news, and open risks"
|
|
@@ -335,7 +380,7 @@ gtm research contact --contact-id 1260398587 \
|
|
|
335
380
|
|
|
336
381
|
Use this when you need a tool that doesn't have a curated wrapper yet.
|
|
337
382
|
|
|
338
|
-
```
|
|
383
|
+
```shell
|
|
339
384
|
# What tools does the MCP server expose?
|
|
340
385
|
gtm raw list-tools -f table
|
|
341
386
|
|
|
@@ -350,7 +395,7 @@ gtm raw call search_intent --args '{"topics":["Cloud Applications"],"signalScore
|
|
|
350
395
|
|
|
351
396
|
### Pipe to `jq` for field extraction
|
|
352
397
|
|
|
353
|
-
```
|
|
398
|
+
```shell
|
|
354
399
|
# Just the company names from a search
|
|
355
400
|
gtm companies search --industry software --metro "CA - San Francisco" | jq '.data[].attributes.name'
|
|
356
401
|
|
|
@@ -363,7 +408,7 @@ gtm intent search --topics "Cloud Applications" --signal-score-min 80 | jq '.dat
|
|
|
363
408
|
|
|
364
409
|
### Two-step: search companies, enrich top results
|
|
365
410
|
|
|
366
|
-
```
|
|
411
|
+
```shell
|
|
367
412
|
# Get top 3 company IDs, then enrich each with full details
|
|
368
413
|
gtm companies search --industry software --metro "CA - San Francisco" --page-size 3 -f json \
|
|
369
414
|
| jq -r '.data[].id' \
|
|
@@ -372,13 +417,13 @@ gtm companies search --industry software --metro "CA - San Francisco" --page-siz
|
|
|
372
417
|
|
|
373
418
|
### Export contacts to CSV
|
|
374
419
|
|
|
375
|
-
```
|
|
420
|
+
```shell
|
|
376
421
|
gtm contacts search --management-level "VP Level Exec" --department Sales --company-id 344589814 -f csv > vp-sales.csv
|
|
377
422
|
```
|
|
378
423
|
|
|
379
424
|
### Find lookalike companies, then enrich them
|
|
380
425
|
|
|
381
|
-
```
|
|
426
|
+
```shell
|
|
382
427
|
gtm companies similar --id 344589814 -f json \
|
|
383
428
|
| jq -r '.data[0:10][].id' \
|
|
384
429
|
| xargs -I{} gtm companies enrich --id {} --fields name domain employeeCount revenue industries
|
|
@@ -388,7 +433,7 @@ gtm companies similar --id 344589814 -f json \
|
|
|
388
433
|
|
|
389
434
|
## Development
|
|
390
435
|
|
|
391
|
-
```
|
|
436
|
+
```shell
|
|
392
437
|
npm install
|
|
393
438
|
npm run typecheck # tsc --noEmit
|
|
394
439
|
npm test # unit tests (Vitest, mocked)
|
|
@@ -402,14 +447,14 @@ The live suite (`src/live/`) drives the built CLI against the real MCP server, c
|
|
|
402
447
|
read-only command end-to-end (it skips when you're not logged in). Run it against the compiled
|
|
403
448
|
output and opt into the mutating tier explicitly:
|
|
404
449
|
|
|
405
|
-
```
|
|
450
|
+
```shell
|
|
406
451
|
GTM_CLI_CMD="node dist/js/index.js" npm run test:live # read-only (default)
|
|
407
452
|
GTM_LIVE_WRITES=1 GTM_CLI_CMD="node dist/js/index.js" npm run test:live # + feedback / gtm-context update
|
|
408
453
|
```
|
|
409
454
|
|
|
410
455
|
Build standalone single-file binaries (requires [Bun](https://bun.sh)):
|
|
411
456
|
|
|
412
|
-
```
|
|
457
|
+
```shell
|
|
413
458
|
npm run build # → dist/gtm (current platform)
|
|
414
459
|
npm run build:all # cross-compile macOS arm64/x64, Linux x64, Windows x64
|
|
415
460
|
```
|
|
@@ -424,4 +469,4 @@ https://raw.githubusercontent.com/zoominfo/gtm-ai-cli/main/.claude/skills/gtm-ai
|
|
|
424
469
|
|
|
425
470
|
## License
|
|
426
471
|
|
|
427
|
-
|
|
472
|
+
MIT
|