Content Operating System
Full stack: ideation → ranking → production → distribution. Every carousel and reel produced by this system. Every lead generated by the funnel below it.
System Overview
batch_runner.py, produces the reels. System handles everything else.Content Pillars
Every carousel and reel maps to one of 3 parent pillars and one of 9 sub-pillars. All pillars tie back to demand gen vs. demand capture.
Better Leads
| # | Sub-Pillar | What It Covers | Topics |
|---|---|---|---|
| 1 | AI Content | Short-form video formats, green screen system, carousel format, reaching the 97% | 5 |
| 2 | AI Inbox | Chatbot setup, qualification logic (project → zip → phone → urgency), filtering tire-kickers | 5 |
| 3 | AI Targeting | FB conversation campaign setup, Super Pixel, retargeting the 97%, $30–$50 CPL | 5 |
Better Systems
| # | Sub-Pillar | What It Covers | Topics |
|---|---|---|---|
| 4 | Speed-to-Lead | Instant response as #1 close-rate lever, >5 min cost, shared lead disadvantage | 5 |
| 5 | Pre-Appointment | Building trust before the rep shows up, confirmation sequences, authority content post-booking | 5 |
| 6 | Post-Appointment | Closing the quote-to-job gap, dead lead reactivation, follow-up automation | 5 |
Better Data
| # | Sub-Pillar | What It Covers | Topics |
|---|---|---|---|
| 7 | Dashboards | Data over gut feel, true cost per booked job (not CPL), one-dashboard ROI view | 5 |
| 8 | Algorithmic Loop | Closed-won sales data → Meta CAPI → trains algorithm on job value not lead volume | 5 |
| 9 | Backend Infra | Postgres/N8N, Super Pixel data moat, proprietary audience across 10K+ appointments | 5 |
Proof Points (rotate across pillars)
| Client | Result | Best for |
|---|---|---|
| Riley | 47x ROI | P2 lead capture stories |
| Ashley | $717K closed revenue | P1 authority building |
| Valerie | $676K + 300+ appts / 90 days | P2 volume stories |
| Thrasher Crawl Space | $360K quarter | P3 data / scale stories |
| TWF | $45K in 30 days from Messenger alone | P2 speed stories |
Topics Bank
Single source of truth for all carousel and reel topics. 45 rows, versioned and scored.
File: Projects/StPierre/carousel-production/topics_bank.csv
| Column | Purpose | Values |
|---|---|---|
id | Unique topic ID | 1–45 |
pillar_code | Parent pillar | BL (Better Leads), BS (Better Systems), BD (Better Data) |
sub_pillar | Sub-pillar name | AI Content, AI Inbox, Speed-to-Lead, etc. |
bucket | Topic bucket | Tips, Primary Q, Secondary Q, Expectation, Objection |
topic | Full topic string fed to generator | — |
hook_angle | Default hook framing | Pain-first, Contrarian, Proof/result-first |
featured_result | Proof point to anchor the carousel | Riley 47x ROI, Ashley $717K, etc. |
niche | Target niche for this topic | foundation repair, waterproofing, both |
status | Lifecycle stage | pending, done, winner |
score | Ranker output (max 14 before multiplier) | Float |
ranking_notes | Score breakdown per dimension | proof=2|pillar=3|brain=1|age=1 |
Weekly Ranker
Scores all pending topics across 6 dimensions. Writes scores back to CSV. Returns top 10 + reserve 5 with diversity cap.
File: ranker.py · Run: python ranker.py or auto via weekly_brief.py
Scoring Dimensions (max 14 before multiplier)
| Dimension | Points | Logic |
|---|---|---|
| Proof strength | +2 | featured_result contains real $, %, or x figure |
| Pillar priority | P2=+3, P1/P3=+2 | P2 highest — most direct revenue signal |
| Brain match | >0.75 sim=+3 · >0.5=+1 | Semantic search vs video_notes — content you've studied |
| Winner multiplier | ×2 | Applied to entire score if status = 'winner' |
| Age bonus | +1 | Pending > 14 days without being ranked |
| Recency penalty | −2 | Same pillar produced in last 7 days |
Diversity Cap
Max 2 topics per pillar in the top 10. Prevents the brief from being dominated by a single pillar.
python ranker.py --dry-run to preview scores without writing to CSV. Brain semantic search is skipped in dry-run (fast mode).Content Standard — Agent KB
The binding knowledge base for all SP AI content generation. Every piece of content — reel, carousel, YouTube video — must conform to this standard.
The Rule of One
| Dimension | Answer |
|---|---|
| Avatar | Foundation repair + basement/crawl space waterproofing contractors — $1M+/yr |
| Problem | Inconsistent months — caused by demand capture marketing fighting over the finite 3% already price shopping |
| Solution | Demand generation — short-form video reaching the other 97% before they start shopping. Pre-qualified appointments. Pay per result. |
| Funnel | Organic only: IG Reel → YouTube ↔ Call Funnel |
| Focus | 1 year. Dominate organic social (FB/IG + YouTube). |
Core Positioning: Demand Gen vs. Demand Capture
This is the intellectual foundation of all content. Every pillar, hook, and case study connects back to this.
- Google, Angi, Thumbtack, HomeAdvisor, dealer networks
- Everyone fishing in the same pond — the 3% already price shopping
- Same lead sold to 4–5 contractors
- Finite pool, price wars, race to the bottom
- Dealer networks: high % fees, non-competes, can't touch your own site
- Short-form video in exact neighborhoods — before homeowners start searching
- Goes after the other 97% — effectively infinite pool
- Homeowner reaches out first, to you only
- Instant response → qualification → pre-qualified appointment
- Contractor stops competing and starts being chosen
Brand Voice — The Systems Consultant
What Akash is: A consultant who builds the marketing stack, data stack, tech stack, and sales infrastructure to grow contractor revenue predictably. Not a contractor who ran a foundation repair business. Lane: better leads, better systems, better data — not hiring/managing reps.
| Element | Rule |
|---|---|
| Tone | Casual, slightly profane, self-deprecating but authoritative. Reports findings from 150+ contractors. |
| Key phrases | "Inconsistent months" · "The 3% trap" · "Demand capture vs. demand generation" · "Quote-to-job gap" · "Pre-qualified appointments" |
| Address audience as | "Brother" or "Man" — never "Hey guys" or "folks" |
| Never | Open with "Hey" · Close with a hard CTA or engagement beg · Sound like a LinkedIn post · Over-explain |
| Angus Sewell formula | [Audience ID: "You might be like me where you..."] + [Credibility: "I manage ads for 150+ foundation repair businesses..."] + [Insight] + [Story] + [Casual close] |
The 9-Pillar Framework (3 Parents × 3 Sub-Pillars)
Every piece of content maps to one parent pillar and one sub-pillar. All pillars tie back to demand gen vs. demand capture.
Better Leads
| # | Sub-Pillar | What It Covers |
|---|---|---|
| 1 | AI Content | Short-form video formats, conversation campaigns, green screen system, carousel format, creating content that reaches the 97% |
| 2 | AI Inbox | Chatbot setup, qualification logic (project → zip → phone → urgency), filtering tire-kickers before the sales team |
| 3 | AI Targeting | FB page/campaign setup, Super Pixel, retargeting the 97%, $30–$50 CPL benchmarks, connecting data to Meta |
Better Systems
| # | Sub-Pillar | What It Covers |
|---|---|---|
| 4 | Speed-to-Lead | Instant response as #1 close-rate lever; what happens at >5 min; shared lead disadvantage |
| 5 | Pre-Appointment | Building trust before the rep shows up; confirmation sequences; authority content post-booking |
| 6 | Post-Appointment | Closing the quote-to-job gap; dead lead reactivation; follow-up automation |
Better Data
| # | Sub-Pillar | What It Covers |
|---|---|---|
| 7 | Dashboards | Managing by data not gut feel; true cost per booked job (not CPL); one-dashboard ROI view |
| 8 | Algorithmic Loop | Feeding closed-won sales data back to Meta via CAPI; training the algorithm on job value not lead volume |
| 9 | Backend Infra | Postgres/N8N as the digital foundation; Super Pixel data moat; proprietary audience across 10K+ appointments |
The Offer
Scoreboard: 45 qualified leads → 33 quotes → 5 closed jobs.
| Tier | Price | Structure | Guarantee |
|---|---|---|---|
| Primary (PIF) | $9,000 | Paid in full at signing · $5.5K fee + $3.5K media | 5 closed jobs / 6 weeks |
| Downsell 1 (weekly) | $12,000 | $3K + 6 × $1,500 · $8.5K fee + $3.5K media | 5 closed jobs / 6 weeks |
| Downsell 2 (salvage) | $6,000 | $3K + 6 × $500 · lead delivery only · 6 of 9 pillars | 30 qualified leads / 6 weeks |
| Ongoing (after 6w) | $150 / qual lead | ~5+/wk ≈ $750/wk · no retainer · cancel anytime | — |
Unit Economics — Two Different CACs (always label)
| Client-facing (what we sell) | Value |
|---|---|
| Client spend | $9K (PIF) – $12K (weekly) |
| Jobs delivered | 5 |
| Client CAC (job acquisition) | $1,800 – $2,400 / job |
| Revenue per 5 jobs ($8K–$15K avg) | $40K – $75K |
| Gross profit @ 50% | $20K – $37.5K |
| ROI in 6 weeks | 1.7x – 3.1x |
| SP-internal (do NOT publish) | Value |
|---|---|
| SP CAC (client acquisition) | $1,500 |
| SP fee per client | $5,500 (PIF) / $8,500 (weekly) |
| SP LTGP / CAC | 3.7x – 5.7x (before delivery cost) |
Niche guarantee: Foundation repair / Basement waterproofing / Crawl space = 5 jobs / 6 weeks (canonical).
Exclusivity: One contractor per area. Working with you locks out your competitor.
MRR reconciliation: 25 lifetime closes by Dec 31, 2026 ≠ 25 active recurring. Expected mix: ~11 active ongoing at ~$3.3K/mo (post-6-week retainers) + 14 one-time builds or churn → ~$37K MRR at year-end (per Root Doc WIG).
Case Studies — Always Pair Number with Mechanism
| Client | Result | ROI | Mechanism |
|---|---|---|---|
| Riley — Custom Concrete Curb | $650K+ on <$14K spend | 47x | Demand gen + quote-to-job gap closed with AI follow-up |
| Ashley — Vesta Foundation Solutions | $717K / 12 months | 15x | AI inbox + one dashboard tracking every channel to booked job |
| Valerie — Redeemers Group | $676K / 12 months | 15x | 80% dead leads → 80% qualified via AI inbox reactivation |
| Thrasher Foundation Repair | $360K / 6 months | — | Authority content + automated lead transfer |
| TWF Construction (Virginia) | $45K / first 30 days | — | Owner never opened ChatGPT — full system ran without him |
| Fleet total | $14M+ | — | 150+ contractors · 10K+ appointments · Same system, different markets |
Weekly Brief (Auto-generated)
Every Monday at 9pm ET, weekly_brief.py scores the top 10 topics and posts to Slack #akash-notes with hook angles, contrarian takes, and Slide 1 drafts. Pick 5 topics, run batch_runner.py.
Angle × Mechanism — Hook Bank
18 pain-point angles + the AI mechanism that solves each. Every row = a slide-1 hook waiting to happen. Pair with topics_bank.csv for weekly ranker rotation. Each angle is the "without" the buyer wants; the mechanism is how the system delivers it.
| # | Angle (the "without") | Mechanism |
|---|---|---|
| 1 | Without creating content yourself | AI generates daily carousels + reels + captions. Record one Saturday/month. AI handles ideation, scripts, distribution. |
| 2 | Without hiring or managing marketing staff | AI is the marketing manager — content, ads, qualifying, follow-up, attribution. No agency, no in-house hire. |
| 3 | Without learning AI yourself | White-glove 6-week install. You don't touch a prompt, pixel, or Meta dashboard. |
| 4 | Without buying shared leads (Angi / HomeAdvisor) | AI Messenger delivers exclusive leads. No 5-way bidding. Homeowner reaches out to you, period. |
| 5 | Without office manager chasing tire-kickers | AI Inbox qualifies on 4 questions: project · zip · decision-maker · urgency. Only real estimates land on the schedule. |
| 6 | Without a bigger ad budget | $500/wk media baked into the build. AI optimizes spend toward cost-per-booked-job. Same dollars, 2–3x more booked work. |
| 7 | Without a website | AI Messenger replaces the site. Click ad → DM thread → qualified + booked. No landing page. |
| 8 | Without doing sales calls yourself | Bot pre-qualifies before the rep drives out. Reps walk into 60–75% show-rate appointments. |
| 9 | Without long contracts or risk | 5 jobs in 6 weeks. Miss = we keep paying for ads until you hit 5. Not a refund. |
| 10 | Without any tech skills or setup work | 6-week build. Meta pixel, Messenger bot, CRM/GHL wiring, dashboards — all done for you. |
| 11 | Without spending on Google Ads | Meta + AI Messenger outperform Google. Lower CPC, higher intent, exclusive leads. $30–$50 CPL. |
| 12 | Without begging for referrals | Predictable inbound pipeline. 45 → 33 → 5 scoreboard. Calendar doesn't ride on the phone ringing. |
| 13 | Without a $7K/mo marketing manager | One $9K PIF replaces the role for a full year. |
| 14 | Without BNI, chamber, or networking | System runs while you sleep. No 7am Tuesdays. |
| 15 | Without door-knocking or yard signs | Inbound replaces outbound grind. Crews show up to booked work, not chase work. |
| 16 | Without renting growth from an agency forever | After 6 weeks, you own the entire engine. Pixel · bot · dashboard · audience yours. |
| 17 | Without training Meta on the wrong customer | Closed-won data → Meta CAPI. Algorithm learns what a real $9K job looks like, not what a tire-kicker looks like. |
| 18 | Without flying blind on what's working | One dashboard. Cost per booked job (not CPL). Real numbers, not "your ads are doing great" bullshit. |
Operator-language cheat sheet: "crew days filled" > "marketing automation" · "payroll anxiety" > "lead generation" · "cost per booked job" > "ROI dashboard".
Carousel System
8-slide Instagram carousel. 1080×1350px portrait. Green screen zone lower 35% for talking head. Text/visuals upper 65%.
Generator: generator.py --topic-id N · Batch: batch_runner.py --topic-ids 1 5 12
8-Slide Structure (strict — do not deviate)
Copy Rules
- Headline: max 7 words, punchy
- Body: max 2 sentences, conversational
- Every slide has one visual prompt (Higgsfield / AI image gen)
- Every slide has one voiceover cue (spoken tone)
- No corporate speak, no hedging, no "just wanted to check in"
- No AI-zesty enthusiasm or filler warmth
Generator Output
JSON file in outputs/<id>_<slug>.json — includes slides array, caption, hashtags, production notes. Status auto-updated to done in topics_bank.csv after generation.
Reel Format — @angus.sewell Model
Canonical video style for all St. Pierre AI reels. No exceptions. If it reads like LinkedIn, rewrite it.
Format Spec
Never Do
- Start with "Hey guys"
- End with "smash that like button" or any engagement beg
- Use music or b-roll (pure talking head only)
- Over-explain — trust the audience to keep up
- Sound scripted — read aloud test mandatory
Infrastructure
--topic-ids 1 5 12 after picking from the brief. Processes in sequence.AI Models Used
| Task | Model | Why |
|---|---|---|
| Carousel copy (8 slides) | GPT-4o | Full context, best instruction-following for structured JSON |
| Brief enrichment (hook / contrarian / slide 1) | GPT-4o-mini | Fast, cheap — 30–120 token outputs per call |
| Brain pattern matching | pgvector | Semantic search over brain.video_notes |
brain.video_notes — Knowledge Base
Transcripts and summaries from manually-submitted YouTube videos feed the ranker's brain match score. Richer brain = more differentiated topic scoring. Add new videos via youtube-summarizer skill in Claude.
Distribution Funnel
Organic only. No lead magnets. No ManyChat. No paid ads to generate clients. Content builds authority → YouTube closes the gap → retargeting handles follow-up automatically.
Content → Revenue Timeline
| Phase | Weeks | Focus | Expected closes |
|---|---|---|---|
| Warming | W20–W25 | Content streak, brand building, authority establishment | 0 — funnel not warm yet |
| YouTube live | W25–W28 | 9 sub-pillar deep-dive videos published, retargeting active | 1–2 inbound inquiries |
| First closes | W28+ | Warm prospects booking from YouTube → booking page | 1–2 closes/mo target |
| 25 clients | By W52 | Compound — each client = case study = more proof = more authority | 25 by Dec 31, 2026 |
Weekly Cadence
| Day | Content Action | System Action |
|---|---|---|
| Mon (data os) | Review Sun brief, pick 5 topics for the week (one per Maker Block) | Weekly brief auto-posts to #akash-notes Sun 6 PM |
| Tue | Content performance review · analytics deep-dive | Ranker scores written to topics_bank.csv |
| Daily 5–8 AM | Maker Block — ship 1 topic stack (YT + Reel + Carousel + Static) | batch_runner.py + generator.py |
| Fri | Kaizen — review what shipped, prep next week's queue | — |
| Daily | Reply to IG/YouTube comments, engage profile visitors | — |
| Thu (auto) | Drop YouTube links for transcript ingestion | yt_discovery scheduled (disabled — manual only) |
Content KPIs
What "Working" Looks Like
- Monday brief in Slack every week without fail
- 5 carousel JSONs generated per week (1/day Mon-Fri)
- Every post drives to profile → YouTube
- At least 1 new video ingested to brain.video_notes per week
- YouTube video published for each topic (45 total)
- Adding lead magnets, ManyChat, or Skool to the funnel
- Going off-pillar (9 sub-pillars only — no lifestyle, no EyeFly ops content)
- Skipping the brief — manual topic selection defeats the ranker system