skills/integrations/heyreach/heyreach-master/SKILL.md
Internal resource library for HeyReach integration. Contains shared API client, operation scripts, and reference documentation.
npx skillsauth add beam-ai-team/beam-next-skills heyreach-masterInstall 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.
Internal resource library containing:
heyreach_client.py)check_heyreach_config.py)This shared library may read and mutate HeyReach outreach data. Before scripts create/update campaigns, import leads, change senders, launch outreach, or export data, show the account, campaign target, lead count, payload summary, destination path when used, and expected side effects. Require explicit user approval in the current turn before mutating HeyReach or writing files. Config checks and read-only metric/list operations do not require additional approval after scope is confirmed.
Problem solved: HeyReach skills would have duplicated content (setup instructions, API docs, auth flow, error handling).
Solution: Extract shared content into heyreach-master/references/ and heyreach-master/scripts/, then reference from each skill.
Result: Single source of truth, reduced context per skill.
All HeyReach skills reference these resources (progressive disclosure).
setup-guide.md - Complete setup wizard
api-reference.md - HeyReach API patterns
error-handling.md - Troubleshooting
check_heyreach_config.py - Pre-flight validation
uv run python check_heyreach_config.py [--json]
| Argument | Required | Default | Description |
|----------|----------|---------|-------------|
| --json | No | False | Output structured JSON for AI consumption |
Exit codes: 0=configured, 1=partial, 2=not configured
When to Use: Run this FIRST before any HeyReach operation. Use to validate API key is configured, diagnose authentication issues, or check if setup is needed.
heyreach_client.py - Shared API client
from heyreach_client import get_client, HeyReachError
client = get_client()
result = client.post("/v2/campaigns/All", {"offset": 0, "limit": 100})
Features:
When a HeyReach skill fails due to missing configuration, the AI should:
uv run python skills/integrations/heyreach/heyreach-master/scripts/check_heyreach_config.py --json
ai_action Field| ai_action | What to Do |
|-----------|------------|
| proceed_with_operation | Config OK, continue with the original operation |
| prompt_for_api_key | Ask user: "I need your HeyReach API key from Settings → API" |
| create_env_file | Create .env file and ask user for credentials |
| verify_api_key | Key exists but connection failed - verify it's correct |
| retry_later | API timeout - try again |
| check_network | Connection error - verify network |
If ai_action is prompt_for_api_key:
.env:
HEYREACH_API_KEY=their-key-here
Required in .env:
HEYREACH_API_KEY=your-api-key-here
All API requests go to: https://api.heyreach.io/api/public
Authentication header: X-API-KEY: {api_key}
Rate limit: 300 requests/minute
from heyreach_client import get_client
client = get_client()
result = client.post("/v2/campaigns/All", {"offset": 0, "limit": 100})
campaigns = result.get("items", [])
result = client.get(f"/v2/campaigns/{campaign_id}")
leads = [
{"linkedInUrl": "https://linkedin.com/in/user1"},
{"linkedInUrl": "https://linkedin.com/in/user2"}
]
result = client.post(f"/v2/campaigns/{campaign_id}/leads", {"leads": leads})
from heyreach_client import get_client, HeyReachError
try:
client = get_client()
result = client.get("/v2/campaigns/123")
except HeyReachError as e:
print(f"Error {e.status_code}: {e.message}")
except ValueError as e:
print(f"Config error: {e}")
Version: 1.0 Created: 2025-12-19 Status: Production Ready
tools
Build a Palantir-shape, PDF-native use-case proposal document for a sophisticated enterprise account: research-grounded use cases (each with description, challenge, impact, value), an operating-graph ontology page, a recommended PoC with a week-by-week plan, and a closing page that asks for one decision. Load when a client asks us to 'propose high-impact use cases', requests a use-case presentation/catalog for a function (finance, HR, ops), or when a technical evaluation team will review candidates to pick a PoC. NOT for single-account cold outreach (use prospect-brief), full process diagnostics (use operating-diagnostic), or priced proposals (use proposal-creation).
development
Convert Beam Figma slide designs into high-fidelity, editable HTML presentation decks. Use when Codex is asked to audit Figma slides, extract slide templates, rebuild Beam slides as HTML decks, decide whether Figma imagery should be exported or rebuilt in HTML/CSS, create Beam/Prism-compatible deck templates, or improve fidelity of existing Beam HTML slide rebuilds.
development
Use the Beam AI reusable slide library: individual HTML slide templates extracted from Beam Figma rebuilds, kept separate from deck themes and full deck templates. Load when the user asks for a slide library, specific Beam slide patterns, reusable Figma-inspired slides, Prism slide-library items, or slide-level HTML templates.
development
Use Beam AI deck and report design packs, HTML templates, and curated examples to create sales decks, customer intro decks, RPO decks, and DIN A4 use-case proposal reports. Load when the user asks for Beam-branded presentation templates, Prism-compatible deck templates, Beam report templates, customer intro decks, commercial proposals, or reusable HTML deck/report examples.