PORTAL / LIBRARY / outreach-onboard

[ OUTBOUND ]

/outreach-onboard

Builds a complete cold outbound campaign folder from scratch for a new IA Outreach client.

Download the skill file (.md)

Placeholders like ACME Agency, <id> and you@example.com mark values that are per-agency — your install fills them with YOUR clients and accounts. If a section references a helper script you don't have yet, it ships with that workflow's install.

Outreach Client Onboarding

Triggers

What this skill does

Builds a complete cold outbound campaign folder from scratch for a new IA Outreach client. Takes ~1 session from blank folder to client-ready deliverables.

  1. Scaffolds the client folder + subdirectories
  2. Researches the client (questionnaire + website scrape)
  3. Defines 2–3 ICPs with pain points, triggers, hooks
  4. Writes campaign strategy + client CLAUDE.md
  5. Builds Apollo People Search URLs (clickable, filters pre-applied)
  6. Writes 4-step email sequences per ICP (ColdIQ framework)
  7. Writes LinkedIn connection + follow-up sequences
  8. Writes personalization hooks (5 signal variations per ICP)
  9. Creates tracking files (campaign log + reply log)
  10. Creates Google Drive folder + 2 strategy docs (concise + full)

Inputs required at start

Ask the user for these before proceeding (skip any already in the argument):

  1. Client name — becomes the folder slug (e.g., "ACME Agency" → ia-outreach/clients/ACME Agency/)
  2. Questionnaire Google Doc URL — client filled this in; fetch with WebFetch or Drive API
  3. Client website URL — scrape for product, positioning, case studies, reference clients
  4. Sender name + title — the sales rep whose name goes on emails (e.g., "Megan Taylor, Account Executive, ACME Agency")
  5. Email CTA — Loom video (default), demo call, or case study send

Template reference (gold standard)

All 10 steps use ACME Agency as the reference template. Before building each piece, read the corresponding ACME Agency file to understand the expected format and depth.

StepACME Agency reference template
ICP filesia-outreach/clients/ACME Agency/icp/icp-A-chemical-vp.md
Campaign strategyia-outreach/clients/ACME Agency/campaign-strategy.md
Client CLAUDE.mdia-outreach/clients/ACME Agency/CLAUDE.md
Apollo search filesia-outreach/clients/ACME Agency/apollo-searches/<id>.md
Email sequencesia-outreach/clients/ACME Agency/sequences/<id>.md
Copy frameworkia-outreach/clients/ACME Agency/sequences/copy-framework.md
LinkedIn sequencesia-outreach/clients/ACME Agency/sequences/linkedin-sequence.md
Personalization hooksia-outreach/clients/ACME Agency/sequences/personalization-hooks.md
Tracking filesia-outreach/clients/ACME Agency/tracking/campaign-log.md
Drive doc scriptia-outreach/clients/ACME Agency/create-docs.mjs

Step-by-step workflow

Step 1 — Folder scaffold

Create ia-outreach/clients/<slug>/ with these subdirectories:

icp/
sequences/
apollo-searches/
tracking/

Slug = lowercase client name, hyphens for spaces (e.g., "ACME Agency" → ACME Agency, "Vidoris Inc" → vidoris-inc).


Step 2 — Research

Gather all source material before writing anything:

  1. Questionnaire — fetch the Google Doc URL with WebFetch. Extract: product description, core value prop, reference clients + results, target industries, target titles, deal size, objections, differentiators.
  2. Website — fetch homepage + /about + /solutions or /products pages. Look for: product screenshots, case study stats, customer logos, industry keywords.
  3. Synthesis — write an internal research summary (mental context for Steps 3–10, not a file). Key items: what does the product do, who buys it, why do they buy it, what results do they get.

Step 3 — ICP definition

Define 2–3 ICPs ordered by priority (A = highest conversion potential, B = strong secondary, C = opportunistic).

For each ICP, write icp/icp-<letter>-<short-name>.md:

# ICP <Letter> — <Name>

## Target Profile
- Titles: ...
- Industry: ...
- Company size: ...
- Geography: ...
- Tech stack signals: ...

## Pain Points
...

## Buying Triggers (intent signals)
...

## Messaging Hooks
...

## Objection Handling
...

## Reference Customers (from this client)
...

ICP count guidance:


Step 4 — Campaign strategy + CLAUDE.md

campaign-strategy.md — master playbook:

