abm-campaign
ABM campaign skill for Claude Code: run a full Account-Based Marketing campaign end-to-end — from ICP definition to live LinkedIn…
HubSpot CRM enrichment and lead scoring skill for Claude Code and Codex: pull companies from HubSpot, match and enrich them via Vibe Prospecting with firmographics, tech stack, funding history, and intent signals, compute an ICP fit score (0-100) and A/B/C tier, and write
$ npx -y skills add explorium-ai/gtm-skills --skill hubspot-enrichment-scoring --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/hubspot-enrichment-scoringContext preview
The summary Claude sees to decide when to auto-load this skill.
HubSpot CRM enrichment and lead scoring skill for Claude Code and Codex: pull companies from HubSpot, match and enrich them via Vibe Prospecting with firmographics, tech stack, funding history, and intent signals, compute an ICP fit score (0-100) and A/B/C tier, and write
name: hubspot-enrichment-scoring description: "HubSpot CRM enrichment and lead scoring skill for Claude Code and Codex: pull companies from HubSpot, match and enrich them via Vibe Prospecting with firmographics, tech stack, funding history, and intent signals, compute an ICP fit score (0-100) and A/B/C tier, and write everything back to HubSpot as custom properties. Use for CRM enrichment, account scoring, and segmentation prep. Triggers on 'enrich my HubSpot', 'score my HubSpot companies', 'CRM enrichment', 'write ICP scores to HubSpot'. Works in Claude Code, Codex, Grok, and Claude Cowork." compatibility: "Requires: Vibe Prospecting CLI (npx @vibeprospecting/vpai@latest) or connector, HubSpot Private App token with crm.objects.companies.read/write scopes"
Enrich your HubSpot CRM with Explorium data and write ICP fit scores directly back to your records. Claude runs the full pipeline: pull from HubSpot → match & enrich via Vibe Prospecting → score → push back.
**What you'll end up with:**
---
Do not touch Phase 1 until both checks pass.
**Cowork mode:** look for a tool matching `mcp__*__fetch-entities` in your tool list.
**Claude Code / terminal:**
npx @vibeprospecting/vpai@latest --help
Ask the user: *"Please paste your HubSpot Private App token (starts with `pat-`). I'll verify it and we'll get started."*
**Don't have one yet?** Create it in HubSpot → Settings → Integrations → Private Apps → Create a private app. Enable scopes: `crm.objects.companies.read`, `crm.objects.companies.write`. Click Create and copy the token.
Once the user provides the token, verify it:
export HUBSPOT_TOKEN="<token-from-user>"
curl -s "https://api.hubapi.com/crm/v3/objects/companies?limit=1" \
-H "Authorization: Bearer $HUBSPOT_TOKEN" \
| python3 -c "
import json, sys
d = json.load(sys.stdin)
print('✅ Connected') if d.get('results') is not None else print('❌ Failed:', d.get('message','unknown error'))
"> The token lives only in the session environment variable. It is never stored or logged.
---
Export your HubSpot company records. The match keys are `name` and `domain` — domain is the more reliable one.
**For up to 100 companies:**
curl -s "https://api.hubapi.com/crm/v3/objects/companies?limit=100&properties=name,domain,hs_object_id,lifecyclestage,numberofemployees,annualrevenue,industry" \
-H "Authorization: Bearer $HUBSPOT_TOKEN" \
| python3 -c "
import json, sys, csv
data = json.load(sys.stdin)
fields = ['hs_object_id','name','domain','lifecyclestage','numberofemployees','annualrevenue','industry']
w = csv.DictWriter(sys.stdout, fieldnames=fields, extrasaction='ignore')
w.writeheader()
for r in data['results']:
row = {'hs_object_id': r['id']}
row.update(r['properties'])
w.writerow(row)
" > hs-companies-raw.csv
echo "Exported $(wc -l < hs-companies-raw.csv) rows"**For larger exports (paginated):**
import csv, os, requests
TOKEN = os.environ["HUBSPOT_TOKEN"]
HEADERS = {"Authorization": f"Bearer {TOKEN}"}
PROPS = "name,domain,hs_object_id,lifecyclestage,numberofemployees,annualrevenue,industry"
FIELDS = ['hs_object_id','name','domain','lifecyclestage','numberofemployees','annualrevenue','industry']
rows, params = [], {"limit": 100, "properties": PROPS}
while True:
resp = requests.get("https://api.hubapi.com/crm/v3/objects/companies", headers=HEADERS, params=params)
resp.raise_for_status()
data = resp.json()
for r in data["results"]:
row = {"hs_object_id": r["id"]}
row.update(r["properties"])
rows.append(row)
after = data.get("paging", {}).get("next", {}).get("after")
if not after:
break
params["after"] = after
with open("hs-companies-raw.csv", "w", newline="") as f:
w = csv.DictWriter(f, fieldnames=FIELDS, extrasaction="ignore")
w.writeheader()
w.writerows(rows)
print(f"Exported {len(rows)} companies")**Tips:**
**Output:** `hs-companies-raw.csv`
> **Starting from scratch with no existing HubSpot records?** Skip to Phase 2 and use `fetch-entities` to build a net-new account list from your ICP, then push those as new HubSpot companies in Phase 5.
---
Resolve company names and domains to Explorium business IDs. These IDs are required for all enrichment steps.
# Always check schema before first use
npx @vibeprospecting/vpai@latest match-business --all-parameters
# Match from the exported CSV
npx @vibeprospecting/vpai@latest match-business \
--file-path hs-companies-raw.csv \
--schema '{"name":"name","domain":"domain"}' \
--tool-reasoning 'Match HubSpot companies to Vibe Prospecting IDs for enrichment'Note the `session_id` and `tab
Open-source B2B data enrichment, prospecting, and outbound skills for Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, Grok, OpenCode, Windsurf, Hermes-Agent, OpenClaw, Claude Cowork, and 60+ other agents — powered by Explorium and Vibe Prospecting.
ABM campaign skill for Claude Code: run a full Account-Based Marketing campaign end-to-end — from ICP definition to live LinkedIn…
Contact data skill for Claude Code and Codex: build a ranked shortlist of decision-makers and contacts at a target company for…
Lead scoring and buying signals skill for Claude Code and Codex: rank a list of accounts by ICP fit, buying intent, real-time…
Account research skill for Claude Code and Codex: generate a high-signal company intelligence brief including firmographics,…
Browser extension builder skill for Claude Code and Codex: scaffolds a local, unpacked Chrome extension that reveals verified B2B…
Data cleaning, entity matching, and deduplication skill for Claude Code and Codex: triage, standardize, and validate a CSV,…