OpenClaw

GTM Tools' OpenClaw integration

Getting started

OpenClaw (formerly Moltbot) is an open-source AI personal assistant that runs on your own devices and integrates with messaging platforms like WhatsApp, Telegram, Discord, and Slack. By adding GTM Tools to OpenClaw, your agent gains the go-to-market data surface: buying-signal detection on any domain, LinkedIn company and people lookup, SMTP-verified email finding, and Reddit reads and writes, alongside your existing chat channels.

There are three ways to integrate GTM Tools with OpenClaw: installing the official gtm-tools skill, creating a custom skill, or connecting the hosted MCP server.

The easiest way to add GTM capabilities to OpenClaw is by installing the official GTM Tools skill from skills.sh. This skill is maintained by the GTM Tools team and provides the full go-to-market toolset.

Installation

Install the skill via ClawHub:

$npx clawhub@latest install gtm-tools

Configuration

Add your GTM Tools API key to the skill configuration in ~/.openclaw/openclaw.json:

1{
2 "skills": {
3 "entries": {
4 "gtm-tools": {
5 "enabled": true,
6 "env": {
7 "GTM_TOOLS_API_KEY": "sk_your_api_key"
8 }
9 }
10 }
11 }
12}

Get a key with get_api_key or gtm-tools admin login. See Getting Your API Key.

Features

The official skill includes:

  • Buying signals: hiring, Trustpilot sentiment, follower spikes, and tech-stack detection on any domain
  • LinkedIn lookup: company and profile resolution from a domain or a name, employee search with boolean title filters
  • LinkedIn writes: DMs and connection requests from your own logged-in account
  • Reddit: thread and subreddit reads, comments, posts, votes, and DMs through Reddit Chat
  • Email: SMTP-verified professional email finding, with a reason on every unconfirmed lookup
  • Billing: balance, top-ups, and auto-reload, so the agent can manage its own wallet
  • Cost discipline: the full 63-tool catalog with token costs, the metering rules, and the error contract

Verify installation

Check that the skill is loaded:

$openclaw skills check

You should see gtm-tools in the list of available skills.

Option 2: Custom Skill

For more control over the integration, you can create a custom GTM Tools skill. Skills are directories containing a SKILL.md file with instructions for OpenClaw.

Create the skill directory

Create a new skill in your OpenClaw workspace:

$mkdir -p ~/.openclaw/skills/gtm-custom

Create the skill file

Create ~/.openclaw/skills/gtm-custom/SKILL.md with the following content:

1---
2name: gtm-custom
3description: Qualify accounts and find decision-makers with GTM Tools
4metadata:
5 openclaw:
6 requires:
7 env:
8 - GTM_TOOLS_API_KEY
9---
10
11# GTM Tools Skill
12
13You can qualify accounts, find decision-makers, and verify emails using the GTM Tools API. Use the `exec` tool to run curl commands against it.
14
15## API Base URL
16
17```
18https://api.gtm-tools.sh/api/v0
19```
20
21## Authentication
22
23Include your API key in the Authorization header:
24
25```
26Authorization: Bearer $GTM_TOOLS_API_KEY
27```
28
29## Common Operations
30
31### Detect buying signals on a domain
32
33```bash
34curl -s -X POST -H "Authorization: Bearer $GTM_TOOLS_API_KEY" \
35 -H "Content-Type: application/json" \
36 -d '{"domain": "gymshark.com"}' \
37 https://api.gtm-tools.sh/api/v0/detect_signal
38```
39
40### Resolve a company's LinkedIn page
41
42```bash
43curl -s -X POST -H "Authorization: Bearer $GTM_TOOLS_API_KEY" \
44 -H "Content-Type: application/json" \
45 -d '{"domain": "gymshark.com"}' \
46 https://api.gtm-tools.sh/api/v0/get_linkedin_company_url
47```
48
49### Find decision-makers
50
51```bash
52curl -s -X POST -H "Authorization: Bearer $GTM_TOOLS_API_KEY" \
53 -H "Content-Type: application/json" \
54 -d '{"domain": "gymshark.com", "title_filters": "(VP OR Director OR Head) AND (CX OR Support)", "limit": 10}' \
55 https://api.gtm-tools.sh/api/v0/list_linkedin_company_employees
56```
57
58### Verify a professional email
59
60```bash
61curl -s -X POST -H "Authorization: Bearer $GTM_TOOLS_API_KEY" \
62 -H "Content-Type: application/json" \
63 -d '{"name": "Ben Francis", "domain": "gymshark.com"}' \
64 https://api.gtm-tools.sh/api/v0/get_email
65```
66
67### Check the token balance
68
69```bash
70curl -s -X POST -H "Authorization: Bearer $GTM_TOOLS_API_KEY" \
71 -H "Content-Type: application/json" -d '{}' \
72 https://api.gtm-tools.sh/api/v0/get_token_balance
73```
74
75Costs are debited before a tool runs, so run `detect_signal` before spending on
76LinkedIn tools, and always pass `title_filters` to the employee search.

