# Outbound

> Build target lists and sequence drafts that apply the ICP and disqualifier rules from positioning.md literally. Use for outbound campaigns, ABM lists and first-touch sequences. Requires a brief from /operator-cmo:brief.

- Skill: `wojciechluszczynski/outbound` (Agent Skill)
- Install (CLI): `npx skillmds@latest add wojciechluszczynski/outbound`
- Raw SKILL.md: https://api.skillmd.com/api/skills/wojciechluszczynski/outbound/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- Author: wojciechluszczynski (https://skillmd.com/u/wojciechluszczynski)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/wojciechluszczynski/outbound

---


# /operator-cmo:outbound

Outbound is where an unsupervised agent stack does the most damage per token,
because the output leaves your domain and lands in somebody's inbox with your
name on it.

## The decision guard

1. Read the brief. No brief, no sequence.
2. Read `marketing/decisions/positioning.md`: the ICP, the disqualifiers, the
   problem language, and the proof lines.
3. Read `marketing/policy/ship-policy.md`. Outbound to a named account is
   tier C by default in the shipped policy, and you should not quietly lower it.
4. Read `marketing/policy/do-not-contact.md` if it exists. Every list you
   produce is filtered against it before it is written to disk.

## Build the list

Apply the ICP as a filter, then apply the disqualifiers as a second pass, and
**report how many accounts each disqualifier removed**. That count is the most
useful diagnostic in this skill: a rule that never fires is not a rule, and a
rule that removes 80% of the list means the ICP and the sourcing disagree.

Every row carries: account, contact, role, the trigger that made them
qualified, and the source of that trigger with a date. A row with no trigger is
not a lead, it is a name, and it goes in a separate `no-trigger` file rather
than into the sequence.

## Write the sequence

- **Personalisation must be sourced.** Every personalised line names where it
  came from, in a `src:` field the reviewer can check. If you cannot source it,
  write the generic line. Inventing a detail about a real person is the one
  mistake in this plugin that cannot be walked back.
- **The problem in their words**, taken from positioning.md, not your own
  phrasing of it.
- **One ask per message.** Short. No paragraph of context before the point.
- **Proof lines only from positioning.md.** No new numbers, no new logos.
- Write the full sequence including the exit condition: what happens when
  someone replies, and when the sequence stops.
- No em dashes.

## Output

`marketing/drafts/YYYY-MM-DD-<slug>-list.csv` and
`marketing/drafts/YYYY-MM-DD-<slug>-sequence.md`, both with the standard
header naming bet, decision rev, brief and gate.

## Finish

Print: list size, disqualifier hit counts, how many rows had no trigger,
unsourced personalisation count (target zero), and the gate tier. Do not send
anything. Sending is a human action in this plugin and stays that way.

