> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://gtm-tools.sh/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://gtm-tools.sh/_mcp/server.

# Outbound Sales

> Install the gtm-skills bundle with one command. The `outbound-sales` sub-skill runs buying-intent signals on target domains, maps each firing signal to a message angle + title filter, finds the decision-maker, verifies the email, and drafts BOTH a cold email AND a LinkedIn DM keyed to the firing signal. Returns structured drafts ready to paste into Apollo / Outreach / Salesloft / Lemlist / Smartlead / your CRM. Does not send; handoff only.

## Getting started

The `outbound-sales` skill is part of the [gtm-skills](https://github.com/arnaudjnn/gtm-skills) bundle, a [Claude Code skill](https://docs.claude.com/en/docs/claude-code/skills) catalog for GTM workflows, listed on the [skills.sh](https://www.skills.sh/arnaudjnn/gtm-skills/outbound-sales) registry. It's the **right-message-to-the-right-person-at-the-right-time** pipeline turned into a single deterministic flow, intentionally agnostic of the sending tool so it pastes into Apollo, Outreach, Salesloft, Lemlist, Smartlead, Instantly, or your own CRM.

The skill calls the gtm-tools HTTP API over `curl`, so it works in Claude Code and any Agent Skills-compatible client with no MCP wiring. Two runtime prerequisites: a [LinkedIn session in the pool](/extension) for the employee-search and profile steps, and enough credit balance, since one qualified lead end-to-end runs roughly 75 credits (25 signal + 2 company URL + 30 employees + 5 email + \~15 LinkedIn context).

## Installation

Install just the Outbound Sales skill:

```bash
npx skills add arnaudjnn/gtm-skills --skill outbound-sales
```

Add `--yes` to skip the confirmation prompts (for CI or a scripted setup), and `--global` to install at user level instead of into the current project:

```bash
npx skills add arnaudjnn/gtm-skills --skill outbound-sales --yes --global
```

Or install the whole `gtm-skills` catalog (`outbound-sales`, `linkedin-copywriter`, `reddit-community-manager`):

```bash
npx skills add arnaudjnn/gtm-skills
```

Both work because `arnaudjnn/gtm-skills` follows the [anthropics/skills](https://github.com/anthropics/skills) layout: each skill lives at `skills/<name>/SKILL.md` and is addressable by name.

### Claude Code plugin marketplace

The repo also ships a [`.claude-plugin/marketplace.json`](https://github.com/arnaudjnn/gtm-skills/blob/main/.claude-plugin/marketplace.json), so you can install it as a plugin instead:

```
/plugin marketplace add arnaudjnn/gtm-skills
/plugin install gtm-skills@gtm-skills
```

### Manual installation

Skills are plain markdown. Clone the repo and drop the directory where your client looks for skills:

```bash
git clone https://github.com/arnaudjnn/gtm-skills.git
cp -R gtm-skills/skills/outbound-sales ~/.claude/skills/outbound-sales
```

## Configuration

### Environment variable

Set the API key once. Every tool call in the skill reads it:

```bash
export GTM_TOOLS_API_KEY="<your-api-key>"
```

### Where the skill installs

`npx skills add` writes the real files under `.agents/skills/<name>/` and symlinks them into each agent directory it detects, including `.claude/skills/<name>` for Claude Code. Pass `--copy` if you'd rather have real files in both places than symlinks, and `--global` to install into your home directory instead of the project.

Get an API key with `get_api_key` (see [Getting Your API Key](/knowledge-base/getting-started/getting-api-key)) or run `gtm-tools admin login`, which stores it in `~/.gtm-tools/config.json`.

## Features

When the `outbound-sales` skill loads, it teaches the agent:

### Signals are timing and messaging

Each gtm-tools signal that fires on a domain is *both* the reason to reach out *now* and the angle to write about. Hiring SDRs → talk about SDR ramp. Trustpilot support reviews → talk about ticket resolution.

### The six-stage pipeline

Detect signals → map signal to angle → find the right title → verify the email → draft email + DM → structured handoff. Stages are skippable: with a domain and a persona already in hand, the agent jumps straight to the employee search.

### A title filter per signal

Which persona to target depends on which signal fired. SDR hiring points at VP Sales / Head of Sales; support reviews point at VP CX / Director Support. Each signal carries a default `title_filters` expression.

### Tool-agnostic handoff

Output is a structured object per lead with `email_subject`, `email_body`, `linkedin_dm`, `signals_fired`, `primary_signal`, `angle`, and `ready_to_send: true`. **The skill does not send**: it hands off to your existing outreach platform.

### Bundled templates with anti-patterns

Five cold-email templates ([`email-templates.md`](https://github.com/arnaudjnn/gtm-skills/blob/main/skills/outbound-sales/references/email-templates.md)), five LinkedIn-DM templates ([`dm-templates.md`](https://github.com/arnaudjnn/gtm-skills/blob/main/skills/outbound-sales/references/dm-templates.md)), and the full signal-to-angle mapping ([`signal-to-angle.md`](https://github.com/arnaudjnn/gtm-skills/blob/main/skills/outbound-sales/references/signal-to-angle.md)). Each template carries callouts: no "Quick question" subjects, no multi-CTA bodies, no "Hope this finds you well" openers, no meeting-pitch in a first DM, no pasting the email body into the DM.

### Skip-when-no-signals discipline

Accounts where nothing fires get `SKIP: no signals` rather than generic outreach. Signal-keyed outreach gets replies; generic outreach is what makes B2B inboxes hostile.

## Example usage

Ask in natural language. The skill loads on its own, with no slash command:

* "Do outbound to these 20 domains."
* "Which of my target accounts are hiring SDRs right now?"
* "Find the right Director of CX at companies with negative Trustpilot reviews."
* "Who should I reach out to at acme.com, and what should I say?"
* "Build me a prospect list with an email and a LinkedIn DM for each."

It won't take over pure copy work on an existing draft (that's [`linkedin-copywriter`](/skills/linkedin-copywriter)) or Reddit engagement (that's [`reddit-community-manager`](/skills/reddit-community-manager)).

## Resources

* [View on skills.sh](https://www.skills.sh/arnaudjnn/gtm-skills/outbound-sales): the full `SKILL.md`, install count, related skills.
* [Source on GitHub](https://github.com/arnaudjnn/gtm-skills/tree/main/skills/outbound-sales): `SKILL.md` plus the bundled references. Open a PR to improve it.
* [Signals Tools](/signals-tools): the detectors the first stage runs.
* [Outbound guide](/outbound): the same pipeline written out as a manual workflow.