CLAUDE.md — Claude Code context for this client:


Step 5 — Apollo search files

Build 3–5 Apollo People Search files. One file per ICP + additional searches if multiple sub-segments.

URL format (URLSearchParams, [ encoded as %5B%5D, comma as %2C):

https://app.apollo.io/#/people?personTitles%5B%5D=VP+Operations&personTitles%5B%5D=Director+Operations&<id>%5B%5D=Chemical&personLocations%5B%5D=United+States&<id>%5B%5D=501%2C1000&<id>%5B%5D=1001%2C5000&<id>%5B%5D=5001%2C10000000

Employee size default: 501+ (501,1000 + 1001,5000 + 5001,10000000)

Each search file contains:

File naming: apollo-searches/search-1-<short-name>.md, search-2-..., etc.


Step 6 — Email sequences (ColdIQ framework)

One file per ICP: sequences/email-seq-A-<short-name>.md, etc.

Always read ia-outreach/clients/ACME Agency/sequences/copy-framework.md first. These are the non-negotiable rules.

ColdIQ rules summary:

4-email structure:

EmailDayThreadSubjectWordsPurpose
10New3–5 word lowercase (A/B test 3–4 options)60–80Signal icebreaker + pitch + proof + CTA
23SameNone45–55One proof bump (stat or named reference client)
37SameNone60–75Pivot angle (different pain point) + new personalization line
411SameNone35–45Soft goodbye, CTA left open

Email 1 body structure:

Hey {{firstName}},

{{icebreaker — signal-specific, 1–2 sentences}}

{{problem statement — what most companies in this space miss, 2 sentences}}

{{product + proof — what the client's product does + one reference client result, 1–2 sentences}}

{{CTA — Loom offer, 1 sentence}}

{{sender first name}}

Icebreaker placeholder: use {{icebreaker — signal-specific, see personalization-hooks.md ICP <letter>}} in the file — the actual icebreaker is generated per-contact by personalize.mjs.

Email 3 pivot angle: pick a different pain from Email 1 — if Email 1 was about asset loss, pivot to shipping accuracy or CMO visibility or compliance, etc.

Include 3–4 subject line A/B test options per ICP at the top of Email 1.


Step 7 — LinkedIn sequences

sequences/linkedin-sequence.md

Structure:

Prosp AI push command (append at bottom of file):

node ia-outreach/scripts/push-linkedin.mjs --client <slug> --icp A

Step 8 — Personalization hooks

sequences/personalization-hooks.md

For each ICP, provide 5 variation templates — one per signal type:

VariationSignal typeSource
1Job posting (SAP/supply chain/ops role)LinkedIn Jobs / Apify
2Company news (expansion, acquisition, new facility)Google News / Apify
3LinkedIn company page recent postApify LinkedIn Company Posts
4Website initiative (sustainability, transformation, digital ops)Website scraper
5Fallback (no strong signal found)Generic, ICP-specific

For each variation, write:

Include at bottom:

# personalize.mjs command template
node ia-outreach/scripts/personalize.mjs \
  --client <slug> \
  --icp A \
  --signal-type job_posting  # or: news, linkedin_post, website, fallback

Step 9 — Tracking files

tracking/campaign-log.md:

tracking/reply-log.md:


Step 10 — Google Drive folder + strategy docs

Create ia-outreach/clients/<slug>/create-docs.mjs by adapting ia-outreach/clients/ACME Agency/create-docs.mjs:

  1. Change the client name, folder name, and doc titles
  2. Replace doc content with this client's strategy + overview
  3. Run: "/c/Program Files/nodejs/node.exe" ia-outreach/clients/<slug>/create-docs.mjs

Auth: Uses GOOGLE_ADS_CLIENT_ID + <id> + <id> from root .env. No changes needed.

Output:

Doc structure (Concise):

Doc structure (Full):


Key files

FilePurpose
ia-outreach/clients/ACME Agency/Gold standard — reference for all 10 steps
ia-outreach/clients/ACME Agency/sequences/copy-framework.mdColdIQ rules — read before writing any email
ia-outreach/clients/ACME Agency/create-docs.mjsDrive + Docs creation pattern to adapt
ia-outreach/scripts/personalize.mjsIcebreaker generation script
ia-outreach/scripts/push-linkedin.mjsProsp AI LinkedIn push script

Important rules

Example invocations