| name | threads-brand-strategist |
| description | Threads brand account strategy system: multi-account competitive analysis, algorithm diagnostics, cold-start planning, content calendar, and professional HTML reports with 6 design templates. Built for brand/product accounts going from 0 to scale. |
Threads Brand Strategist
Complete Threads strategy operating system for brand and product accounts. From cold-start diagnosis to content calendar to competitive benchmarking — everything a brand needs to go from 0 to scale on Threads.
When to Use
- "Help me build a Threads strategy for my brand"
- "Analyze these Threads accounts and build me a content plan"
- "Why is my Threads post not getting views?"
- "Diagnose my Threads account"
- "Create a Threads content calendar for [topic]"
- "Benchmark my Threads against competitors"
- "Generate a Threads strategy report"
- Any request about Threads brand account growth, content strategy, or competitive analysis
What Makes This Different from ak-threads-booster
| This Skill | ak-threads-booster |
|---|
| Brand/product accounts (inc. cold-start) | Personal creators (existing history) |
| Multi-account competitive research → strategy | Single-post draft → analyze → predict |
| Account-level diagnosis + cross-account patterns | Post-level scoring + voice matching |
| English content production focus | Traditional Chinese focus |
| Full HTML strategy reports (6 design templates) | Post-by-post feedback |
Rule: If user wants to draft/analyze a SINGLE post for a personal account, route to ak-threads-booster instead. This skill is for strategic planning, multi-account analysis, and brand content systems.
Intent Routing
| User Intent | Module |
|---|
| "Analyze this Threads account" / "diagnose my account" | Module 1: Account Diagnostic |
| "Compare these accounts" / "benchmark against competitors" | Module 2: Competitive Benchmarking |
| "Why isn't my post getting views?" / "analyze this post" | Module 3: Post Diagnosis |
| "Build me a content strategy" / "create a content calendar" | Module 4: Content Strategy Planning |
| "Generate a full report" / any multi-module request | Module 5: Full Report Generation |
When running multiple modules (e.g. user provides their account + competitor URLs + asks for a strategy), run them sequentially: Module 1 on each account → Module 2 for comparison → Module 4 for strategy → Module 5 for report.
Required Context (ask if not provided)
- Account URL(s) — at minimum the user's own @simularai or brand account
- Account type — brand/product account or personal creator?
- Target audience — who should this content reach? (e.g. "B2B founders", "AI enthusiasts", "creators")
- Content language — English (default) or other?
- Topic focus — what topics will the account cover? (e.g. "LinkedIn tips for B2B")
- Growth stage — new account (cold-start), early growth (<500), or established (500+)?
Module 1: Account Diagnostic
Purpose
Analyze any Threads account to extract performance data, content patterns, and the account's "viral DNA."
Step 1: Scrape Profile Data
var targetPage = await browser.newtab("https://www.threads.com/@HANDLE")
await targetPage.wait({ waitTime: 3 })
await targetPage.press({ key: 'Escape' })
await targetPage.wait({ waitTime: 1 })
await targetPage.screenshot()
Extract and store:
var accountData = {
handle: "@xxx",
name: "",
followers: 0,
bio: "",
tags: [],
category: "",
website: "",
verified: false,
posts: []
}
Step 2: Scrape Post Data (20-30 most recent posts)
Scroll through the profile, capturing for each visible post:
- Content preview (first 2 lines)
- Content type: text-only / image / carousel / video / link-preview / repost
- Engagement: likes, comments, reposts, shares
- Whether it's a thread (has self-replies) or single post
- Topic/theme categorization
for (var cycle = 0; cycle < 8; cycle++) {
await targetPage.screenshot()
await targetPage.scroll({ direction: 'down', distance: 2000 })
await targetPage.wait({ waitTime: 2 })
}
Step 3: Analyze and Categorize
Calculate these metrics:
var analysis = {
totalPostsAnalyzed: 0,
avgLikes: 0,
avgComments: 0,
medianLikes: 0,
engagementRate: 0,
tiers: {
tier1_viral: [],
tier2_strong: [],
tier3_average: [],
tier4_low: [],
},
contentTypes: {
tipsThread: { count: 0, avgLikes: 0 },
hotTake: { count: 0, avgLikes: 0 },
question: { count: 0, avgLikes: 0 },
dataInsight: { count: 0, avgLikes: 0 },
productPromo: { count: 0, avgLikes: 0 },
personal: { count: 0, avgLikes: 0 },
repost: { count: 0, avgLikes: 0 },
},
formats: {
textOnly: { count: 0, avgLikes: 0 },
textImage: { count: 0, avgLikes: 0 },
carousel: { count: 0, avgLikes: 0 },
video: { count: 0, avgLikes: 0 },
linkPreview: { count: 0, avgLikes: 0 },
},
viralDNA: {
commonFormats: [],
commonTopics: [],
commonHookPatterns: [],
commonTraits: [],
},
antiPatterns: [],
keyInsight: ""
}
Step 4: Generate Account Health Score (0-100)
| Component | Weight | Scoring |
|---|
| Engagement Rate | 25 | >5%=25, 3-5%=20, 1-3%=15, 0.5-1%=8, <0.5%=3 |
| Viral Ratio (tier1 posts / total) | 20 | >15%=20, 10-15%=16, 5-10%=10, 1-5%=5, 0%=0 |
| Content Type Diversity | 15 | 4+ types=15, 3=12, 2=8, 1=3 |
| Format Variety | 15 | 3+ formats=15, 2=10, 1=5 |
| Consistency (post frequency) | 15 | Daily=15, 4-5x/wk=12, 2-3x=8, <2x=4 |
| Follower Base | 10 | >1K=10, 500-1K=8, 100-500=6, <100=3 |
Step 5: Cold-Start Detection
If followers < 100, flag as COLD-START and add special diagnosis:
- "Distribution base insufficient — algorithm cannot start the distribution ladder"
- "Inner circle strategy required before content strategy"
- "Focus on replies/comments on other accounts, not own posts"
Module 2: Competitive Benchmarking
Purpose
Compare 2-5 accounts side-by-side, extract cross-account patterns, and identify which strategies are most transferable to the user's brand account.
Step 1: Run Module 1 on Each Account
Store results in an array:
var benchmarks = []
Step 2: Cross-Account Comparison Table
Generate a comparison with these dimensions:
| Dimension | Account 1 | Account 2 | ... |
|---|
| Followers | | | |
| Avg Likes | | | |
| Avg Comments | | | |
| Engagement Rate | | | |
| Best Format | | | |
| Best Content Type | | | |
| Viral Post Likes | | | |
| Post Frequency | | | |
| Health Score | | | |
Step 3: Cross-Account Pattern Extraction
var crossPatterns = {
universalWinners: [],
conditionalWinners: [],
universalLosers: [],
bestModelForBrand: {
handle: "",
why: "",
transferableStrategies: []
},
cautionaryLessons: []
}
Step 4: Brand Adaptability Scoring
Score each competitor's strategy for brand-account adaptability (0-10):
- Deduct points for heavily personal voice (hard to replicate as brand)
- Add points for systematic/repeatable content formats
- Add points for visual-first content (carousel, screenshots)
- Add points for "we" voice or neutral observer perspective
Module 3: Post Diagnosis
Purpose
Diagnose WHY a specific post is (or isn't) performing, separating content problems from distribution problems.
Step 1: Scrape Post Data
var postPage = await browser.newtab("POST_URL")
await postPage.wait({ waitTime: 3 })
await postPage.press({ key: 'Escape' })
await postPage.wait({ waitTime: 1 })
await postPage.screenshot()
Extract: full text content, format, media attachments, engagement numbers, reply count, posting time.
Step 2: Distribution vs Content Diagnosis
CRITICAL FIRST STEP — before analyzing content quality, determine:
var diagnosisType = "unknown"
if (accountFollowers < 50) {
diagnosisType = "DISTRIBUTION_PROBLEM"
} else if (accountFollowers < 500 && engagement.likes < 3) {
diagnosisType = "LIKELY_DISTRIBUTION"
} else {
diagnosisType = "CONTENT_ANALYSIS"
}
Step 3: Algorithm Signal Check (for CONTENT_ANALYSIS type)
Check every algorithm signal and penalty:
| Signal | Check | Status |
|---|
| S1 Share-worthiness | Would someone send this to a friend? | ✅/❌ |
| S2 Comment-worthiness | Does it invite discussion? | ✅/❌ |
| S3 Dwell Time | Long enough to create dwell time? Too long to finish? | ✅/❌ |
| S7 Topic Match | Consistent with account's topic neighborhood? | ✅/❌ |
| S9 Recommendability | Useful to a stranger? | ✅/❌ |
| R1 External Links | Links in body? | ✅/❌ |
| R2 Promotional Tone | Reads like an ad? | ✅/❌ |
| R3 AI-Generated Feel | Sounds like ChatGPT? | ✅/❌ |
| R4 Image Assessment | Brand logos = promotional? Screenshots = authentic? | ✅/❌ |
Step 4: Comparative Context
Compare this post's performance to:
- The account's own average (is it above or below?)
- Similar posts on competitor accounts (is the format proven?)
- Algorithm expectations for this follower count
Step 5: Actionable Recommendations
Provide 3-5 specific, actionable changes ranked by impact:
- [Highest impact change]
- [Second highest]
- ...
Module 4: Content Strategy Planning
Purpose
Generate a complete, actionable content strategy based on account diagnostic and competitive analysis results.
Step 1: Determine Account Stage & Strategy Phase
var stages = {
coldStart: { range: "0-100 followers", phase: "Phase 0: Cold Start Repair", weeks: "1-2", focus: "Build distribution base" },
earlyGrowth:{ range: "100-500 followers", phase: "Phase 1: Trust Building", weeks: "3-8", focus: "Establish topic authority with value content" },
breakthrough:{ range: "500-2K followers", phase: "Phase 2: Soft Integration", weeks: "9-12", focus: "Introduce product naturally" },
scaling: { range: "2K-10K followers", phase: "Phase 3: Scale & Convert", weeks: "13+", focus: "Systematic content + conversion" },
}
Step 2: Content Mix Formula
Generate content mix based on stage:
| Stage | Tips/Framework | Hot Take | Data/Insight | Question | Product |
|---|
| Cold Start | 30% | 20% | 10% | 40% (drive comments) | 0% |
| Trust Building | 50% | 25% | 15% | 10% | 0% |
| Soft Integration | 40% | 20% | 15% | 10% | 15% (comments only) |
| Scaling | 35% | 20% | 15% | 10% | 20% |
Step 3: Weekly Calendar Template
Generate a 7-day calendar:
- Specify which days to POST vs which days to ENGAGE ONLY (interaction days)
- For posting days: specify content type, format, target length
- For interaction days: specify number of comments to leave, what accounts to engage with
- Cold-start stage: 2 post days + 5 interaction days
- Trust building: 3 post days + 4 interaction days
- Soft integration: 4 post days + 3 interaction days
- Scaling: 5 post days + 2 interaction days
Step 4: Hook Formula Library
Generate hook formulas customized for the user's topic area. Include 8-10 formulas with:
- The formula template (with [brackets] for customizable parts)
- What content type it works for
- A concrete example using the user's topic
- Which algorithm signal it targets (shares, comments, dwell time)
Step 5: Brand Voice Specification
Generate a voice spec covering:
- Capitalization rules (lowercase default, selective caps for emphasis)
- Person/perspective ("we" for brand, "you" for reader)
- Tone descriptor (e.g. "knowledgeable friend, not corporate spokesperson")
- Sentence length guidelines
- Emoji policy (frequency, placement)
- Hashtag policy
- What to NEVER do (list 5-8 anti-patterns)
Step 6: First 10 Topics
Generate 10 specific post topics with:
- Topic/angle
- Format (single post, thread, carousel, question)
- Hook (ready to use)
- Algorithm target (which signal this post optimizes for)
- Estimated difficulty (easy/medium/hard to execute)
Step 7: Growth Milestones
Generate milestone targets by week:
- Follower target
- Per-post engagement target
- Core task for the week
- Success indicator
Module 5: Full Report Generation
Purpose
Compile results from Modules 1-4 into a single professional HTML report. The user chooses from 6 design templates.
Step 1: Ask User for Design Preference
Present the 6 templates:
Which report style would you prefer?
1. 🌸 Blossom — Soft pink/rose gradient, rounded cards, warm serif headings. Inspired by lifestyle magazines.
2. 🌊 Ocean — Deep navy to teal gradient, glass-morphism cards, modern sans-serif. Tech-forward & premium.
3. 🍊 Citrus — Bright orange/coral accents on cream, bold typography, playful dividers. Energetic & friendly.
4. 🌿 Forest — Deep green + earth tones, natural textures, elegant serif mix. Calm & authoritative.
5. 🌙 Midnight — Dark mode, neon accent highlights, sharp geometric cards. Sleek & modern.
6. ✨ Minimal — Pure white, black typography, thin-line dividers, generous whitespace. Clean & professional.
If user doesn't specify, default to template 2 (Ocean).
Step 2: Generate HTML Report
The report should contain these sections (include/skip based on which modules were run):
- Cover / Header — Report title, account handle, date, key metrics summary
- Account Diagnostic (Module 1) — Health score, tier breakdown, viral DNA, anti-patterns
- Competitive Benchmarking (Module 2) — Comparison table, cross-account patterns, best model
- Post Diagnosis (Module 3) — Distribution vs content diagnosis, algorithm signal check
- Algorithm Reference — Key signals, penalties, rewards (always include)
- Content Strategy (Module 4) — Content mix, calendar, hook formulas, voice spec
- Topic Pipeline (Module 4) — First 10 topics with hooks
- Growth Milestones — Weekly targets and success indicators
- Footer — Generated by Sai, date
Threads Algorithm Reference (Embedded Knowledge)
Always include this knowledge when diagnosing accounts or posts. This is extracted from Meta's M6.3/M8 ranking system.
Distribution Flow
- Post published → shown to 5-10% of 1st-degree followers
- 60-90 minute critical window: Algorithm measures engagement rate
- Engagement rate > 2-5% → expand to followers' followers (2nd degree)
- High engagement sustained → For You / Explore feed
- Engagement rate < 1% → distribution stops completely
Algorithm Signals (ranked by weight)
| Signal | ID | Weight | What It Measures |
|---|
| Shares/Sends | S1 | ⭐⭐⭐⭐⭐ | 3-5x weight of likes. "Would I send this to someone?" |
| Meaningful Comments | S2 | ⭐⭐⭐⭐ | 5+ word comments ≈ 30 likes. Back-and-forth threads = bonus |
| Dwell Time | S3 | ⭐⭐⭐⭐ | Time spent reading. Longer content needs to be engaging enough to hold |
| Saves/Bookmarks | S4 | ⭐⭐⭐ | "I want to come back to this" = high-value signal |
| Topic Neighborhood | S7 | ⭐⭐⭐ | Consistent topic = algorithm learns your audience. Topic jumping = confused distribution |
| Trust Graph | S8 | ⭐⭐⭐ | Your regular engagers signal trust. Inner circle engagement in first 60min = critical |
| Recommendability | S9 | ⭐⭐⭐ | "Would a STRANGER find this useful?" Gate for For You feed |
| Recency | S11 | ⭐⭐ | Recent posts prioritized. Evergreen content gets diminishing boost |
| Topic Freshness | S14 | ⭐⭐ | Same topic repeatedly = fatigue budget. Rotate topics |
Algorithm Penalties
| Penalty | Impact | Details |
|---|
| External links in body | -40-50% reach | Platform wants users to stay. Put links in comments |
| Editing within 10min | Algorithm reset | Early momentum destroyed. Proofread BEFORE posting |
| Multiple posts same day | Self-cannibalization | Posts compete for same audience attention |
| Pure promotional content | Spam classification | Reduces recommendability score permanently |
| AI-generated feel | M8 detection penalty | Over-templated, generic content flagged |
| >5 hashtags | Diminishing returns | 2-3 relevant hashtags is optimal |
| Engagement bait | Penalty | "Like if you agree" type posts actively suppressed |
Content Format Reach Multipliers
| Format | Multiplier | Best For |
|---|
| Text-only | 1.0x (baseline) | Hot takes, questions |
| Text + Image | 1.2-1.5x | Data posts, screenshots |
| Carousel/Multi-image | 2.0-3.5x | Tutorials, step-by-steps |
| Video | 2.0-5.0x | Demos, explainers |
| Poll | 1.5-2.5x | Audience research |
| Link Preview | 0.5-0.7x | ⚠️ PENALIZED — avoid in body |
Optimal Posting Times (English-speaking markets)
- US East Coast: 8-9am EST (morning commute) or 12-1pm EST (lunch)
- US West Coast: 8-9am PST
- Global: Tuesday-Thursday generally outperform Monday/Friday
- Weekend: Lower competition but smaller audience — good for testing
The 4:2:1 Content Rule
| Type | Ratio | Description |
|---|
| Value/Insight | 4 parts (57%) | Frameworks, data, how-tos. NOT product promotion. |
| Story/Learning | 2 parts (29%) | Real experiences, building journey, failures |
| Product/CTA | 1 part (14%) | Product solving a real problem. Only AFTER trust is built. |
For brand accounts in cold-start phase, use 5:2:0 (no product posts until 500+ followers).
HTML Design Templates
When generating the report, use the template CSS that matches the user's choice. Each template defines the full CSS that replaces the <style> block. The HTML structure stays the same across all templates — only the CSS changes.
Template 1: 🌸 Blossom
Soft pink/rose gradient, rounded cards, warm serif headings. Inspired by lifestyle magazines and Xiaohongshu editorial style.
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700;800&family=Inter:wght@300;400;500;600&display=swap');
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Inter',sans-serif; background:linear-gradient(135deg,#fff5f5 0%,#fef2f8 50%,#fdf2f8 100%); color:#2d2d2d; line-height:1.7; }
.container { max-width:860px; margin:0 auto; padding:48px 28px; }
h1 { font-family:'Playfair Display',serif; font-size:36px; font-weight:800; color:#1a1a1a; margin-bottom:6px; letter-spacing:-0.5px; }
h2 { font-family:'Playfair Display',serif; font-size:22px; font-weight:700; color:#be185d; margin:44px 0 16px; padding-bottom:8px; border-bottom:2px solid #fce7f3; }
h3 { font-family:'Inter',sans-serif; font-size:15px; font-weight:600; color:#831843; margin:20px 0 8px; text-transform:uppercase; letter-spacing:0.8px; }
.subtitle { color:#9ca3af; font-size:13px; font-family:'Inter',sans-serif; margin-bottom:36px; }
.card { background:rgba(255,255,255,0.85); backdrop-filter:blur(12px); border-radius:20px; padding:28px; margin:16px 0; border:1px solid rgba(244,114,182,0.15); box-shadow:0 4px 20px rgba(190,24,93,0.04); }
.card-red { border-left:4px solid #e11d48; }
.card-green { border-left:4px solid #059669; }
.card-blue { border-left:4px solid #be185d; }
.card-amber { border-left:4px solid #f59e0b; }
.card-purple { border-left:4px solid #a855f7; }
.tag { display:inline-block; padding:3px 12px; border-radius:20px; font-size:11px; font-weight:600; margin:2px; }
.tag-red { background:#fef2f2; color:#dc2626; }
.tag-green { background:#ecfdf5; color:#059669; }
.tag-blue { background:#fdf2f8; color:#be185d; }
.tag-amber { background:#fffbeb; color:#d97706; }
table { width:100%; border-collapse:collapse; margin:14px 0; font-size:13px; }
th { background:linear-gradient(135deg,#be185d,#a21caf); color:white; padding:12px 14px; text-align:left; font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:0.5px; }
th:first-child { border-radius:12px 0 0 0; } th:last-child { border-radius:0 12px 0 0; }
td { padding:11px 14px; border-bottom:1px solid #fce7f3; }
tr:nth-child(even) { background:rgba(253,242,248,0.5); }
.metric { font-family:'Playfair Display',serif; font-size:32px; font-weight:800; color:#be185d; }
.metric-label { font-size:11px; color:#9ca3af; text-transform:uppercase; letter-spacing:1px; font-weight:500; }
.metrics-row { display:flex; gap:16px; flex-wrap:wrap; }
.metric-box { flex:1; min-width:120px; text-align:center; padding:20px 12px; background:linear-gradient(135deg,#fdf2f8,#fce7f3); border-radius:16px; border:1px solid rgba(244,114,182,0.1); }
ul { padding-left:20px; margin:8px 0; } li { margin:5px 0; font-size:13px; color:#374151; }
.highlight { background:linear-gradient(135deg,#fce7f3,#fdf2f8); padding:2px 8px; border-radius:6px; font-weight:600; color:#be185d; }
.quote { background:linear-gradient(135deg,#fdf2f8,#fff5f5); border-left:3px solid #f472b6; padding:16px 20px; margin:14px 0; border-radius:0 16px 16px 0; font-style:italic; color:#4b5563; }
.flow-step { display:flex; align-items:center; gap:8px; margin:6px 0; font-size:13px; }
.flow-arrow { color:#be185d; font-weight:700; }
code { background:#fdf2f8; padding:2px 8px; border-radius:6px; font-size:12px; color:#be185d; }
.divider { height:1px; background:linear-gradient(90deg,transparent,#f9a8d4,transparent); margin:36px 0; }
@media print { body { background:white; } .card { box-shadow:none; border:1px solid #fce7f3; backdrop-filter:none; background:white; } }
Template 2: 🌊 Ocean (Default)
Deep navy to teal gradient, glass-morphism cards, modern sans-serif. Tech-forward & premium.
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Inter',sans-serif; background:linear-gradient(160deg,#0f172a 0%,#0c4a6e 40%,#134e4a 100%); color:#e2e8f0; line-height:1.65; min-height:100vh; }
.container { max-width:880px; margin:0 auto; padding:48px 28px; }
h1 { font-size:34px; font-weight:800; color:#f0fdfa; margin-bottom:6px; letter-spacing:-0.5px; }
h2 { font-size:20px; font-weight:700; color:#5eead4; margin:44px 0 16px; padding-bottom:8px; border-bottom:1px solid rgba(94,234,212,0.2); }
h3 { font-size:15px; font-weight:600; color:#99f6e4; margin:20px 0 8px; }
.subtitle { color:#64748b; font-size:13px; margin-bottom:36px; }
.card { background:rgba(15,23,42,0.6); backdrop-filter:blur(16px); border-radius:16px; padding:28px; margin:16px 0; border:1px solid rgba(94,234,212,0.1); box-shadow:0 8px 32px rgba(0,0,0,0.2); }
.card-red { border-left:4px solid #ef4444; }
.card-green { border-left:4px solid #10b981; }
.card-blue { border-left:4px solid #0ea5e9; }
.card-amber { border-left:4px solid #f59e0b; }
.card-purple { border-left:4px solid #a78bfa; }
.tag { display:inline-block; padding:3px 12px; border-radius:20px; font-size:11px; font-weight:600; margin:2px; }
.tag-red { background:rgba(239,68,68,0.15); color:#fca5a5; }
.tag-green { background:rgba(16,185,129,0.15); color:#6ee7b7; }
.tag-blue { background:rgba(14,165,233,0.15); color:#7dd3fc; }
.tag-amber { background:rgba(245,158,11,0.15); color:#fcd34d; }
table { width:100%; border-collapse:collapse; margin:14px 0; font-size:13px; }
th { background:rgba(94,234,212,0.1); color:#5eead4; padding:12px 14px; text-align:left; font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:0.5px; border-bottom:1px solid rgba(94,234,212,0.2); }
td { padding:11px 14px; border-bottom:1px solid rgba(148,163,184,0.1); color:#cbd5e1; }
tr:nth-child(even) { background:rgba(94,234,212,0.03); }
.metric { font-size:32px; font-weight:800; color:#5eead4; }
.metric-label { font-size:11px; color:#64748b; text-transform:uppercase; letter-spacing:1px; }
.metrics-row { display:flex; gap:16px; flex-wrap:wrap; }
.metric-box { flex:1; min-width:120px; text-align:center; padding:20px 12px; background:rgba(94,234,212,0.06); border-radius:12px; border:1px solid rgba(94,234,212,0.1); }
ul { padding-left:20px; margin:8px 0; } li { margin:5px 0; font-size:13px; color:#94a3b8; }
.highlight { background:rgba(94,234,212,0.12); padding:2px 8px; border-radius:6px; font-weight:600; color:#5eead4; }
.quote { background:rgba(94,234,212,0.06); border-left:3px solid #14b8a6; padding:16px 20px; margin:14px 0; border-radius:0 12px 12px 0; font-style:italic; color:#94a3b8; }
.flow-step { display:flex; align-items:center; gap:8px; margin:6px 0; font-size:13px; color:#cbd5e1; }
.flow-arrow { color:#5eead4; font-weight:700; }
code { background:rgba(94,234,212,0.1); padding:2px 8px; border-radius:6px; font-size:12px; color:#5eead4; }
.divider { height:1px; background:linear-gradient(90deg,transparent,rgba(94,234,212,0.3),transparent); margin:36px 0; }
@media print { body { background:#0f172a; color:#e2e8f0; } .card { background:rgba(15,23,42,0.9); backdrop-filter:none; } }
Template 3: 🍊 Citrus
Bright orange/coral accents on warm cream, bold typography, playful rounded shapes. Energetic & friendly.
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&display=swap');
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'DM Sans',sans-serif; background:#fffbf5; color:#1c1917; line-height:1.7; }
.container { max-width:860px; margin:0 auto; padding:48px 28px; }
h1 { font-size:36px; font-weight:800; color:#0c0a09; margin-bottom:6px; letter-spacing:-1px; }
h2 { font-size:22px; font-weight:800; color:#ea580c; margin:44px 0 16px; padding-left:16px; border-left:5px solid #fb923c; }
h3 { font-size:15px; font-weight:700; color:#9a3412; margin:20px 0 8px; }
.subtitle { color:#a8a29e; font-size:13px; margin-bottom:36px; }
.card { background:white; border-radius:20px; padding:28px; margin:16px 0; border:1px solid #fed7aa; box-shadow:0 2px 12px rgba(234,88,12,0.06); }
.card-red { border-left:5px solid #dc2626; border-radius:20px; }
.card-green { border-left:5px solid #16a34a; border-radius:20px; }
.card-blue { border-left:5px solid #ea580c; border-radius:20px; }
.card-amber { border-left:5px solid #eab308; border-radius:20px; }
.card-purple { border-left:5px solid #9333ea; border-radius:20px; }
.tag { display:inline-block; padding:4px 14px; border-radius:24px; font-size:11px; font-weight:700; margin:2px; }
.tag-red { background:#fef2f2; color:#dc2626; }
.tag-green { background:#f0fdf4; color:#16a34a; }
.tag-blue { background:#fff7ed; color:#ea580c; }
.tag-amber { background:#fefce8; color:#ca8a04; }
table { width:100%; border-collapse:separate; border-spacing:0; margin:14px 0; font-size:13px; border-radius:12px; overflow:hidden; border:1px solid #fed7aa; }
th { background:#ea580c; color:white; padding:12px 14px; text-align:left; font-weight:700; font-size:11px; text-transform:uppercase; letter-spacing:0.5px; }
td { padding:11px 14px; border-bottom:1px solid #fef3c7; }
tr:nth-child(even) { background:#fffbf5; }
.metric { font-size:34px; font-weight:800; color:#ea580c; }
.metric-label { font-size:11px; color:#a8a29e; text-transform:uppercase; letter-spacing:1px; font-weight:600; }
.metrics-row { display:flex; gap:16px; flex-wrap:wrap; }
.metric-box { flex:1; min-width:120px; text-align:center; padding:20px 12px; background:linear-gradient(135deg,#fff7ed,#fffbf5); border-radius:16px; border:2px solid #fed7aa; }
ul { padding-left:20px; margin:8px 0; } li { margin:5px 0; font-size:13px; color:#44403c; }
.highlight { background:#fff7ed; padding:3px 10px; border-radius:8px; font-weight:700; color:#ea580c; border:1px solid #fed7aa; }
.quote { background:#fff7ed; border-left:4px solid #fb923c; padding:16px 20px; margin:14px 0; border-radius:0 16px 16px 0; font-style:italic; color:#57534e; }
.flow-step { display:flex; align-items:center; gap:8px; margin:6px 0; font-size:13px; }
.flow-arrow { color:#ea580c; font-weight:800; font-size:16px; }
code { background:#fff7ed; padding:3px 8px; border-radius:6px; font-size:12px; color:#9a3412; border:1px solid #fed7aa; }
.divider { height:2px; background:linear-gradient(90deg,#fed7aa,#fb923c,#fed7aa); margin:36px 0; border-radius:2px; }
@media print { body { background:white; } .card { box-shadow:none; } }
Template 4: 🌿 Forest
Deep green + earth tones, natural textures, elegant serif mix. Calm & authoritative.
@import url('https://fonts.googleapis.com/css2?family=Lora:wght@400;500;600;700&family=Inter:wght@300;400;500;600&display=swap');
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Inter',sans-serif; background:#f5f5f0; color:#1a2e1a; line-height:1.7; }
.container { max-width:860px; margin:0 auto; padding:48px 28px; }
h1 { font-family:'Lora',serif; font-size:34px; font-weight:700; color:#14532d; margin-bottom:6px; }
h2 { font-family:'Lora',serif; font-size:21px; font-weight:700; color:#15803d; margin:44px 0 16px; padding-bottom:10px; border-bottom:2px solid #bbf7d0; }
h3 { font-size:14px; font-weight:600; color:#166534; margin:20px 0 8px; text-transform:uppercase; letter-spacing:0.8px; }
.subtitle { color:#6b7280; font-size:13px; margin-bottom:36px; }
.card { background:rgba(255,255,255,0.9); border-radius:12px; padding:28px; margin:16px 0; border:1px solid #d1d5c8; box-shadow:0 2px 8px rgba(20,83,45,0.04); }
.card-red { border-left:4px solid #dc2626; }
.card-green { border-left:4px solid #15803d; }
.card-blue { border-left:4px solid #0369a1; }
.card-amber { border-left:4px solid #a16207; }
.card-purple { border-left:4px solid #7e22ce; }
.tag { display:inline-block; padding:3px 12px; border-radius:6px; font-size:11px; font-weight:600; margin:2px; }
.tag-red { background:#fef2f2; color:#dc2626; }
.tag-green { background:#f0fdf4; color:#15803d; }
.tag-blue { background:#f0f9ff; color:#0369a1; }
.tag-amber { background:#fefce8; color:#a16207; }
table { width:100%; border-collapse:collapse; margin:14px 0; font-size:13px; }
th { background:#14532d; color:#ecfdf5; padding:12px 14px; text-align:left; font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:0.5px; }
td { padding:11px 14px; border-bottom:1px solid #e5e7d8; color:#374151; }
tr:nth-child(even) { background:rgba(187,247,208,0.1); }
.metric { font-family:'Lora',serif; font-size:32px; font-weight:700; color:#15803d; }
.metric-label { font-size:11px; color:#6b7280; text-transform:uppercase; letter-spacing:1px; }
.metrics-row { display:flex; gap:16px; flex-wrap:wrap; }
.metric-box { flex:1; min-width:120px; text-align:center; padding:20px 12px; background:linear-gradient(135deg,#f0fdf4,#ecfdf5); border-radius:12px; border:1px solid #bbf7d0; }
ul { padding-left:20px; margin:8px 0; } li { margin:5px 0; font-size:13px; color:#374151; }
.highlight { background:#ecfdf5; padding:2px 8px; border-radius:4px; font-weight:600; color:#15803d; }
.quote { background:#f0fdf4; border-left:3px solid #22c55e; padding:16px 20px; margin:14px 0; border-radius:0 8px 8px 0; font-family:'Lora',serif; font-style:italic; color:#4b5563; }
.flow-step { display:flex; align-items:center; gap:8px; margin:6px 0; font-size:13px; }
.flow-arrow { color:#15803d; font-weight:700; }
code { background:#ecfdf5; padding:2px 8px; border-radius:4px; font-size:12px; color:#14532d; }
.divider { height:1px; background:linear-gradient(90deg,transparent,#86efac,transparent); margin:36px 0; }
@media print { body { background:white; } .card { background:white; box-shadow:none; } }
Template 5: 🌙 Midnight
Dark mode with neon accent highlights, sharp geometric cards. Sleek & modern.
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap');
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Space Grotesk',sans-serif; background:#09090b; color:#e4e4e7; line-height:1.65; }
.container { max-width:880px; margin:0 auto; padding:48px 28px; }
h1 { font-size:34px; font-weight:700; color:#fafafa; margin-bottom:6px; letter-spacing:-0.5px; }
h2 { font-size:20px; font-weight:700; color:#a78bfa; margin:44px 0 16px; padding-bottom:8px; border-bottom:1px solid rgba(167,139,250,0.2); }
h3 { font-size:15px; font-weight:600; color:#c4b5fd; margin:20px 0 8px; }
.subtitle { color:#52525b; font-size:13px; margin-bottom:36px; }
.card { background:#18181b; border-radius:12px; padding:28px; margin:16px 0; border:1px solid #27272a; box-shadow:0 0 0 1px rgba(167,139,250,0.05); }
.card:hover { border-color:rgba(167,139,250,0.2); }
.card-red { border-left:3px solid #f43f5e; }
.card-green { border-left:3px solid #22c55e; }
.card-blue { border-left:3px solid #818cf8; }
.card-amber { border-left:3px solid #fbbf24; }
.card-purple { border-left:3px solid #a78bfa; }
.tag { display:inline-block; padding:3px 12px; border-radius:4px; font-size:11px; font-weight:600; margin:2px; font-family:monospace; }
.tag-red { background:rgba(244,63,94,0.12); color:#fb7185; border:1px solid rgba(244,63,94,0.2); }
.tag-green { background:rgba(34,197,94,0.12); color:#4ade80; border:1px solid rgba(34,197,94,0.2); }
.tag-blue { background:rgba(129,140,248,0.12); color:#a5b4fc; border:1px solid rgba(129,140,248,0.2); }
.tag-amber { background:rgba(251,191,36,0.12); color:#fde68a; border:1px solid rgba(251,191,36,0.2); }
table { width:100%; border-collapse:collapse; margin:14px 0; font-size:13px; }
th { background:#27272a; color:#a78bfa; padding:12px 14px; text-align:left; font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:1px; border-bottom:1px solid #3f3f46; }
td { padding:11px 14px; border-bottom:1px solid #27272a; color:#a1a1aa; }
tr:nth-child(even) { background:rgba(167,139,250,0.02); }
.metric { font-size:32px; font-weight:700; color:#a78bfa; font-variant-numeric:tabular-nums; }
.metric-label { font-size:10px; color:#52525b; text-transform:uppercase; letter-spacing:1.5px; font-weight:500; }
.metrics-row { display:flex; gap:12px; flex-wrap:wrap; }
.metric-box { flex:1; min-width:120px; text-align:center; padding:20px 12px; background:#18181b; border-radius:8px; border:1px solid #27272a; }
ul { padding-left:20px; margin:8px 0; } li { margin:5px 0; font-size:13px; color:#71717a; }
.highlight { background:rgba(167,139,250,0.1); padding:2px 8px; border-radius:4px; font-weight:600; color:#c4b5fd; border:1px solid rgba(167,139,250,0.15); }
.quote { background:rgba(167,139,250,0.05); border-left:2px solid #a78bfa; padding:16px 20px; margin:14px 0; border-radius:0 8px 8px 0; font-style:italic; color:#a1a1aa; }
.flow-step { display:flex; align-items:center; gap:8px; margin:6px 0; font-size:13px; color:#a1a1aa; }
.flow-arrow { color:#a78bfa; font-weight:700; font-family:monospace; }
code { background:#27272a; padding:2px 8px; border-radius:4px; font-size:12px; color:#c4b5fd; border:1px solid #3f3f46; }
.divider { height:1px; background:linear-gradient(90deg,transparent,#3f3f46,transparent); margin:36px 0; }
@media print { body { background:#09090b; } .card { background:#18181b; } }
Template 6: ✨ Minimal
Pure white, black typography, thin-line dividers, generous whitespace. Clean & professional.
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Inter',sans-serif; background:#ffffff; color:#111827; line-height:1.7; }
.container { max-width:820px; margin:0 auto; padding:56px 32px; }
h1 { font-size:30px; font-weight:800; color:#000; margin-bottom:6px; letter-spacing:-0.5px; }
h2 { font-size:18px; font-weight:700; color:#000; margin:48px 0 16px; padding-top:24px; border-top:1px solid #e5e7eb; }
h3 { font-size:13px; font-weight:600; color:#374151; margin:24px 0 8px; text-transform:uppercase; letter-spacing:1.2px; }
.subtitle { color:#9ca3af; font-size:13px; margin-bottom:40px; font-weight:300; }
.card { background:#fafafa; border-radius:8px; padding:28px; margin:16px 0; border:1px solid #f3f4f6; }
.card-red { border-left:3px solid #000; }
.card-green { border-left:3px solid #000; }
.card-blue { border-left:3px solid #000; }
.card-amber { border-left:3px solid #000; }
.card-purple { border-left:3px solid #000; }
.tag { display:inline-block; padding:2px 10px; border-radius:4px; font-size:11px; font-weight:600; margin:2px; border:1px solid; }
.tag-red { background:white; color:#dc2626; border-color:#fecaca; }
.tag-green { background:white; color:#059669; border-color:#a7f3d0; }
.tag-blue { background:white; color:#2563eb; border-color:#bfdbfe; }
.tag-amber { background:white; color:#d97706; border-color:#fde68a; }
table { width:100%; border-collapse:collapse; margin:14px 0; font-size:13px; }
th { background:white; color:#111827; padding:10px 14px; text-align:left; font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:1px; border-bottom:2px solid #111827; }
td { padding:10px 14px; border-bottom:1px solid #f3f4f6; color:#4b5563; }
tr:nth-child(even) { background:#fafafa; }
.metric { font-size:30px; font-weight:800; color:#000; font-variant-numeric:tabular-nums; }
.metric-label { font-size:10px; color:#9ca3af; text-transform:uppercase; letter-spacing:1.5px; font-weight:500; }
.metrics-row { display:flex; gap:20px; flex-wrap:wrap; }
.metric-box { flex:1; min-width:120px; text-align:center; padding:20px 12px; background:white; border-radius:8px; border:1px solid #e5e7eb; }
ul { padding-left:20px; margin:8px 0; } li { margin:5px 0; font-size:13px; color:#4b5563; }
.highlight { background:#f3f4f6; padding:2px 8px; border-radius:4px; font-weight:600; color:#111827; }
.quote { background:white; border-left:2px solid #111827; padding:16px 20px; margin:14px 0; font-style:italic; color:#6b7280; }
.flow-step { display:flex; align-items:center; gap:8px; margin:6px 0; font-size:13px; }
.flow-arrow { color:#111827; font-weight:700; }
code { background:#f3f4f6; padding:2px 8px; border-radius:4px; font-size:12px; color:#374151; }
.divider { height:1px; background:#e5e7eb; margin:40px 0; }
@media print { .card { background:white; border:1px solid #e5e7eb; } }
Step 3: HTML Report Structure
Use this consistent HTML structure across all templates. Replace the <style>...</style> block with the chosen template CSS above.
<!DOCTYPE html>
<html><head><meta charset="UTF-8">
<style>
</style>
</head><body>
<div class="container">
<h1>[Report Title]</h1>
<p class="subtitle">[Account Handle] · [Topic Focus] · [Date]</p>
<h2>🔍 Account Diagnostic: @[handle]</h2>
<div class="card card-blue">
<h3>Account Overview</h3>
<div class="metrics-row">
<div class="metric-box"><div class="metric">[followers]</div><div class="metric-label">Followers</div></div>
<div class="metric-box"><div class="metric">[health_score]</div><div class="metric-label">Health Score</div></div>
<div class="metric-box"><div class="metric">[avg_likes]</div><div class="metric-label">Avg Likes</div></div>
<div class="metric-box"><div class="metric">[viral_ratio]</div><div class="metric-label">Viral Ratio</div></div>
</div>
</div>
<h2>📊 Competitive Benchmarking</h2>
<h2>🔬 Post Diagnosis</h2>
<h2>⚙️ Threads Algorithm Reference</h2>
<h2>🎯 Content Strategy</h2>
<h2>📝 First 10 Topics</h2>
<h2>📈 Growth Milestones</h2>
<div class="divider"></div>
<p style="text-align:center; color:#888; font-size:12px;">Generated by Sai · Threads Brand Strategist · [Date]</p>
</div>
</body></html>
Design Enhancement Rules (Xiaohongshu-inspired)
Apply these design principles regardless of template:
- Generous whitespace — padding and margins should feel spacious, never cramped
- Rounded corners everywhere — minimum 8px border-radius on all cards and tables
- Subtle gradients — backgrounds should have soft gradients, never flat solid colors
- Metric boxes — key numbers displayed in large bold font with small uppercase labels below
- Color-coded severity — Red for critical/P0, Amber for warning/P1, Green for good/P2
- Card-based layout — every section wrapped in a card with subtle shadow/border
- Visual hierarchy — h1 > h2 (with colored accent) > h3 (uppercase small) > body text
- Tables with personality — colored headers, zebra striping, rounded corners on first/last cells
- Pull quotes — key insights highlighted in styled quote blocks with left border
- Flow steps — distribution flow shown as arrow-connected steps, not bullets
- Print-friendly —
@media print rules to ensure clean printing
Safety & Rate Limiting Rules
- Read-only: This skill only READS Threads profiles and posts. It NEVER posts, comments, likes, follows, or takes any action on behalf of the user.
- Rate limiting: Wait 3-5 seconds between page loads when scraping multiple profiles. Wait 1-2 seconds between scroll cycles.
- Login modal: Threads often shows a login modal. Always press Escape to dismiss it before interacting. If the modal persists, use
page.press({ key: 'Escape' }) multiple times.
- CAPTCHA detection: If any CAPTCHA appears, STOP immediately and notify the user. Do not attempt to bypass.
- Session limits: Maximum 6 accounts per analysis session (1 own + 5 competitors).
- Data privacy: Do not store or share other users' profile data outside the analysis report.
- Honest assessment: If an account is underperforming, say so with data. Do not sugarcoat.
- Missing data: If engagement numbers aren't visible (Threads sometimes hides them for non-logged-in users), note the limitation explicitly. Use screenshots to capture visual data.
Quick Start Examples
- "Analyze my Threads account" → Run Module 1 on their account → Generate report with Template 2
- "Compare these 3 accounts and build me a strategy" → Module 1 on each → Module 2 for comparison → Module 4 for strategy → Module 5 for report
- "Why isn't my post getting views?" → Module 3 on the post → Check account followers → Diagnose distribution vs content
- "Build me a LinkedIn content plan for Threads" → Module 4 with topic="LinkedIn tips" → Module 5 for report
- "Full analysis: my account + 4 competitors + strategy + report" → Module 1 (×5) → Module 2 → Module 4 → Module 5
Always ask for template preference before generating the final report. If user doesn't specify, default to Template 2 (Ocean).