13 KiB
13 KiB
🏭 Spark Content Factory - Implementation Plan
Overview
Transform the three intelligence files into a fully automated content generation system that creates hyper-personalized articles by combining:
- WHO (Avatar + Niche)
- WHERE (City + Wealth Cluster)
- WHAT (Offer Block + Spintax)
📊 Architecture Diagram
┌─────────────────────────────────────────────────────────────────────┐
│ DIRECTUS SCHEMA │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ SITES │────▶│ CAMPAIGNS │────▶│ ARTICLES │ │
│ │ (Your Sites)│ │(What to build│ │(Generated) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │ │ │ │
│ │ ┌──────┴──────┐ │ │
│ │ ▼ ▼ ▼ │
│ │ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │ │ AVATARS │ │ NICHES │ │ LOCATIONS │ │
│ │ │ (Who) │ │ (Industry)│ │ (Where) │ │
│ │ └───────────┘ └───────────┘ └───────────┘ │
│ │ │ │ │ │
│ │ └──────┬──────┘ │ │
│ │ ▼ │ │
│ │ ┌─────────────┐ │ │
│ └──────────▶│OFFER BLOCKS │◀─────────────┘ │
│ │(Messaging) │ │
│ └─────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ SEO ENGINE │ │
│ │• Meta Title │ │
│ │• Meta Desc │ │
│ │• Schema.org │ │
│ └─────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
📁 Directus Collections to Create
1. avatars (FROM: avatar_intelligence.json)
| Field | Type | Description |
|---|---|---|
| id | uuid | Primary key |
| slug | string | scaling_founder, elite_consultant, etc. |
| base_name | string | "The Tech Titan / Scaling Founder" |
| wealth_cluster | string | "Tech-Native" |
| psychographics | text | Long description of mindset |
| tech_stack | json | ["Zapier", "Slack", "AWS"] |
| pronoun_male | string | "he" |
| pronoun_female | string | "she" |
| identity_male | string | "bottlenecked technical founder" |
| identity_female | string | "bottlenecked technical founder" |
2. niches (FROM: avatar_intelligence.json → business_niches)
| Field | Type | Description |
|---|---|---|
| id | uuid | Primary key |
| name | string | "Vertical SaaS (B2B)" |
| slug | string | "vertical-saas-b2b" |
| avatar | m2o → avatars | Which avatar owns this niche |
| keywords | json | SEO keywords for this niche |
| pain_points | json | Common pains in this niche |
3. wealth_clusters (FROM: geo_intelligence.json)
| Field | Type | Description |
|---|---|---|
| id | uuid | Primary key |
| slug | string | tech_native, financial_power |
| name | string | "The Silicon Valleys" |
| tech_adoption_score | integer | 1-10 |
| primary_need | string | "Advanced Custom Automation & SaaS" |
| matching_avatars | m2m → avatars | Which avatars match this cluster |
4. elite_cities (FROM: geo_intelligence.json → cities)
| Field | Type | Description |
|---|---|---|
| id | uuid | Primary key |
| name | string | "Atherton" |
| state | string | "CA" |
| full_name | string | "Atherton, CA" |
| wealth_cluster | m2o → wealth_clusters | Which cluster |
| landmarks | json | Local landmarks for spintax |
5. offer_blocks (FROM: offer_engine.json)
| Field | Type | Description |
|---|---|---|
| id | uuid | Primary key |
| slug | string | block_01_zapier_fix |
| title | string | "The $1,000 Fix" |
| hook | text | "Stop the bleeding in your {{NICHE}} business." |
| spintax | text | Full spintax template |
| avatar_pains | json | { avatar_slug: [pain1, pain2, pain3] } |
| meta_title_template | string | "{{OFFER}} for {{NICHE}} in {{CITY}}" |
| meta_desc_template | text | SEO description template |
6. content_campaigns (User creates these)
| Field | Type | Description |
|---|---|---|
| id | uuid | Primary key |
| site | m2o → sites | Which site to publish to |
| name | string | "Q1 2025 - Tech Founders" |
| target_avatars | m2m → avatars | Which avatars to target |
| target_niches | m2m → niches | Which niches |
| target_cities | m2m → elite_cities | Which cities |
| offer_blocks | m2m → offer_blocks | Which offers to use |
| velocity_mode | select | RAMP_UP, STEADY, SPIKES |
| target_count | integer | How many articles |
7. generated_articles (Factory output)
| Field | Type | Description |
|---|---|---|
| id | uuid | Primary key |
| site | m2o → sites | Published to this site |
| campaign | m2o → content_campaigns | Source campaign |
| avatar | m2o → avatars | Target avatar |
| niche | m2o → niches | Target niche |
| city | m2o → elite_cities | Target city |
| offer | m2o → offer_blocks | Offer used |
| headline | string | Generated headline |
| meta_title | string | SEO title (60 chars) |
| meta_description | string | SEO desc (160 chars) |
| full_html_body | text | The article content |
| schema_json | json | Schema.org markup |
| sitemap_status | select | ghost, queued, indexed |
| date_published | datetime | Backdate or now |
🔄 How It All Connects
Page Generation Flow
USER SELECTS:
┌─────────────────────────────────────────────┐
│ Site: la.christopheramaya.work │
│ Avatar: scaling_founder │
│ Niche: Vertical SaaS (B2B) │
│ City: Palo Alto, CA │
│ Offer: The $1,000 Fix │
│ Count: 50 articles │
└─────────────────────────────────────────────┘
│
▼
FACTORY GENERATES:
┌─────────────────────────────────────────────┐
│ FOR EACH COMBINATION: │
│ │
│ 1. Pull avatar psychographics │
│ 2. Pull niche-specific pains │
│ 3. Pull city landmarks │
│ 4. Pull offer spintax │
│ 5. Replace all {{TOKENS}} │
│ 6. Spin the spintax │
│ 7. Generate SEO meta │
│ 8. Create schema.org JSON │
│ 9. Save to generated_articles │
│ 10. Apply Gaussian scheduling │
└─────────────────────────────────────────────┘
Token Replacement Map
| Token | Source | Example |
|---|---|---|
{{NICHE}} |
niches.name | "Vertical SaaS" |
{{CITY}} |
elite_cities.name | "Palo Alto" |
{{STATE}} |
elite_cities.state | "CA" |
{{AVATAR}} |
avatars.identity_male | "bottlenecked technical founder" |
{{PRONOUN}} |
avatars.pronoun_male | "he" |
{{TECH_STACK}} |
avatars.tech_stack[random] | "Zapier" |
{{LANDMARK}} |
elite_cities.landmarks[random] | "Stanford University" |
{{AGENCY_NAME}} |
sites.name | "Spark Digital" |
{{AGENCY_URL}} |
sites.domain | "sparkdigital.com" |
{{CURRENT_YEAR}} |
context | "2024" |
{{WEALTH_VIBE}} |
wealth_clusters.primary_need | "Advanced Custom Automation" |
📋 SEO Meta Generation
For each article, auto-generate:
Meta Title (60 chars)
{{OFFER_TITLE}} for {{NICHE}} Businesses in {{CITY}}, {{STATE}}
Example: "The $1,000 Fix for Vertical SaaS Businesses in Palo Alto, CA"
Meta Description (160 chars)
{{AVATAR_IDENTITY}} in {{CITY}}? {{OFFER_HOOK}} We {{SOLUTION}}. Get your free audit today.
Example: "Bottlenecked technical founder in Palo Alto? Stop the bleeding in your SaaS business. We rebuild broken automation. Get your free audit today."
Schema.org JSON-LD
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "{{META_TITLE}}",
"description": "{{META_DESC}}",
"author": {
"@type": "Organization",
"name": "{{AGENCY_NAME}}"
},
"datePublished": "{{DATE_PUBLISHED}}",
"dateModified": "{{DATE_MODIFIED}}",
"publisher": {
"@type": "Organization",
"name": "{{AGENCY_NAME}}"
}
}
🚀 User Workflow in Directus
Step 1: Add Your Site
Sites → + New
- Name: "Spark Digital LA"
- Domain: "la.christopheramaya.work"
Step 2: Create Campaign
Content Campaigns → + New
- Site: (dropdown) Spark Digital LA
- Target Avatars: ☑️ scaling_founder ☑️ saas_overloader
- Target Niches: ☑️ Vertical SaaS ☑️ Fintech
- Target Cities: ☑️ Palo Alto ☑️ Austin ☑️ Seattle
- Offer Blocks: ☑️ Zapier Fix ☑️ Market Domination
- Velocity: RAMP_UP
- Target Count: 100
Step 3: Click "Generate"
→ Factory creates 100 unique articles
→ Each article = unique combo
→ SEO meta auto-generated
→ Gaussian scheduling applied
Step 4: Review & Publish
Generated Articles → Filter by Campaign
→ Preview any article
→ Approve test batch
→ Click "Publish to Site"
→ Articles go live
📊 Combination Math
With full data:
- 10 Avatars × 10 Niches each = 100 Avatar-Niche combos
- 50 Elite Cities
- 10 Offer Blocks
Maximum unique articles: 100 × 50 × 10 = 50,000 pages
For a focused campaign:
- 2 Avatars × 3 Niches × 10 Cities × 2 Offers = 120 articles
✅ Implementation Tasks
Phase 1: Schema Setup
- Create
avatarscollection - Create
nichescollection - Create
wealth_clusterscollection - Create
elite_citiescollection - Create
offer_blockscollection - Update
content_campaignswith relations - Update
generated_articleswith relations
Phase 2: Data Import
- Import 10 avatars
- Import 100 niches (10 per avatar)
- Import 5 wealth clusters
- Import 50 elite cities
- Import offer blocks
Phase 3: Factory Engine
- Update token processor
- Build campaign generator
- Add SEO meta templates
- Add schema.org generator
Phase 4: Testing
- Generate test batch
- Verify token replacement
- Verify SEO meta quality