Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Multi-channel demand generation, paid media optimization, SEO strategy, and partnership programs for Series A+ startups
.claude/skills/borghei-marketing-demand-acquisition/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 193% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 228% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 141% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 205% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 112% | 0% |
Acquisition playbook for Series A+ startups scaling internationally (EU/US/Canada) with hybrid PLG/Sales-Led motion.
| Role | Focus Areas | |------|-------------| | Demand Generation Manager | Multi-channel campaigns, pipeline generation | | Paid Media Marketer | Paid search/social/display optimization | | SEO Manager | Organic acquisition, technical SEO | | Partnerships Manager | Co-marketing, channel partnerships |
Demand Gen: MQL/SQL volume, cost per opportunity, marketing-sourced pipeline $, MQL→SQL rate
Paid Media: CAC, ROAS, CPL, CPA, channel efficiency ratio
SEO: Organic sessions, non-brand traffic %, keyword rankings, technical health score
Partnerships: Partner-sourced pipeline $, partner CAC, co-marketing ROI
| Stage | Tactics | Target | |-------|---------|--------| | TOFU | Paid social, display, content syndication, SEO | Brand awareness, traffic | | MOFU | Paid search, retargeting, gated content, email nurture | MQLs, demo requests | | BOFU | Brand search, direct outreach, case studies, trials | SQLs, pipeline $ |
utm_source={channel} // linkedin, google, meta
utm_medium={type} // cpc, display, email
utm_campaign={campaign-id} // q1-2025-linkedin-enterprise
utm_content={variant} // ad-a, email-1
utm_term={keyword} // [paid search only]| Channel | Best For | CAC Range | Series A Priority | |---------|----------|-----------|-------------------| | LinkedIn Ads | B2B, Enterprise, ABM | $150-400 | High | | Google Search | High-intent, BOFU | $80-250 | High | | Google Display | Retargeting | $50-150 | Medium | | Meta Ads | SMB, visual products | $60-200 | Medium |
| Channel | Budget | Expected SQLs | |---------|--------|---------------| | LinkedIn | $15k | 10 | | Google Search | $12k | 20 | | Google Display | $5k | 5 | | Meta | $5k | 8 | | Partnerships | $3k | 5 |
See campaign-templates.md for detailed structures.
| Tier | Type | Volume | Priority | |------|------|--------|----------| | 1 | High-intent BOFU | 100-1k | First | | 2 | Solution-aware MOFU | 500-5k | Second | | 3 | Problem-aware TOFU | 1k-10k | Third |
| Tier | Type | Effort | ROI | |------|------|--------|-----| | 1 | Strategic integrations | High | Very high | | 2 | Affiliate partners | Medium | Medium-high | | 3 | Customer referrals | Low | Medium | | 4 | Marketplace listings | Medium | Low-medium |
See international-playbooks.md for regional tactics.
| Model | Use Case | |-------|----------| | First-Touch | Awareness campaigns | | Last-Touch | Direct response | | W-Shaped (40-20-40) | Hybrid PLG/Sales (recommended) |
| Metric | Target | |--------|--------| | MQLs | Weekly target | | SQLs | Weekly target | | MQL→SQL Rate | >15% | | Blended CAC | <$300 | | Pipeline Velocity | <60 days |
See attribution-guide.md for detailed setup.
| Script | Purpose | Usage | |--------|---------|-------| | calculate_cac.py | Calculate blended and channel CAC | python scripts/calculate_cac.py --spend 40000 --customers 50 |
See hubspot-workflows.md for workflow templates.
| File | Content | |------|---------| | hubspot-workflows.md | Lead scoring, nurture, assignment workflows | | campaign-templates.md | LinkedIn, Google, Meta campaign structures | | international-playbooks.md | EU, US, Canada market tactics | | attribution-guide.md | Multi-touch attribution, dashboards, A/B testing |
| Metric | LinkedIn | Google Search | SEO | Email | |--------|----------|---------------|-----|-------| | CTR | 0.4-0.9% | 2-5% | 1-3% | 15-25% | | CVR | 1-3% | 3-7% | 2-5% | 2-5% | | CAC | $150-400 | $80-250 | $50-150 | $20-80 | | MQL→SQL | 10-20% | 15-25% | 12-22% | 8-15% |
Required:
✅ Job title: Director+ or budget authority
✅ Company size: 50-5000 employees
✅ Budget: $10k+ annual
✅ Timeline: Buying within 90 days
✅ Engagement: Demo requested or high-intent action| Handoff | Target | |---------|--------| | SDR responds to MQL | 4 hours | | AE books demo with SQL | 24 hours | | First demo scheduled | 3 business days |
Validation: Test lead through workflow, verify notifications and routing.
| Problem | Likely Cause | Solution | |---------|-------------|----------| | CAC exceeding LTV ratio (below 3:1) | Over-spending on high-cost channels without sufficient conversion optimization | Audit channel-specific CAC against benchmarks. Cut or pause channels with CAC >$400 for B2B SaaS. Shift budget toward lower-CAC channels (SEO, email, organic social). A 3:1 LTV:CAC ratio is the minimum for sustainability; below 2:1 indicates immediate problems | | LinkedIn Ads delivering low CTR (<0.4%) | Audience too broad, creative fatigue, or wrong ad format | Narrow targeting to Director+ titles at 50-5,000 employee companies. Refresh creative every 2-3 weeks. Test Thought Leader Ads before scaling standard formats -- they deliver 10-20% CTR at premium CPMs, which frequently beats standard LinkedIn ads' 0.5-1% rates | | Google Ads CPA rising above target | Insufficient conversion data for automated bidding, or keyword competition increasing | Stay on Manual CPC until you have 50+ conversions, then switch to Target CPA. Google Ads CPC increased 164% from 2019-2024. Expand negative keyword list (maintain 100+). Focus on long-tail, high-intent keywords to reduce competition | | MQL-to-SQL conversion rate below 15% | Lead scoring too loose, or MQL criteria not aligned with sales expectations | Tighten MQL scoring criteria. Require minimum engagement score (demo request or equivalent high-intent action). Align with sales on SQL criteria: Director+ title, 50-5,000 employees, $10k+ budget, buying within 90 days | | UTM parameters not appearing in HubSpot contact records | Tracking script not firing, form stripping UTM values, or redirect losing parameters | Verify HubSpot tracking code is on all pages. Ensure forms pass hidden UTM fields. Test by clicking a UTM-tagged link and checking the contact record. Use server-side UTM capture if client-side tracking is blocked by privacy tools | | Partner channel not generating pipeline | Partner enablement insufficient, or wrong partner tier selection | Ensure partners have completed demo training and have access to co-branded assets. Focus on Tier 1 strategic integration partners (high effort, very high ROI) before scaling to Tier 2 affiliates. Set clear success metrics and revenue model before launch | | Single-channel dependency risk | Over 50% of pipeline from one channel | Diversify acquisition across 3+ channels immediately. Recommended 2026 allocation: AI-enhanced paid search 28-33%, omnichannel social 22-28%, content + experience marketing 20-25%. No single channel should exceed 40% of total pipeline |
In Scope:
Out of Scope:
Market Context (2026):
| Integration | Purpose | How to Connect | |-------------|---------|----------------| | HubSpot CRM | Campaign tracking, lead scoring, MQL/SQL workflows, attribution reporting | Create campaigns with UTM structure (utm_source={channel}, utm_medium={type}, utm_campaign={campaign-id}). Configure W-shaped (40-20-40) attribution model. Set 90-day lookback window. Validate with weekly metrics dashboard | | Google Ads | Paid search campaign management | Structure: Brand > Competitor > Solution > Category keywords. 3 responsive search ads per ad group (15 headlines, 4 descriptions). Start Manual CPC, switch to Target CPA after 50+ conversions. Weekly search term review | | LinkedIn Campaign Manager | B2B paid social campaigns | Structure: Awareness > Consideration > Conversion campaigns. Target Director+, 50-5,000 employees. Start $50/day per campaign. Scale 20% weekly if CAC < target. Verify LinkedIn Insight Tag on all pages. Test Thought Leader Ads for higher CTR | | Google Search Console | SEO performance tracking | Monitor indexing, Core Web Vitals, keyword positions. Target page speed >90 mobile. Submit XML sitemap. Track non-brand traffic percentage as key SEO health metric | | campaign-analytics skill | Attribution modeling and ROI calculation | Export HubSpot journey data as JSON for attribution_analyzer.py. Use campaign_roi_calculator.py for cross-channel ROI comparison. Feed funnel data into funnel_analyzer.py for bottleneck detection | | social-media-analyzer skill | Social channel performance within demand gen mix | Analyze paid social campaign performance with calculate_metrics.py. Compare social channel CAC against other acquisition channels | | Partner Platforms (PartnerStack, Impact, Rewardful) | Affiliate and partner program management | Configure 20-30% recurring commission. Create affiliate enablement kit. Set up partner UTM tracking. Test affiliate link tracking through to conversion |
Type: CLI script (runs with example data or edit inline)
Usage:
bashpython calculate_cac.py
Note: This script uses hardcoded example data. To analyze your own data, edit the example_data list in the script with your channel-specific spend and customer counts.
Input Format (edit in script):
pythonexample_data = [ {'channel': 'LinkedIn Ads', 'spend': 15000, 'customers': 10}, {'channel': 'Google Search', 'spend': 12000, 'customers': 20}, {'channel': 'SEO/Organic', 'spend': 5000, 'customers': 15}, {'channel': 'Partnerships', 'spend': 3000, 'customers': 5}, ]
Functions:
| Function | Parameters | Returns | |----------|-----------|---------| | calculate_cac() | total_spend: float, customers_acquired: int | Basic CAC as float. Returns 0.0 if customers is 0 | | calculate_channel_cac() | channel_data: List[Dict] (each dict: channel, spend, customers) | Dict with per-channel breakdown (spend, customers, cac) plus blended key with total_spend, total_customers, blended_cac | | print_results() | results: Dict | Prints formatted table to stdout with per-channel and blended CAC |
Built-in Benchmarks (printed at end of output):
2026 Context: These benchmarks reflect Series A B2B SaaS. Overall B2B SaaS CAC has risen to $1,200 average across all segments (up 40-60% since 2023). Self-serve models target $100-500; enterprise segments can exceed $5,000. The median SaaS company spends $2 to acquire $1 of new ARR.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 18,978 | 21,005 | +11% | 1 | 1 | 0% | 2,995 | 8,766 | +193% | 0 | 0 | — |
case-02 | fail→fail | 23,527 | 35,115 | +49% | 1 | 1 | 0% | 3,573 | 10,303 | +188% | 0 | 0 | — |
case-03 | fail→fail | 16,319 | 13,073 | -20% | 1 | 1 | 0% | 2,664 | 7,074 | +166% | 0 | 0 | — |
case-04 | pass→pass | 14,918 | 8,473 | -43% | 1 | 1 | 0% | 2,305 | 6,312 | +174% | 0 | 0 | — |
case-05 | fail→fail | 15,579 | 14,221 | -9% | 1 | 1 | 0% | 2,418 | 7,208 | +198% | 0 | 0 | — |
case-06 | fail→pass | 14,138 | 14,048 | -1% | 1 | 1 | 0% | 2,132 | 6,986 | +228% | 0 | 0 | — |
case-07 | pass→pass | 17,360 | 3,798 | -78% | 1 | 1 | 0% | 2,662 | 5,520 | +107% | 0 | 0 | — |
case-08 | fail→pass | 19,294 | 18,037 | -7% | 1 | 1 | 0% | 3,215 | 7,753 | +141% | 0 | 0 | — |
case-09 | fail→pass | 15,713 | 12,823 | -18% | 1 | 1 | 0% | 2,277 | 6,950 | +205% | 0 | 0 | — |
case-10 | fail→pass | 18,451 | 5,102 | -72% | 1 | 1 | 0% | 2,728 | 5,781 | +112% | 0 | 0 | — |
case-11 | fail→pass | 14,417 | 12,468 | -14% | 1 | 1 | 0% | 2,274 | 6,852 | +201% | 0 | 0 | — |
case-12 | fail→pass | 12,439 | 9,852 | -21% | 1 | 1 | 0% | 1,958 | 6,550 | +235% | 0 | 0 | — |
case-13 | pass→pass | 15,293 | 6,191 | -60% | 1 | 1 | 0% | 2,260 | 5,884 | +160% | 0 | 0 | — |
case-14 | pass→pass | 16,203 | 9,333 | -42% | 1 | 1 | 0% | 2,479 | 6,308 | +154% | 0 | 0 | — |
case-15 | fail→pass | 10,685 | 2,318 | -78% | 1 | 1 | 0% | 1,654 | 5,215 | +215% | 0 | 0 | — |
case-16 | fail→pass | 14,978 | 17,169 | +15% | 1 | 1 | 0% | 2,364 | 7,664 | +224% | 0 | 0 | — |
case-17 | fail→pass | 9,525 | 9,026 | -5% | 1 | 1 | 0% | 1,609 | 6,226 | +287% | 0 | 0 | — |
case-18 | pass→pass | 15,384 | 17,637 | +15% | 1 | 1 | 0% | 2,262 | 7,597 | +236% | 0 | 0 | — |
case-19 | pass→pass | 16,774 | 18,075 | +8% | 1 | 1 | 0% | 2,706 | 7,862 | +191% | 0 | 0 | — |
case-20 | fail→pass | 24,470 | 20,207 | -17% | 1 | 1 | 0% | 4,434 | 8,009 | +81% | 0 | 0 | — |
case-21 | fail→fail | 14,200 | 19,205 | +35% | 1 | 1 | 0% | 2,843 | 8,833 | +211% | 0 | 0 | — |
case-22 | fail→fail | 19,324 | 20,064 | +4% | 1 | 1 | 0% | 3,229 | 8,039 | +149% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +50 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.