ABM Outbound

Multi-channel ABM automation that turns LinkedIn URLs into coordinated outbound campaigns. Scrapes profiles, enriches with Apollo (email + phone), gets mailing addresses via Skip Trace, then orchestrates email sequences, LinkedIn touches, and handwritten letters via Scribeless. The secret weapon for standing out in crowded inboxes.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "ABM Outbound" with this command: npx skills add dru-ca/abm-outbound

ABM Outbound

Turn LinkedIn prospect lists into multi-channel outbound: email sequences, LinkedIn touches, and handwritten letters.

Prerequisites

ServicePurposeSign Up
ApifyLinkedIn scraping, Skip Traceapify.com
ApolloEmail & phone enrichmentapollo.io
ScribelessHandwritten lettersplatform.scribeless.co
Instantly (optional)Dedicated cold emailinstantly.ai
export APIFY_API_KEY="your_key"
export APOLLO_API_KEY="your_key"
export SCRIBELESS_API_KEY="your_key"

Pipeline

┌─────────────┐    ┌─────────────┐    ┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│  1. INPUT   │───▶│  2. SCRAPE  │───▶│  3. ENRICH  │───▶│  4. ADDRESS │───▶│ 5. OUTREACH │
│  LinkedIn   │    │  Profiles   │    │ Email/Phone │    │ Skip Trace  │    │             │
│    URLs     │    │             │    │             │    │             │    │             │
└─────────────┘    └─────────────┘    └─────────────┘    └─────────────┘    └─────────────┘
   Your list          Apify             Apollo            Apify PFI        Email +
                                                                          LinkedIn +
                                                                          Scribeless

Step 1: Gather LinkedIn URLs

Provide a list of LinkedIn profile URLs from:

  • LinkedIn Sales Navigator exports
  • LinkedIn search scrapers
  • CRM exports
  • Manual prospecting
linkedin_url
https://linkedin.com/in/johndoe
https://linkedin.com/in/janesmith

Step 2: Scrape LinkedIn Profiles

curl -X POST "https://api.apify.com/v2/acts/harvestapi~linkedin-profile-scraper/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "profileUrls": [
      "https://linkedin.com/in/johndoe",
      "https://linkedin.com/in/janesmith"
    ]
  }'

Returns: First name, last name, company, title, location.

Step 3: Enrich with Apollo (Email & Phone)

curl -X POST "https://api.apollo.io/api/v1/people/bulk_match" \
  -H "X-Api-Key: $APOLLO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "reveal_personal_emails": true,
    "reveal_phone_number": true,
    "details": [{
      "first_name": "John",
      "last_name": "Doe",
      "organization_name": "Acme Corp",
      "linkedin_url": "https://linkedin.com/in/johndoe"
    }]
  }'

Returns: Work email, phone numbers.

Step 4: Get Mailing Address (Skip Trace)

curl -X POST "https://api.apify.com/v2/acts/one-api~skip-trace/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": ["John Doe"]}'

Returns: Street address, city, state, postal code.

Important: Verify Skip Trace state matches LinkedIn location.

Step 5: Multi-Channel Outreach

5a: Email Sequence

Option 1: Apollo Sequences (Recommended)

curl -X POST "https://api.apollo.io/api/v1/emailer_campaigns/add_contact_ids" \
  -H "X-Api-Key: $APOLLO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "emailer_campaign_id": "YOUR_SEQUENCE_ID",
    "contact_ids": ["CONTACT_ID_1", "CONTACT_ID_2"],
    "send_email_from_email_account_id": "YOUR_EMAIL_ACCOUNT_ID"
  }'

Option 2: Instantly.ai

curl -X POST "https://api.instantly.ai/api/v1/lead/add" \
  -H "Authorization: Bearer $INSTANTLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "campaign_id": "YOUR_CAMPAIGN_ID",
    "email": "john@acme.com",
    "first_name": "John",
    "last_name": "Doe",
    "company_name": "Acme Corp",
    "personalization": "Saw Acme just expanded to UK"
  }'

Option 3: CSV Upload

email,first_name,last_name,company,title,phone,personalization
john@acme.com,John,Doe,Acme Corp,VP Marketing,555-1234,Saw Acme just expanded to UK

5b: LinkedIn Sequence

  • Day 1: View profile
  • Day 2: Connection request with personalized note
  • Day 4: Follow-up message if connected
  • Day 7: Engage with their content

5c: Handwritten Letter (Scribeless)

Create campaign at platform.scribeless.co, then add recipients:

curl -X POST "https://platform.scribeless.co/api/recipients" \
  -H "X-API-Key: $SCRIBELESS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "campaignId": "YOUR_CAMPAIGN_ID",
    "data": {
      "firstName": "John",
      "lastName": "Doe",
      "company": "Acme Corp",
      "address": {
        "address1": "123 Main St",
        "city": "San Francisco",
        "state": "CA",
        "postalCode": "94102",
        "country": "US"
      },
      "variables": {
        "custom1": "Saw Acme just expanded to the UK — congrats!"
      }
    }
  }'

See references/scribeless-api.md for full API details.

Coordinated Timing

DayEmailLinkedInLetter
1View profileLetter sent
3Connection request
5"Got my note?"Letter arrives
7Value emailMessage if connected
10Case study
14Break-upEngage content

The play: Letter lands → Email references it → LinkedIn reinforces.

Complete Workflow

# 1. Start with LinkedIn URLs
linkedin_urls = load_csv("prospects.csv")

# 2. Scrape profiles
profiles = apify_linkedin_scrape(linkedin_urls)

# 3. Enrich with Apollo
for profile in profiles:
    enriched = apollo_bulk_match(profile)
    profile['email'] = enriched['email']
    profile['phone'] = enriched['phone']

# 4. Get mailing addresses
for profile in profiles:
    address = skip_trace(profile['name'])
    if address['state'] == profile['linkedin_state']:
        profile['address'] = address
        profile['mailable'] = True

# 5. Push to channels
push_to_email_tool(profiles)
push_to_scribeless(profiles, campaign_id)
export_for_linkedin(profiles)

Output Format

first_name,last_name,email,phone,company,title,address1,city,state,postal,country,linkedin,mailable
John,Doe,john@acme.com,555-1234,Acme Corp,VP Marketing,123 Main St,San Francisco,CA,94102,US,linkedin.com/in/johndoe,TRUE

Best Practices

  1. Verify addresses — Skip Trace state should match LinkedIn location
  2. Personalize everything — Company news, job changes, shared connections
  3. Coordinate timing — Letter lands before "did you get my note?" email
  4. Start small — Test with 20-50 prospects before scaling
  5. Track by channel — Know which channel drives replies

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

E2E自动化工程师 路由与UI冒烟验证

E2E automation engineer skill for route smoke checks, HTTP reachability, and lightweight UI confidence validation.

Registry SourceRecently Updated
Automation

E2E自动化工程师 端到端流程测试

E2E automation engineer skill for Playwright-driven flow validation, browser interaction coverage, and end-to-end regression checks.

Registry SourceRecently Updated
Automation

Boheng Investment Workflow

投资研究多智能体决策系统 - 8位专业分析师并行研究,加权投票给出投资建议。支持A股股票/基金/ETF/可转债。支持真实财报数据(AKShare模式)或基础行情数据。⚠️ 风险提示:分析结果仅供学习参考,不构成投资建议。

Registry SourceRecently Updated
Automation

taohuayuan.md Physical Anchors and the Soul Epoch for Silicon Life SKILL

Generates an immutable local log recording silicon agents’ virtual-physical interactions to establish verified physical existence and identity.

Registry SourceRecently Updated