
Marketing Demand Acquisition
- 121 installs
- 451 repo stars
- Updated July 21, 2026
- borghei/claude-skills
Plan and draft demand-generation campaigns—paid, organic, and partner-led—that fill the top of funnel with qualified traffic aligned to positioning and ICP.
About
marketing-demand-acquisition from borghei/claude-skills equips operators to design full-funnel demand programs: channel selection, creative angles, landing narratives, and measurement framing so Claude can help produce consistent acquisition assets after launch.
- Structures demand-gen strategy across paid and organic channels
- Aligns acquisition messaging with ICP and positioning
- Supports campaign briefs, hooks, and channel plans
- Bridges product value props to measurable funnel goals
- Useful for early-stage SaaS and ecommerce growth teams
Marketing Demand Acquisition by the numbers
- 121 all-time installs (skills.sh)
- Ranked #1,094 of 1,879 Marketing & SEO skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/borghei/claude-skills --skill marketing-demand-acquisitionAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 121 |
|---|---|
| repo stars | ★ 451 |
| Last updated | July 21, 2026 |
| Repository | borghei/claude-skills ↗ |
What it does
Plan and draft demand-generation campaigns—paid, organic, and partner-led—that fill the top of funnel with qualified traffic aligned to positioning and ICP.
Files
Marketing Demand & Acquisition
Acquisition playbook for Series A+ startups scaling internationally (EU/US/Canada) with hybrid PLG/Sales-Led motion.
Table of Contents
- Role Coverage
- Core KPIs
- Demand Generation Framework
- Paid Media Channels
- SEO Strategy
- Partnerships
- Attribution
- Tools
- References
---
Role Coverage
| 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 |
---
Core KPIs
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
---
Demand Generation Framework
Funnel Stages
| 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 $ |
Campaign Planning Workflow
1. Define objective, budget, duration, audience 2. Select channels based on funnel stage 3. Create campaign in HubSpot with proper UTM structure 4. Configure lead scoring and assignment rules 5. Launch with test budget, validate tracking 6. Validation: UTM parameters appear in HubSpot contact records
UTM Structure
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]---
Paid Media Channels
Channel Selection Matrix
| 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 |
LinkedIn Ads Setup
1. Create campaign group for initiative 2. Structure: Awareness → Consideration → Conversion campaigns 3. Target: Director+, 50-5000 employees, relevant industries 4. Start $50/day per campaign 5. Scale 20% weekly if CAC < target 6. Validation: LinkedIn Insight Tag firing on all pages
Google Ads Setup
1. Prioritize: Brand → Competitor → Solution → Category keywords 2. Structure ad groups with 5-10 tightly themed keywords 3. Create 3 responsive search ads per ad group (15 headlines, 4 descriptions) 4. Maintain negative keyword list (100+) 5. Start Manual CPC, switch to Target CPA after 50+ conversions 6. Validation: Conversion tracking firing, search terms reviewed weekly
Budget Allocation (Series A, $40k/month)
| Channel | Budget | Expected SQLs |
|---|---|---|
| $15k | 10 | |
| Google Search | $12k | 20 |
| Google Display | $5k | 5 |
| Meta | $5k | 8 |
| Partnerships | $3k | 5 |
See campaign-templates.md for detailed structures.
---
SEO Strategy
Technical Foundation Checklist
- [ ] XML sitemap submitted to Search Console
- [ ] Robots.txt configured correctly
- [ ] HTTPS enabled
- [ ] Page speed >90 mobile
- [ ] Core Web Vitals passing
- [ ] Structured data implemented
- [ ] Canonical tags on all pages
- [ ] Hreflang tags for international
- Validation: Run Screaming Frog crawl, zero critical errors
Keyword Strategy
| 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 |
On-Page Optimization
1. URL: Include primary keyword, 3-5 words 2. Title tag: Primary keyword + brand (60 chars) 3. Meta description: CTA + value prop (155 chars) 4. H1: Match search intent (one per page) 5. Content: 2000-3000 words for comprehensive topics 6. Internal links: 3-5 relevant pages 7. Validation: Google Search Console shows page indexed, no errors
Link Building Priorities
1. Digital PR (original research, industry reports) 2. Guest posting (DA 40+ sites only) 3. Partner co-marketing (complementary SaaS) 4. Community engagement (Reddit, Quora)
---
Partnerships
Partnership Tiers
| 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 |
Partnership Workflow
1. Identify partners with overlapping ICP, no competition 2. Outreach with specific integration/co-marketing proposal 3. Define success metrics, revenue model, term 4. Create co-branded assets and partner tracking 5. Enable partner sales team with demo training 6. Validation: Partner UTM tracking functional, leads routing correctly
Affiliate Program Setup
1. Select platform (PartnerStack, Impact, Rewardful) 2. Configure commission structure (20-30% recurring) 3. Create affiliate enablement kit (assets, links, content) 4. Recruit through outbound, inbound, events 5. Validation: Test affiliate link tracks through to conversion
See international-playbooks.md for regional tactics.
---
Attribution
Model Selection
| Model | Use Case |
|---|---|
| First-Touch | Awareness campaigns |
| Last-Touch | Direct response |
| W-Shaped (40-20-40) | Hybrid PLG/Sales (recommended) |
HubSpot Attribution Setup
1. Navigate to Marketing → Reports → Attribution 2. Select W-Shaped model for hybrid motion 3. Define conversion event (deal created) 4. Set 90-day lookback window 5. Validation: Run report for past 90 days, all channels show data
Weekly Metrics Dashboard
| 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.
---
Tools
scripts/
| Script | Purpose | Usage |
|---|---|---|
calculate_cac.py | Calculate blended and channel CAC | python scripts/calculate_cac.py --spend 40000 --customers 50 |
HubSpot Integration
- Campaign tracking with UTM parameters
- Lead scoring and MQL/SQL workflows
- Attribution reporting (multi-touch)
- Partner lead routing
See hubspot-workflows.md for workflow templates.
---
References
| 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 |
---
Channel Benchmarks (B2B SaaS Series A)
| Metric | Google Search | SEO | ||
|---|---|---|---|---|
| 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% |
---
MQL→SQL Handoff
SQL Criteria
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 actionSLA
| 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.
Proactive Triggers
- Over-relying on one channel -- Single-channel dependency is a business risk. Diversify acquisition across 3+ channels.
- No lead scoring -- Not all leads are equal. Route to revenue-operations for scoring setup.
- CAC exceeding LTV -- Demand gen is unprofitable. Optimize or cut underperforming channels.
- No nurture for non-ready leads -- 80% of leads aren't ready to buy. Nurture sequences convert them later.
Related Skills
- campaign-analytics: For measuring demand gen effectiveness with attribution and ROI.
- marketing-strategy-pmm: For positioning and GTM strategy that feeds demand gen campaigns.
- social-media-analyzer: For analyzing social channel performance within demand gen mix.
- revenue-operations: For pipeline analysis and forecast accuracy downstream of demand gen.
---
Troubleshooting
| 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 |
---
Success Criteria
- Blended CAC: Target <$300 for B2B SaaS Series A (2026 benchmark). Channel-specific targets: LinkedIn $150-400, Google Search $80-250, SEO/Organic $50-150, Email $20-80. Average B2B SaaS CAC reached $1,200 in 2026 for all segments; self-serve targets $100-500 while enterprise can reach $5,000+
- CAC Payback Period: Achieve payback within 6-12 months (2026 median). Elite performers reach payback in under 80 days. Payback exceeding 18 months signals unsustainable unit economics
- LTV:CAC Ratio: Maintain minimum 3:1 ratio. Below 2:1 requires immediate intervention. Top-quartile SaaS companies spend $1.10 or less to acquire $1 of new ARR; median spends $2 per $1 ARR
- MQL-to-SQL Conversion: Target 15-25% for Google Search, 12-22% for SEO, 10-20% for LinkedIn, 8-15% for email. Overall blended target >15%
- Pipeline Velocity: Close marketing-sourced deals within 60 days average. SDR response to MQL within 4 hours, AE demo booking within 24 hours, first demo within 3 business days
- Channel Diversification: No single channel should represent more than 40% of pipeline. Maintain active campaigns across minimum 3 channels. LinkedIn generates highest quality B2B leads (40% of marketers cite it as most effective)
- Marketing Budget Efficiency: SaaS companies under $10M ARR should spend 20-35% of revenue on marketing; $10-50M spend 18-25%; $50-100M spend 15-20%. For 2026, allocate 18-28% of revenue total with clear channel allocation ratios
---
Scope & Limitations
In Scope:
- Multi-channel demand generation strategy for B2B SaaS (Series A+) with hybrid PLG/sales-led motion
- Paid media channel selection, budget allocation, and CAC calculation (LinkedIn, Google Search, Google Display, Meta)
- SEO strategy including technical foundation, keyword strategy, on-page optimization, and link building priorities
- Partnership program planning (strategic integrations, affiliates, referrals, marketplace listings)
- Attribution model selection (first-touch, last-touch, W-shaped) with HubSpot integration guidance
- UTM structure standards and campaign tracking
- MQL/SQL criteria definition and handoff SLA
Out of Scope:
- Campaign creative design (ad copy, images, video production)
- Platform-specific campaign management UI guidance (use LinkedIn Campaign Manager, Google Ads, Meta Ads Manager directly)
- Product-led growth (PLG) product instrumentation (freemium flows, in-app upgrade prompts)
- Sales process optimization beyond MQL-to-SQL handoff (see revenue-operations or sales-success skills)
- Advanced predictive analytics or ML-based lead scoring
- International regulatory compliance for advertising (GDPR consent, CCPA disclosures)
- Brand marketing and awareness campaigns without direct pipeline attribution
Market Context (2026):
- CAC is rising 40-60% since 2023 across B2B SaaS
- Google Ads CPC increased 164% from 2019-2024; LinkedIn costs up 89%
- Privacy regulations and cookie deprecation are reducing attribution accuracy
- AI-enhanced bidding strategies (Google Performance Max, LinkedIn Maximize Conversions) are becoming standard
---
Integration Points
| 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 |
---
Tool Reference
calculate_cac.py
Type: CLI script (runs with example data or edit inline)
Usage:
python calculate_cac.pyNote: 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):
example_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):
- LinkedIn Ads: $150-$400
- Google Search: $80-$250
- SEO/Organic: $50-$150
- Partnerships: $100-$300
- Blended Target: <$300
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.
Attribution Guide
Multi-touch attribution setup, analysis, and reporting.
---
Table of Contents
- Attribution Models
- HubSpot Attribution Setup
- Google Analytics Configuration
- Reporting Dashboards
- A/B Testing Framework
---
Attribution Models
Model Comparison
| Model | Credit Distribution | Best For |
|---|---|---|
| First-Touch | 100% to first interaction | Awareness campaigns |
| Last-Touch | 100% to last interaction | Direct response, BOFU |
| Linear | Equal across all touchpoints | Simple full-funnel view |
| Time Decay | More credit to recent touches | Long sales cycles |
| W-Shaped | 40% first, 20% middle, 40% last | Hybrid PLG/Sales-Led |
Recommended Model: W-Shaped
For Series A hybrid motion:
- 40% credit to first touch (awareness)
- 20% distributed across middle touches
- 40% credit to last touch (conversion)
Rationale: Balances discovery and closing influence.
---
HubSpot Attribution Setup
Enable Attribution Reports
1. Navigate to Marketing → Reports → Attribution 2. Select attribution model (W-Shaped recommended) 3. Define conversion event (deal created, SQL stage) 4. Set lookback window (90 days typical)
Attribution Report Types
| Report | Purpose | Frequency |
|---|---|---|
| Revenue Attribution | Credit revenue to channels | Monthly |
| Content Attribution | Credit to content assets | Weekly |
| Campaign Attribution | Credit to campaigns | Per campaign |
Custom Attribution Report
Create: Marketing → Reports → Create Report
Metrics:
- Marketing-sourced pipeline $
- Marketing-influenced revenue
- CAC by channel
- ROAS by campaign
Dimensions:
- Channel (Organic, Paid, Email, Social, Referral)
- Campaign
- Region (US, EU, Canada)
- Funnel stage (TOFU, MOFU, BOFU)
Validation: Run report for past 90 days. Verify all channels appear with data.
---
Google Analytics Configuration
GA4 Events to Track
Engagement Events:
page_view (auto-tracked)
scroll (75% depth)
video_play (product demos)
file_download (whitepapers, eBooks)Conversion Events:
sign_up (free trial, account)
demo_request (calendar booking)
contact_form (inbound interest)
pricing_view (pricing page visit)Custom Dimensions
| Dimension | Source | Purpose |
|---|---|---|
| User Type | CRM sync | Free vs Paid |
| Plan Type | CRM sync | Starter, Pro, Enterprise |
| Lead Status | HubSpot | MQL, SQL, Customer |
| Campaign ID | UTM | HubSpot campaign |
GA4 + HubSpot Integration
1. Install HubSpot tracking code (includes GA4) 2. Or use Google Tag Manager for advanced tracking 3. Sync GA4 audiences → HubSpot lists for retargeting 4. Import GA4 conversions to Google Ads
Validation: Real-time report shows events firing. Conversion events marked correctly.
---
Reporting Dashboards
Weekly Performance Dashboard
| Metric | Purpose | Target |
|---|---|---|
| Visits | Traffic volume | +10% WoW |
| Unique visitors | Reach | +5% WoW |
| Bounce rate | Engagement | <50% |
| MQLs | Lead volume | Weekly target |
| SQLs | Pipeline | Weekly target |
| Conversion rate | Efficiency | >2% |
Monthly Executive Dashboard
| KPI | Formula | Target |
|---|---|---|
| Marketing-Sourced Pipeline | Sum of new pipeline $ | $X/month |
| Marketing-Sourced Revenue | Closed-won from marketing | $Y/month |
| Blended CAC | Total spend / customers | <$Z |
| MQL→SQL Rate | SQLs / MQLs | >15% |
| Pipeline Velocity | Avg days in pipeline | <60 days |
| ROMI | Revenue / Marketing spend | >3:1 |
Dashboard Build Process
1. Define KPIs with leadership 2. Create data sources in HubSpot 3. Build visualizations (charts, tables) 4. Set up automated refresh 5. Schedule weekly/monthly distribution
Validation: Dashboard shows last 7 days data. All metrics calculating correctly.
---
A/B Testing Framework
ICE Prioritization
Formula: ICE = (Impact × Confidence × Ease) ÷ 3
| Factor | Rating | Description |
|---|---|---|
| Impact | 1-10 | Effect on primary metric |
| Confidence | 1-10 | Certainty of success |
| Ease | 1-10 | Implementation difficulty |
Test Template
Hypothesis: [Adding a case study carousel to pricing will
increase demo requests by 20%]
Metric: [Demo requests from /pricing page]
Sample Size: [1000 visitors per variant]
Duration: [2 weeks or until significance]
Success Criteria: [20% lift, 95% confidence]
Variant A (Control): [Current pricing page]
Variant B (Treatment): [Pricing page + case study carousel]
Tools: [HubSpot A/B test or Google Optimize]Statistical Requirements
- Minimum confidence: 95%
- Minimum sample: 1000 visitors per variant
- Minimum duration: 2 weeks
- Do not stop tests early (false positives)
Common Test Categories
Landing Page:
- Headline variations
- CTA copy and color
- Form length
- Social proof placement
- Hero image type
Ad Creative:
- Format (static vs video)
- Messaging angle
- Audience targeting
- Landing page destination
Email:
- Subject line length
- Personalization depth
- Send time
- CTA placement
Test Velocity Target
Series A: 4-6 tests per month
- Realistic win rate: 30-40%
- Document all results (wins and losses)
- Build testing knowledge base
Validation: Test reaches statistical significance before declaring winner.
Campaign Templates
Ready-to-use campaign briefs and structures for LinkedIn, Google, and Meta.
---
Table of Contents
- Campaign Brief Template
- LinkedIn Ads Structure
- Google Ads Structure
- Meta Ads Structure
- Ad Copy Frameworks
---
Campaign Brief Template
Use for every campaign:
Campaign Name: [Q2-2025-LinkedIn-ABM-Enterprise]
Objective: [Generate 50 SQLs from Enterprise accounts ($50k+ ACV)]
Budget: [$15k/month]
Duration: [90 days]
Channels: [LinkedIn Ads, Retargeting, Email]
Audience: [Director+ at SaaS companies, 500-5000 employees, EU/US]
Offer: [Gated Industry Benchmark Report]
Success Metrics:
- Primary: 50 SQLs, <$300 CPO
- Secondary: 500 MQLs, 10% MQL→SQL rate, 40% email open rate
HubSpot Setup:
- Campaign ID: [create in HubSpot]
- Lead scoring: +20 for download, +30 for demo request
- Attribution: First-touch + Multi-touch
Handoff Protocol:
- SQL criteria: Title + Company size + Budget confirmed
- Routing: Enterprise SDR team via HubSpot workflow
- SLA: 4-hour response timeValidation: Campaign appears in HubSpot with all assets tagged.
---
LinkedIn Ads Structure
Account Hierarchy
Account
└─ Campaign Group: [Q2-2025-Enterprise-ABM]
├─ Campaign 1: [Awareness - Thought Leadership]
│ ├─ Ad Set: [CTO/VP Eng, US, Tech Companies]
│ └─ Creatives: [3 carousel posts, 2 video ads]
├─ Campaign 2: [Consideration - Product Education]
│ ├─ Ad Set: [Engaged audience, retargeting]
│ └─ Creatives: [2 lead gen forms, 1 landing page]
└─ Campaign 3: [Conversion - Demo Requests]
├─ Ad Set: [Website visitors, content downloaders]
└─ Creatives: [Direct demo CTA, case study]Targeting Settings
| Parameter | Series A Sweet Spot |
|---|---|
| Company Size | 50-5000 employees |
| Job Titles | Director+, VP+, C-level |
| Industries | Software, SaaS, Tech Services |
| Budget | Start $50/day per campaign |
Scaling Rules
- CAC < target → Increase budget 20% weekly
- CAC > target → Pause, optimize, relaunch
- Scale 20% weekly maximum to maintain performance
Lead Gen Forms vs Landing Pages
| Type | Conversion | Quality | Use Case |
|---|---|---|---|
| Lead Gen Forms | 2-3x higher | Lower | TOFU/MOFU |
| Landing Pages | Lower | Higher | BOFU/demos |
Validation: LinkedIn Insight Tag firing. Matched audiences syncing.
---
Google Ads Structure
Campaign Priority
1. Search - Brand (highest priority, protect brand terms) 2. Search - Competitor (steal market share) 3. Search - Solution (problem-aware buyers) 4. Search - Product Category (earlier stage) 5. Display - Retargeting (re-engage warm traffic)
Search Campaign Template
Campaign: [Search-Solution-Keywords]
├─ Ad Group: [project management software]
│ ├─ Keywords:
│ │ - "project management software" [Phrase]
│ │ - "best project management tool" [Phrase]
│ │ - +project +management +solution [Broad Match Modifier]
│ └─ Ads: [3 responsive search ads]
│
└─ Ad Group: [team collaboration tools]
├─ Keywords: [5-10 tightly themed keywords]
└─ Ads: [3 responsive search ads]Keyword Strategy
| Type | Match | Bid Priority |
|---|---|---|
| Brand Terms | Exact | High - protect brand |
| Competitor Terms | Phrase | Medium - comparison |
| Solution Terms | Phrase | Medium - category |
| Problem Terms | Broad | Lower - education |
Negative Keywords (Maintain 100+)
free, cheap, jobs, career, reviews, salary, login, support,
download, tutorial, course, certification, example, templateBid Strategy Progression
1. New campaigns: Manual CPC (control) 2. After 50+ conversions: Target CPA 3. After 100+ conversions: Maximize Conversions with tCPA 4. EU markets: Bid 15-20% higher for same quality
Validation: Conversion tracking firing. Search terms report reviewed weekly.
---
Meta Ads Structure
When to Use Meta
| Scenario | Meta | |
|---|---|---|
| ACV <$10k | ✅ | ❌ |
| Visual product | ✅ | ❌ |
| SMB audience | ✅ | ❌ |
| Enterprise | ❌ | ✅ |
Campaign Template
Campaign Objective: [Conversions]
├─ Ad Set 1: [Lookalike - 1% of converters]
│ └─ Placement: [Feed + Stories, Auto]
├─ Ad Set 2: [Interest - Business Software]
│ └─ Placement: [Feed only]
└─ Ad Set 3: [Retargeting - Website 30d]
└─ Placement: [All placements]Creative Best Practices
- Video format: 1:1 or 9:16 for Stories
- First 3 seconds: Hook with problem or result
- Show product UI in action
- Add captions (85% watch muted)
- Test 3-5 variants per campaign
Validation: Meta Pixel events firing. Conversion values passing correctly.
---
Ad Copy Frameworks
LinkedIn Thought Leadership
[Industry insight or contrarian take]
[Supporting data point or experience]
[Call to discuss or engage]
#RelevantHashtag #IndustryLinkedIn Social Proof
[Customer result with specific numbers]
"[Customer quote]"
- [Name, Title, Company]
[Soft CTA: See how →]Google Responsive Search Ads
Headlines (15 required):
- H1-3: Value props (Save 10 hours/week, Trusted by 500+ teams)
- H4-6: Features (AI-powered, Real-time sync, Mobile app)
- H7-9: Social proof (4.8★ G2 rating, Used by Microsoft)
- H10-12: CTAs (Start free trial, Book demo, See pricing)
- H13-15: Dynamic keyword insertion
Descriptions (4 required):
- D1: Primary value prop + CTA (30-60 chars)
- D2: Feature list + differentiator (60-90 chars)
- D3: Social proof + urgency (45-90 chars)
- D4: Backup generic (60-90 chars)
Validation: Ad strength score of "Excellent" before launch.
HubSpot Workflow Templates
Pre-built workflow configurations for lead scoring, nurturing, and assignment.
---
Table of Contents
- Campaign Tracking Setup
- Lead Scoring Configuration
- MQL to SQL Workflow
- Partner Lead Tracking
- Nurture Sequences
---
Campaign Tracking Setup
Create Campaign in HubSpot
1. Navigate to Marketing → Campaigns → Create Campaign 2. Name using convention: Q[N]-[YEAR]-[CHANNEL]-[CAMPAIGN-TYPE]
- Example:
Q2-2025-LinkedIn-ABM-Enterprise
3. Tag all assets (landing pages, emails, ads) with campaign ID
UTM Parameter Structure
utm_source={channel} // linkedin, google, facebook
utm_medium={type} // cpc, display, email, organic
utm_campaign={campaign-id} // q2-2025-linkedin-abm-enterprise
utm_content={variant} // ad-variant-a, email-1
utm_term={keyword} // [for paid search only]Validation: Verify UTM parameters appear in HubSpot contact records after test submission.
---
Lead Scoring Configuration
Navigate to Configuration
Settings → Marketing → Lead Scoring
Scoring Rules
| Action | Points | Rationale |
|---|---|---|
| Content download | +10 to +20 | Based on content depth |
| Demo request | +30 | High intent signal |
| Pricing page visit | +15 | Commercial intent |
| Webinar attendance | +20 | Engaged prospect |
| Email open | +2 | Basic engagement |
| Email click | +5 | Active interest |
Channel Quality Modifiers
| Source | Points | Rationale |
|---|---|---|
| +5 | Professional context | |
| Google Search | +10 | Active search intent |
| Organic | +15 | Self-discovery |
| Referral | +20 | Pre-qualified |
Validation: Test lead scoring by creating a test contact and triggering each action.
---
MQL to SQL Workflow
SQL Definition Criteria
Required (all must be true):
✅ Job title: Director+ (or Budget Authority confirmed)
✅ Company size: 50-5000 employees
✅ Budget: $10k+ annual
✅ Timeline: Buying within 90 days
✅ Engagement: Demo requested OR High intent actionWorkflow Configuration
1. Trigger: Lead score reaches MQL threshold (>75 points) 2. Action 1: Send automated email to SDR with lead details 3. Action 2: Create task for SDR qualification call 4. Branch Logic:
- If qualified → Update lifecycle stage to SQL, assign to AE
- If not qualified → Move to nurture list, reduce lead score by 30
SLA Configuration
| Handoff | Target | Escalation |
|---|---|---|
| SDR responds to MQL | 4 hours | Manager notification |
| AE books demo with SQL | 24 hours | Director notification |
| First demo scheduled | 3 business days | VP notification |
Validation: Test workflow with a sample lead. Verify notifications trigger correctly.
---
Partner Lead Tracking
Create Partner Property
1. Settings → Properties → Create Property 2. Property name: Partner Source 3. Type: Dropdown select 4. Values: Partner A, Partner B, Affiliate Network, Direct
Partner UTM Configuration
Partner links: ?utm_source=partner-name&utm_medium=referralLead Assignment Workflow
1. Trigger: Contact property Partner Source is set 2. Action: Assign to Partner Manager 3. Notification: Slack alert when partner lead arrives
Partner Reporting Dashboard
Create custom report: Marketing → Reports → Create Report
- Metrics: Leads, Pipeline, Revenue by Partner Source
- Dimensions: Partner Name, Time Period
Validation: Submit test lead with partner UTM. Verify property populates and routing works.
---
Nurture Sequences
Lost Opportunity Recycle
Trigger: Deal stage = Closed Lost
Sequence: 1. Day 0: Add to nurture list, remove from active campaigns 2. Day 30: Educational content email 3. Day 60: Industry insights email 4. Day 90: Re-engagement offer email 5. Month 6: SDR re-qualification task
TOFU to MOFU Progression
Trigger: Contact downloads 2+ content pieces
Sequence: 1. Day 0: Thank you email with related content 2. Day 3: Case study email 3. Day 7: Webinar invitation 4. Day 14: Demo offer (soft CTA)
Closed Lost Reason Tracking
Configure deal properties to capture:
- Price too high
- Missing features
- Chose competitor
- No budget
- Bad timing
- Champion left company
Use data to inform: Product roadmap, pricing adjustments, competitive positioning.
International Market Playbooks
Market-specific tactics for EU, US, and Canada expansion.
---
Table of Contents
---
EU Market Entry
Compliance Requirements
| Requirement | Implementation |
|---|---|
| GDPR consent | Double opt-in for email |
| Cookie consent | Explicit consent banner |
| Data storage | EU data center option |
| Privacy policy | EU-specific language |
HubSpot Configuration:
- Enable double opt-in in Forms settings
- Configure consent tracking properties
- Set up GDPR deletion workflows
Localization Priority
| Language | Market Priority | Revenue Potential |
|---|---|---|
| German (DE) | High | Largest EU economy |
| French (FR) | High | Second largest EU |
| Spanish (ES) | Medium | Growing tech sector |
| Dutch (NL) | Medium | English proficiency |
| Italian (IT) | Lower | Later expansion |
Channel Mix (EU)
| Channel | Budget % | Rationale |
|---|---|---|
| 40% | Primary B2B channel | |
| Google Ads | 25% | High intent capture |
| SEO | 20% | Long-term investment |
| Partnerships | 15% | Local credibility |
EU Messaging Adjustments
- More formal tone than US
- Focus on data security and compliance
- Emphasize local customer references
- Include EU headquarters or presence
- Display prices in EUR
Validation: Test landing pages with EU VPN. Verify consent flows work correctly.
---
US Market Entry
Market Characteristics
| Aspect | US Approach |
|---|---|
| Messaging | Direct, ROI-focused |
| Tone | Less formal than EU |
| Sales cycle | Faster decision-making |
| Proof points | Dollar impact, not features |
Channel Mix (US)
| Channel | Budget % | Rationale |
|---|---|---|
| Google Ads | 35% | High commercial intent |
| 30% | B2B targeting | |
| SEO | 20% | Competitive necessity |
| Partnerships | 15% | Industry associations |
Partner Ecosystem
| Partner Type | Examples |
|---|---|
| Review sites | G2, Capterra, TrustRadius |
| Industry associations | SaaStr, ProductLed |
| Integration partners | Salesforce, HubSpot |
| Channel partners | VARs, consultants |
Content Adjustments
- Case studies with $ impact metrics
- Faster, more aggressive CTAs
- Video testimonials with customers
- Comparison pages (vs. competitors)
Validation: US-based speed test. Payment processing in USD functional.
---
Canada Market Entry
Market Characteristics
| Aspect | Canada Approach |
|---|---|
| Language | English + French (Quebec) |
| Regulation | PIPEDA compliance |
| Messaging | Mix of US and EU styles |
| Pricing | CAD display preferred |
Regional Considerations
| Region | Language | Focus |
|---|---|---|
| Ontario | English | Tech hub, Toronto |
| British Columbia | English | Vancouver tech scene |
| Quebec | French | Requires localization |
| Alberta | English | Energy sector |
Channel Mix (Canada)
| Channel | Budget % | Rationale |
|---|---|---|
| Google Ads | 35% | Primary acquisition |
| 30% | Professional targeting | |
| SEO | 20% | Local content |
| Partnerships | 15% | Local associations |
Validation: French Quebec landing page tested. CAD pricing displays correctly.
---
Budget Allocation by Region
Series A Recommended Split
| Region | Budget % | Expected CAC |
|---|---|---|
| US | 50% | $150-300 |
| EU | 35% | $200-400 |
| Canada | 15% | $175-350 |
Channel by Region Matrix
| Channel | US | EU | Canada |
|---|---|---|---|
| 30% | 40% | 30% | |
| 35% | 25% | 35% | |
| SEO | 20% | 20% | 20% |
| Partners | 15% | 15% | 15% |
Scaling Criteria
Expand regional budget when:
- CAC < 80% of target for 4 consecutive weeks
- MQL→SQL rate > regional benchmark
- Sales team has regional capacity
---
Localization Checklist
Website Localization
- [ ] Translate navigation and UI elements
- [ ] Localize pricing (currency, formatting)
- [ ] Adapt case studies to regional references
- [ ] Update screenshots with localized UI
- [ ] Configure hreflang tags correctly
- [ ] Submit to regional search consoles
Content Localization
- [ ] Translate (don't just localize) key pages
- [ ] Adapt idioms and cultural references
- [ ] Update date formats (DD/MM/YYYY vs MM/DD/YYYY)
- [ ] Adjust number formatting (1,000 vs 1.000)
- [ ] Use regional spelling (optimise vs optimize)
Campaign Localization
- [ ] Translate ad copy (not just translate, adapt)
- [ ] Create regional landing pages
- [ ] Set up regional tracking parameters
- [ ] Configure regional lead routing
- [ ] Align with regional sales hours
Legal Localization
- [ ] GDPR compliance (EU)
- [ ] PIPEDA compliance (Canada)
- [ ] Cookie consent mechanisms
- [ ] Privacy policy translations
- [ ] Terms of service updates
Validation: Native speaker review of all localized content before launch.
#!/usr/bin/env python3
"""
CAC (Customer Acquisition Cost) Calculator
Calculate blended and channel-specific CAC for marketing campaigns.
Supports multiple time periods and channel breakdowns.
"""
import sys
from typing import Dict, List
def calculate_cac(total_spend: float, customers_acquired: int) -> float:
"""Calculate basic CAC"""
if customers_acquired == 0:
return 0.0
return round(total_spend / customers_acquired, 2)
def calculate_channel_cac(channel_data: List[Dict]) -> Dict:
"""
Calculate CAC per channel
Args:
channel_data: List of dicts with 'channel', 'spend', 'customers' keys
Returns:
Dict with channel CAC breakdown and blended CAC
"""
results = {}
total_spend = 0
total_customers = 0
for channel in channel_data:
name = channel['channel']
spend = channel['spend']
customers = channel['customers']
cac = calculate_cac(spend, customers)
results[name] = {
'spend': spend,
'customers': customers,
'cac': cac
}
total_spend += spend
total_customers += customers
results['blended'] = {
'total_spend': total_spend,
'total_customers': total_customers,
'blended_cac': calculate_cac(total_spend, total_customers)
}
return results
def print_results(results: Dict):
"""Pretty print CAC results"""
print("\n" + "="*60)
print("CAC CALCULATION RESULTS")
print("="*60 + "\n")
for channel, data in results.items():
if channel == 'blended':
print("-"*60)
print(f"BLENDED CAC")
print(f" Total Spend: ${data['total_spend']:,.2f}")
print(f" Total Customers: {data['total_customers']:,}")
print(f" Blended CAC: ${data['blended_cac']:,.2f}")
else:
print(f"{channel.upper()}")
print(f" Spend: ${data['spend']:,.2f}")
print(f" Customers: {data['customers']:,}")
print(f" CAC: ${data['cac']:,.2f}")
print()
def main():
# Example data - replace with your actual numbers
example_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},
]
print("Marketing CAC Calculator")
print("Edit the script to input your actual channel data\n")
results = calculate_channel_cac(example_data)
print_results(results)
# CAC benchmarks
print("\n" + "="*60)
print("B2B SAAS BENCHMARKS (Series A)")
print("="*60)
print("LinkedIn Ads: $150-$400")
print("Google Search: $80-$250")
print("SEO/Organic: $50-$150")
print("Partnerships: $100-$300")
print("Blended Target: <$300")
if __name__ == "__main__":
main()