Outbound Sales

A Claude Code skill that turns buying-intent signals into multi-channel outbound drafts, agnostic of your sending tool

Getting started

The outbound-sales skill is part of the gtm-skills bundle, a Claude Code skill catalog for GTM workflows, listed on the skills.sh 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 for the employee-search and profile steps, and enough token balance, since one qualified lead end-to-end runs roughly 75 tokens (25 signal + 2 company URL + 30 employees + 5 email + ~15 LinkedIn context).

Installation

Install just the Outbound Sales skill:

$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:

$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):

$npx skills add arnaudjnn/gtm-skills

Both work because arnaudjnn/gtm-skills follows the 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, 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:

$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:

$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) 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), five LinkedIn-DM templates (dm-templates.md), and the full signal-to-angle mapping (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) or Reddit engagement (that’s reddit-community-manager).

Resources