
Marketing Demand Acquisition
- 813 installs
- 23.5k repo stars
- Updated July 17, 2026
- alirezarezvani/claude-skills
marketing-demand-acquisition is a Claude Code skill that builds demand generation campaigns, paid ad optimization, SEO plans, and partnership programs for developers and growth teams scaling SaaS acquisition internationa
About
marketing-demand-acquisition is a Claude Code skill from alirezarezvani/claude-skills for planning startup and Series A+ demand generation across LinkedIn Ads, Google Ads, Meta Ads, SEO, and co-marketing partnerships. The skill covers CAC analysis, MQL/SQL workflows, attribution modeling, technical SEO, and hybrid PLG plus sales-led motions targeting EU, US, and Canada markets. It triggers on demand gen, PPC optimization, lead generation, pipeline generation, and marketing budget planning. Developers and technical founders reach for marketing-demand-acquisition when they need structured acquisition strategy—not ad-hoc channel experiments—before scaling paid spend or partnership programs.
- Generates full demand generation frameworks with core KPIs and channel-specific playbooks
- Optimizes paid media across LinkedIn Ads, Google Ads, and Meta Ads with CAC analysis
- Develops technical SEO strategies and co-marketing partnership programs for international markets
- Structures MQL/SQL workflows, attribution modeling, and hybrid PLG/Sales-Led acquisition motions
- Delivers ready-to-execute campaign plans, budget structures, and performance tracking systems
Marketing Demand Acquisition by the numbers
- 813 all-time installs (skills.sh)
- +6 installs in the week ending Jul 29, 2026 (Skillselion tracking)
- Ranked #544 of 1,879 Marketing & SEO skills by installs in the Skillselion catalog
- Security screen: MEDIUM risk (skills.sh audit)
- Data as of Jul 31, 2026 (Skillselion catalog sync)
npx skills add https://github.com/alirezarezvani/claude-skills --skill marketing-demand-acquisitionAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 813 |
|---|---|
| repo stars | ★ 23.5k |
| Security audit | 2 / 3 scanners passed |
| Last updated | July 17, 2026 |
| Repository | alirezarezvani/claude-skills ↗ |
How do you plan multi-channel demand generation?
Create demand generation campaigns, optimize paid ad spend across LinkedIn Google and Meta, develop SEO strategies, and structure partnership programs.
Who is it for?
Technical founders and growth engineers at SaaS companies scaling paid and organic acquisition with measurable pipeline targets.
Skip if: Developers building product features or ad platform API integrations who need implementation code rather than campaign strategy.
When should I use this skill?
The user asks about demand generation, PPC optimization, lead pipelines, CAC analysis, or startup marketing budgets across multiple channels.
What you get
Channel plans, CAC models, MQL/SQL workflows, attribution frameworks, SEO roadmaps, and partnership program structures.
- Multi-channel acquisition plan
- CAC and attribution model
- MQL/SQL workflow design
Files
Marketing Demand & Acquisition
Acquisition playbook for Series A+ startups scaling internationally (EU/US/Canada) with hybrid PLG/Sales-Led motion.
Table of Contents
- Core KPIs
- Demand Generation Framework
- Paid Media Channels
- SEO Strategy
- Partnerships
- Attribution
- Tools
- References
---
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} // {qN-yyyy}-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 (no args — edit the example_data channel table in main() with your spend/customer numbers first) |
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.
- No lead scoring → Not all leads are equal. Route to revenue-operations for scoring.
- CAC exceeding LTV → Demand gen is unprofitable. Optimize or cut channels.
- No nurture for non-ready leads → 80% of leads aren't ready to buy. Nurture converts them later.
Related Skills
- paid-ads: For executing paid acquisition campaigns.
- content-strategy: For content-driven demand generation.
- email-sequence: For nurture sequences in the demand funnel.
- campaign-analytics: For measuring demand gen effectiveness.
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 argparse
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():
# TODO: accept channel data via --file <json> or stdin so the tool can be
# automated without hand-editing this list (known limitation).
# 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__":
parser = argparse.ArgumentParser(
description="Calculate blended and channel-specific CAC.",
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog="Current limitation: channel data is the `example_data` list in "
"main() — edit it with your spend/customer numbers, then run with "
"no args. CLI input (--file <json> / stdin) is a planned "
"enhancement; until then this tool is not scriptable.")
parser.parse_args()
main()
Related skills
How it compares
Pick marketing-demand-acquisition for full-funnel demand planning; use narrower SEO or landing-page skills when only organic or on-site optimization is needed.
FAQ
What channels does marketing-demand-acquisition cover?
marketing-demand-acquisition plans acquisition across Google Ads, LinkedIn Ads, Meta Ads, technical SEO, and co-marketing partnerships. It also covers CAC analysis, MQL/SQL workflows, and attribution for hybrid PLG and sales-led motions.
Is marketing-demand-acquisition for early-stage startups?
marketing-demand-acquisition targets Series A+ startups scaling internationally in EU, US, and Canada. It assumes existing product-market fit and focuses on structured pipeline generation rather than initial idea validation.
Does marketing-demand-acquisition write ad platform code?
marketing-demand-acquisition delivers campaign strategy, budget frameworks, and workflow design—not API integrations or ad-serving code. Use it when planning channels, CAC targets, and attribution before executing in ad managers.
Is Marketing Demand Acquisition safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.