Reverse Engineering Viral AI SaaS Posts
Run this search structure on X to surface candidates first:
("AI automation" OR "SaaS" OR "AI agency") min_faves:500 -filter:replies
Variants to widen the net:
("built an AI agent" OR "automation agency" OR "AI SaaS") min_faves:300 -filter:replies lang:en
("sold my agency" OR "6-figure AI" OR "AI workflow") min_faves:500 -filter:replies
Pull the top 15-20 results, filter for accounts that post this content repeatedly (not a one-off viral fluke), then run each post through the teardown template below.
Progress:
- [ ] Step 1: Run 3-5 search query variants, collect 30-50 candidate posts
- [ ] Step 2: Filter to accounts with 3+ viral posts in this niche (consistency check)
- [ ] Step 3: Teardown each post: hook, first line, body structure, emotion, CTA, format
- [ ] Step 4: Cluster posts into repeatable templates (by hook type + format)
- [ ] Step 5: Output swipe file: template name, skeleton, example, when to use
Step 2 — Consistency check criteria:
- Account has ≥3 posts in this niche above the min_faves threshold
- Posts aren't boosted/ad-driven (check for "Promoted" tag, exclude)
- Account sells or affiliates an actual offer (bio link, pinned post, DM CTA) — not just a commentator
Step 3 — Teardown fields per post:
| Field | What to capture |
|---|---|
| Topic | What specific pain/outcome is this about (e.g., "replaced 3 VAs with one AI agent") |
| Hook (line 1) | Exact wording, pattern type (see Hook Patterns below) |
| First line function | Curiosity gap, bold claim, contrarian take, or credibility flex |
| Body structure | List, story arc, before/after, screenshot+caption, thread vs single |
| Emotion | Primary driver — FOMO, greed, frustration-relief, status, fear of obsolescence |
| Format | Text-only, screenshot, carousel, video, thread |
| CTA | Explicit (link/DM) vs implicit (follow for more) vs soft (just engagement bait) |
| Numbers used | Specific metrics ($47k, 11 hours, 3 clients) — note presence, these drive credibility |
Step 4 — Clustering. Group torn-down posts by hook pattern + format combo. Name each cluster (e.g., "Receipts Flex," "Contrarian Callout," "Build-in-Public Reveal"). Each cluster becomes one output template.
- Receipts flex — "I made $X in Y days with Z." (opens with number)
- Contrarian callout — "Stop building AI agents. Do this instead."
- Before/after transformation — "6 months ago I was doing X. Today: [screenshot]."
- Problem-agitate — "Your AI automation is losing you clients. Here's why."
- Curiosity gap — "I found a loophole in [platform] that's printing money."
- Credibility flex + teach — "I've built 40 AI agents for clients. Here's the 1 thing that separates $500 builds from $50k builds."
- Screenshot-led — Image of Stripe/DM/dashboard, caption explains context.
Example 1: Input: Post with 2.3k likes: "I replaced my entire content team with 3 AI agents. Here's the exact stack (saved me $14k/mo) 🧵" Output:
- Topic: Cost-savings via AI agent replacement
- Hook: Receipts flex + curiosity gap hybrid
- First line function: Bold claim + implied list (numbered value ahead)
- Body structure: Thread, numbered stack breakdown, tool names + use case each
- Emotion: Greed (cost savings) + FOMO (team falling behind)
- Format: Thread
- CTA: Implicit follow + soft DM pitch in last tweet ("I help teams set this up — DM 'STACK'")
- Template name: "Stack Reveal Thread"
Example 2: Input: Post with 890 likes: "Nobody is talking about this but agencies charging $5k/mo for 'AI automation' are just reselling Zapier templates. Here's what actually works." Output:
- Topic: Industry callout / credibility differentiation
- Hook: Contrarian callout
- First line function: Insider-knowledge claim, creates tribal "us vs them"
- Body structure: Problem-agitate, then teach (3-point breakdown)
- Emotion: Frustration-relief + status (reader feels smarter than "the resellers")
- Format: Single long-form text post
- CTA: Soft — "Follow if you want the real breakdown next week"
- Template name: "Contrarian Insider Callout"
Always end with a swipe file table:
| Template Name | Hook Skeleton | Best Format | Emotion Driver | When to Use |
|---|---|---|---|---|
| Stack Reveal Thread | "I replaced [pain] with [solution]. Here's the exact stack (saved/made $X)" | Thread | Greed + FOMO | Launching a tool list or case study |
| Contrarian Insider Callout | "Nobody is talking about [industry truth]. Here's what actually works." | Single post | Status + relief | Positioning against competitors |
| Receipts Flex | "[Number] in [timeframe] doing [specific thing]." | Screenshot + caption | Greed + credibility | Social proof / launch day |
| Before/After Reveal | "[Time ago]: X. Today: [screenshot]." | Image-led | Aspiration | Transformation/case study content |
- Always verify virality is organic — check reply ratio (healthy posts have reply:like ~1:15-1:30; heavily boosted posts skew lower reply engagement relative to likes).
- Prioritize posts with specific numbers in the hook — generic hooks rarely cluster into reusable templates.
- Track the account's posting cadence around the viral post — often a viral post is post #4-5 in a sequence building context (check 48 hours prior for setup posts).
- Separate "engagement bait" posts (pure virality, no offer) from "offer-driving" posts — only the latter matter for someone wanting to sell.
- Don't mistake one-off viral luck for a repeatable formula — require the 3+ post consistency check before templating.
- Don't ignore CTA type — a post with 5k likes and zero monetization path teaches you nothing about selling.
- Don't skip checking if the account is paying for engagement/using engagement pods — inflated likes with dead reply sections skew analysis.
- Don't over-index on hook wording alone — the same hook fails or flies depending on body structure and offer fit; always analyze the full post, not just line 1.