skills/integrations/linkedin-outbounding-automation/SKILL.md
Automate LinkedIn outbound from HubSpot company lists. Load when user says "linkedin outbounding automation", "linkedin outreach from hubspot", "hubspot to heyreach", "prospect C-levels", "run linkedin campaign", or wants to push HubSpot segments to LinkedIn outreach via HeyReach.
npx skillsauth add beam-ai-team/beam-next-skills linkedin-outbounding-automationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Purpose: Fully automated LinkedIn outbound — from HubSpot company lists to personalized C-level outreach via HeyReach.
Load When:
┌─────────────────────────────────────────────────────────────┐
│ HUBSPOT → APOLLO → HEYREACH PIPELINE │
├─────────────────────────────────────────────────────────────┤
│ │
│ HubSpot List → Apollo Search → HeyReach Campaign │
│ (Companies) (Find C-levels) (LinkedIn Outreach) │
│ │
│ Mode A: Single company test │
│ Mode B: Full list rollout │
│ │
└─────────────────────────────────────────────────────────────┘
| Tool | Required | Config Location |
|------|----------|-----------------|
| HubSpot | ✅ | HUBSPOT_ACCESS_TOKEN in .env |
| Apollo | ✅ | APOLLO_API_KEY in .env |
| HeyReach | ✅ | MCP Server configured |
Find available lists:
python3 00-system/skills/hubspot/hubspot-master/scripts/query_list.py --show-lists
For DYNAMIC lists (not shown by default):
# Search all list types including DYNAMIC
POST https://api.hubapi.com/crm/v3/lists/search
{
"listIds": [],
"offset": 0,
"query": "",
"count": 500,
"additionalProperties": ["hs_list_size"]
}
# Get list members
GET /crm/v3/lists/{list_id}/memberships?limit=120
# Get company details (batch)
POST /crm/v3/objects/companies/batch/read
{
"inputs": [{"id": "company_id_1"}, {"id": "company_id_2"}],
"properties": ["name", "domain", "industry", "linkedin_company_page"]
}
Output: List of companies with names and domains
API Endpoint: POST https://api.apollo.io/v1/people/search
Headers:
Content-Type: application/json
X-Api-Key: {APOLLO_API_KEY}
Request Body:
{
"q_organization_name": "Bank Aljazira",
"person_titles": ["CEO", "CFO", "CIO", "COO", "CMO", "CTO", "Chief", "Managing Director", "VP", "Head"],
"page": 1,
"per_page": 25
}
Response Fields:
name - Full nametitle - Job titlelinkedin_url - LinkedIn profile URL ← Key for HeyReachemail - Email addressorganization.name - Company nameOption A: Add to existing campaign
Use: mcp_heyreach_add_leads_to_campaign_v2
Note: Campaign must NOT be in DRAFT status
Option B: Add to lead list (for DRAFT campaigns)
Use: mcp_heyreach_add_leads_to_list_v2
Lead Format:
{
"firstName": "Naif",
"lastName": "Abdulkareem",
"profileUrl": "https://www.linkedin.com/in/naif-al-abdulkareem-90619283",
"position": "CEO & Managing Director",
"companyName": "Bank Aljazira"
}
3-Touch Sequence Template:
{first_name} — researching digital transformation leaders in Saudi banking.
Impressive what {company} is doing in the region. Would be great to connect.
Fallback (no variables):
Hi there,
Researching digital transformation leaders in Saudi banking and came
across your profile. Impressive work. Would be great to connect.
Thanks for connecting, {first_name}!
Quick context — I'm with [YOUR COMPANY]. We [VALUE PROP].
Curious if [PAIN POINT] is on {company}'s radar this year?
Happy to share how [CUSTOMER] approached it — no pitch, just insights.
Fallback:
Thanks for connecting!
I'm with [YOUR COMPANY] — we [VALUE PROP].
Curious if [PAIN POINT] is on the radar this year? Happy to
share how [CUSTOMER] approached it.
{first_name} — circling back briefly.
Is [PAIN POINT] a priority for 2025?
We've helped [CUSTOMER] [RESULT].
Worth a 15-min call? If timing's off, just let me know.
Fallback:
Circling back briefly.
Is [PAIN POINT] a priority for 2025?
We've helped [CUSTOMER] [RESULT].
Worth a 15-min call? If timing's off, just let me know.
For batch processing entire lists:
# Pseudocode for full rollout
for company in hubspot_list:
# 1. Search Apollo for C-levels
prospects = apollo_search(
company_name=company.name,
titles=["CEO", "CFO", "CIO", "VP", "Head"]
)
# 2. Filter to those with LinkedIn URLs
valid_prospects = [p for p in prospects if p.linkedin_url]
# 3. Add to HeyReach
heyreach_add_leads(
campaign_id=CAMPAIGN_ID,
leads=valid_prospects,
sender_account_id=SENDER_ID
)
# 4. Rate limit (respect API limits)
sleep(1)
| Name | Account ID | Has Sales Nav | |------|------------|---------------| | Karim Daoui | 111643 | No | | Sara Intikhab | 40189 | Yes | | Quentin Silvestro | 39960 | No |
C_LEVEL_TITLES = [
"CEO", "CFO", "CIO", "COO", "CMO", "CTO",
"Chief Executive", "Chief Financial", "Chief Information",
"Chief Operating", "Chief Marketing", "Chief Technology",
"Managing Director", "General Manager",
"VP", "Vice President",
"Head of", "Director"
]
| Metric | Target | Notes | |--------|--------|-------| | Connection Accept Rate | >30% | Industry avg: 20-40% | | Reply Rate | >10% | Industry avg: 5-15% | | Positive Response Rate | >3% | Interested/meeting booked |
| Issue | Solution |
|-------|----------|
| Apollo returns 0 results | Try q_organization_name instead of q_organization_domains |
| HeyReach "fetch failed" | Check MCP server connection, retry |
| "Can't add to DRAFT campaign" | Add leads to the campaign's list instead |
| Missing fallback error | Add fallback message (no variables) to every Send Message node |
Single Company Test:
User: "outbound Bank Aljazira"
AI: Finds 5 C-levels via Apollo → Adds to HeyReach → Ready to send
Full List Rollout:
User: "roll out to Top 100 - KD"
AI: Pulls 108 companies → Finds ~500 C-levels → Adds to campaign
Version: 1.0 Created: 2025-12-17 Author: Karim + Nexus Integrations: HubSpot, Apollo, HeyReach
development
--- name: taste-skill type: skill version: '1.0' author: Leonxlnx (packaged by Zhichao Li) category: general tags: - frontend - design - anti-slop - landing-page updated: '2026-06-11' visibility: public description: Anti-slop frontend skill for landing pages, portfolios, and redesigns. The agent reads the brief, infers the right design direction, and ships interfaces that do not look templated. Real design systems when applicable, audit-first on redesigns, strict pre-flight check. license: MIT.
development
Use when communicating quantitative information in any form — Slack updates, emails, reports, decks, dashboards, landing pages, product UI, public talks. Covers two integrated layers: (1) making numbers semantically meaningful (translation, anchoring, simplification, story-pairing) and (2) showing numbers cleanly (chart vs table vs prose, chart-by-message, pre-attentive emphasis, color discipline, decluttering). Distilled and integrated from *Show Me the Numbers* (Stephen Few) and *Make Numbers Count* (Chip Heath & Karla Starr). Not for raw data analysis or statistics — this is about communication of numbers, not their derivation.
development
Use when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a frontend interface. Covers websites, landing pages, dashboards, product UI, app shells, components, forms, settings, onboarding, and empty states. Handles UX review, visual hierarchy, information architecture, cognitive load, accessibility, performance, responsive behavior, theming, anti-patterns, typography, fonts, spacing, layout, alignment, color, motion, micro-interactions, UX copy, error states, edge cases, i18n, and reusable design systems or tokens. Also use for bland designs that need to become bolder or more delightful, loud designs that should become quieter, live browser iteration on UI elements, or ambitious visual effects that should feel technically extraordinary. Not for backend-only or non-UI tasks.
tools
Stateful multi-session tutor adapted for Beam — teach a stakeholder to understand, trust, and operate a specific agent, or teach a Solution Engineer a client's business process for delivery. Grounds every lesson in Knowledge Hub sources (real agent graphs, real tasks, transcripts, Linear) before any web resource. Also works for any general topic. Trigger on "teach me", "beam teach", "教我", "onboard <person> on <agent>", "help <stakeholder> understand the agent", "learn this client's process".