# Campaign Plan — Outreach Campaign Strategy & Calendar

Plan and structure lead generation campaigns with targeting criteria, channel strategy, content calendar, and success metrics.

## When This Skill Activates

Trigger phrases: "plan a campaign", "campaign strategy for [market]", "outreach plan for [industry]", "plan lead gen for [region]", "campaign targeting [segment]"

## Campaign Planning Framework

### Step 1: Define Campaign Parameters

Gather or infer:
- **Target market**: industry, geography, company size
- **Objective**: awareness, lead gen, meeting booking, demo requests
- **Timeline**: start date, duration, cadence
- **Budget constraints**: tool costs, send limits
- **Available channels**: email (SMTP), CRM (HubSpot/Pipedrive), LinkedIn, CSV export

### Step 2: Audience Segmentation

Using lead_pipeline scrapers:
| Segment | Registry Source | Filters |
|---------|----------------|---------|
| UK Tech Startups | UK Companies House | SIC: 62xxx, incorporated after 2020 |
| Qatar Financial Services | Qatar QFC/QFCRA | Financial services category |
| UK Professional Services | UK Companies House | SIC: 69-74xxx, active status |
| Qatar Consulting | Qatar Chamber | Consulting category |

For each segment, define:
- Estimated volume (max_results_per_source)
- Enrichment priority (Tavily vs Google vs DuckDuckGo)
- AI provider for email composition
- Personalization angle and value proposition

### Step 3: Channel & Sequence Strategy

```markdown
## Campaign: [Name]

### Targeting
| Parameter | Value |
|-----------|-------|
| Market | [Industry / Geography] |
| Company size | [Range] |
| Decision-maker | [Title / Role] |
| Registry sources | [UK CH / Qatar / Both] |
| SIC codes | [If applicable] |
| Incorporation after | [Date filter] |

### Channel Mix
| Channel | Purpose | Volume | Timing |
|---------|---------|--------|--------|
| Email (SMTP) | Primary outreach | [N]/day | Day 0 |
| LinkedIn | Warm follow-up | [N]/day | Day 3 |
| Email follow-up | Re-engagement | [N]/day | Day 7 |
| Phone (if enriched) | High-value targets | [N]/day | Day 10 |

### Content Calendar
| Week | Activity | Content | Owner |
|------|----------|---------|-------|
| 1 | Scraping + Enrichment | Pipeline setup | Automated |
| 1 | Email drafting | Personalized outreach | AI Composer |
| 2 | Initial send | Batch 1 ([N] leads) | EmailSender |
| 2 | LinkedIn outreach | Connection requests | Manual |
| 3 | Follow-up sends | Batch 1 follow-ups | EmailSender |
| 3 | Initial send | Batch 2 ([N] leads) | EmailSender |
| 4 | Analysis & optimization | Review metrics | Manual |

### Success Metrics
| Metric | Target | Measurement |
|--------|--------|-------------|
| Leads scraped | [N] | Pipeline count |
| Enrichment rate | [%] | Leads with email / total |
| Email open rate | [%] | If tracking enabled |
| Reply rate | [%] | Manual tracking |
| Meeting booked | [N] | CRM tracking |
| Cost per lead | [$] | Total cost / meetings |
```

### Step 4: Pipeline Configuration

Map campaign plan to `PipelineConfig`:
```python
# Suggested CLI command for this campaign
python -m lead_pipeline run \
  --uk "[query1],[query2]" \
  --qatar "[query1]" \
  --provider anthropic \
  --crm smtp \
  --sender-name "[Name]" \
  --sender-company "[Company]" \
  --value-prop "[Value proposition]" \
  --dry-run  # Remove when ready to send
```

## Integration with Lead Pipeline

- Maps directly to `Pipeline.run()` parameters
- Uses `ScraperConfig` for targeting filters (SIC codes, dates)
- Aligns with `ComposerConfig` for tone and language
- Respects `CRMConfig.daily_send_limit` and `send_delay`
- GDPR audit trail tracks campaign origin

## Key Rules
- ALWAYS start with dry-run before live sends
- Respect daily_send_limit — never recommend exceeding it
- Stagger sends across days for natural delivery patterns
- Plan enrichment before composition — can't personalize without data
- Include a measurement plan — campaigns without metrics are vanity projects
