Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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/skills/sundial-org-abm-outbound/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 117% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 44% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 31% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 129% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 88% | 0% |
Turn LinkedIn prospect lists into multi-channel outbound: email sequences, LinkedIn touches, and handwritten letters.
| 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 |
bashexport APIFY_API_KEY="your_key" export APOLLO_API_KEY="your_key" export SCRIBELESS_API_KEY="your_key"
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 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 +
ScribelessProvide a list of LinkedIn profile URLs from:
csvlinkedin_url https://linkedin.com/in/johndoe https://linkedin.com/in/janesmith
bashcurl -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.
bashcurl -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.
bashcurl -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.
Option 1: Apollo Sequences (Recommended)
bashcurl -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
bashcurl -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
csvemail,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
Create campaign at platform.scribeless.co, then add recipients:
bashcurl -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.
| 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.
python# 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)
csvfirst_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
Other measured skills in the registry, with their headline benchmark lift.