Configure the skill

Add your GTM Tools API key to the skill configuration in ~/.openclaw/openclaw.json:

1{
2 "skills": {
3 "entries": {
4 "gtm-custom": {
5 "enabled": true,
6 "env": {
7 "GTM_TOOLS_API_KEY": "sk_your_api_key"
8 }
9 }
10 }
11 }
12}

Verify the skill

Check that the skill is loaded:

$openclaw skills check

You should see gtm-custom in the list of available skills.

Option 3: MCP Connection

For typed tool schemas instead of shell calls, point OpenClaw at the hosted MCP server. The model then sees each tool with its arguments, and OpenClaw’s own tool filters and approval gates apply to them.

Add the connection

Register the server, which verifies connectivity before saving:

$openclaw mcp add gtm-tools \
> --url https://api.gtm-tools.sh/mcp \
> --transport streamable-http \
> --auth oauth

With --auth oauth, complete the browser flow once:

$openclaw mcp login gtm-tools

Configure the connection

openclaw mcp add writes the definition into ~/.openclaw/openclaw.json under mcp.servers. To declare it by hand, or to use a static API key instead of OAuth:

1{
2 "mcp": {
3 "servers": {
4 "gtm-tools": {
5 "url": "https://api.gtm-tools.sh/mcp",
6 "transport": "streamable-http",
7 "headers": {
8 "Authorization": "Bearer sk_your_api_key"
9 }
10 }
11 }
12 }
13}

Set transport explicitly: OpenClaw defaults to sse, and the GTM Tools endpoint speaks Streamable HTTP.

Verify the connection

$openclaw mcp status
$openclaw mcp probe gtm-tools

status classifies the configured transports without connecting. probe is the real check, since it opens the connection and reports how many tools came back.

Example use cases

Once GTM Tools is integrated with OpenClaw, you can ask your agent to:

  • “Which of these ten domains are hiring SDRs right now?”
  • “Find the VP of Customer Support at gymshark.com and verify their email”
  • “Get me the LinkedIn page for siena.cx and its recent posts”
  • “Find Reddit threads complaining about our category this week”
  • “What’s my GTM Tools token balance?”

Pooled sessions for write tools

LinkedIn and Reddit writes run through a real logged-in browser session rather than a partner API, so they act as your own account. Install the browser extension once in the browser where you are signed in, press Connect, and the session syncs automatically.

Check what is connected before asking the agent to post or message:

$curl -s -X POST "https://api.gtm-tools.sh/api/v0/list_connected_linkedin_accounts" \
> -H "Authorization: Bearer $GTM_TOOLS_API_KEY" \
> -H "Content-Type: application/json" -d '{}' | jq .

list_connected_linkedin_accounts and list_connected_reddit_accounts both cost 0 tokens. Reads, signals, and email finding need no session at all.

Resources