← 返回 Skills 市场
dru-ca

ABM Outbound

作者 dru-ca · GitHub ↗ · v1.0.0
cross-platform ⚠ suspicious
3285
总下载
2
收藏
6
当前安装
1
版本数
在 OpenClaw 中安装
/install 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.
使用说明 (SKILL.md)

ABM Outbound

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

Prerequisites

Service Purpose Sign Up
Apify LinkedIn scraping, Skip Trace apify.com
Apollo Email & phone enrichment apollo.io
Scribeless Handwritten letters platform.scribeless.co
Instantly (optional) Dedicated cold email instantly.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": "[email protected]",
    "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
[email protected],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

Day Email LinkedIn Letter
1 View profile Letter sent
3 Connection request
5 "Got my note?" Letter arrives
7 Value email Message if connected
10 Case study
14 Break-up Engage 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,[email protected],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
安全使用建议
This skill describes a legitimate multi-service ABM pipeline, but it contains several red flags you should address before use: (1) the SKILL.md requires multiple API keys (Apify, Apollo, Scribeless, optional Instantly) but the skill metadata does not declare those env vars — confirm what credentials the skill will actually use and store. (2) The workflow collects sensitive PII (personal emails and home mailing addresses via Skip Trace). Verify legal/regulatory compliance (GDPR, CCPA), LinkedIn terms of service, and your organization's privacy policy before using these lookups. (3) Because the skill source and homepage are unknown, prefer not to provide high-privilege or long-lived API keys; instead use limited-scope or test keys and monitor activity. (4) Consider requesting the author/publisher or source code (or a homepage) and check for an audit/logging policy so you can review what the agent does before letting it run autonomously. If you must test, run only with a small, consented sample and with manual approval at each step.
功能分析
Type: OpenClaw Skill Name: abm-outbound Version: 1.0.0 The skill is classified as suspicious due to its inherent high-risk capabilities involving the collection and transmission of sensitive Personally Identifiable Information (PII), including names, emails, phone numbers, and home addresses, to multiple external third-party services. While this behavior is aligned with the stated purpose of multi-channel ABM automation, the extensive handling of PII and reliance on external APIs (apify.com, apollo.io, instantly.ai, scribeless.co) represents a meaningful high-risk activity from a data privacy and security perspective. There is no evidence of intentional malicious behavior, prompt injection, or unauthorized data exfiltration beyond the stated purpose.
能力评估
Purpose & Capability
The skill's steps (Apify scraping, Apollo enrichment, Skip Trace for mailing addresses, Scribeless for letters) align with the ABM description — these services are appropriate for the stated purpose. However, the registry metadata declares no required environment variables or primary credential even though SKILL.md explicitly instructs the user/agent to export APIFY_API_KEY, APOLLO_API_KEY, SCRIBELESS_API_KEY (and optional INSTANTLY_API_KEY). That metadata/instruction mismatch is an incoherence: the skill will need several third-party API keys but does not declare them.
Instruction Scope
The runtime instructions are precise and stay within the stated workflow: scrape LinkedIn via Apify, call Apollo to reveal emails/phones, call a Skip Trace to obtain home mailing addresses, and add recipients to Scribeless. All network calls target the services named in the prerequisites. Important behavioral notes: the skill encourages retrieving personal emails (reveal_personal_emails: true) and home addresses from public records — this collects highly sensitive PII beyond business contact data and may raise ToS, privacy, and regulatory issues (e.g., LinkedIn terms, GDPR/CCPA). The instructions do not instruct the agent to read unrelated local files or secrets, nor to exfiltrate data to unknown endpoints.
Install Mechanism
Instruction-only skill with no install spec or code files. This is low risk from an install/execution perspective because nothing is downloaded or written by automatic install.
Credentials
The SKILL.md requires multiple sensitive API keys (APIFY_API_KEY, APOLLO_API_KEY, SCRIBELESS_API_KEY, optional INSTANTLY_API_KEY) but the skill metadata lists no required env vars or primary credential. Asking for multiple service API keys is proportionate to a multi-service ABM pipeline, but the omission in metadata is an inconsistency and increases risk because users may not realize how many credentials will be used. Also, the skill explicitly requests actions that will reveal personal emails and home addresses — the level of sensitive data requested is high and should be carefully justified and limited.
Persistence & Privilege
The skill does not request permanent/automatic presence (always:false), has no install-time config, and contains no code that modifies other skills or system-wide settings. Model invocation is allowed (default), which means an agent could call the described APIs autonomously — this is expected behavior for skills but combined with the above concerns (sensitive data + unknown author) raises practical risk if the agent is allowed to act without human review.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install abm-outbound
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /abm-outbound 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release
元数据
Slug abm-outbound
版本 1.0.0
许可证
累计安装 6
当前安装数 6
历史版本数 1
常见问题

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. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 3285 次。

如何安装 ABM Outbound?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install abm-outbound」即可一键安装,无需额外配置。

ABM Outbound 是免费的吗?

是的,ABM Outbound 完全免费(开源免费),可自由下载、安装和使用。

ABM Outbound 支持哪些平台?

ABM Outbound 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 ABM Outbound?

由 dru-ca(@dru-ca)开发并维护,当前版本 v1.0.0。

💬 留言讨论