Tiktok script writer
Write short-form video scripts for TikTok, Instagram Reels, and YouTube Shorts that promote affiliate products with strong hooks, demos, and CTAs.
How to use it
- Hit Copy the whole skill.
- Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
ChatGPT: make a Project and paste it into Instructions.
Neither? Paste it at the top of a new chat — it works for that chat. - Describe your job in plain words. The AI follows the skill from there.
npx degit Affitor/affiliate-skills/skills/content/tiktok-script-writer#main ~/.claude/skills/tiktok-script-writerFor one project only, change the path to .claude/skills/tiktok-script-writer.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Show the full text376 lines
TikTok Script Writer
Write punchy 30-60 second video scripts for TikTok, Instagram Reels, and YouTube Shorts that stop the scroll, demo the product naturally, and drive affiliate link clicks. Every script is structured for vertical video: hook → problem → demo → result → CTA.
Stage
This skill belongs to Stage S2: Content
When to Use
- User wants to promote an affiliate product on short-form video platforms
- User has an affiliate program picked (from S1) and needs TikTok/Reels content
- User asks for video script ideas for TikTok affiliate marketing
- User wants a hook-first script that converts viewers to buyers
- User creates content on TikTok, Instagram Reels, or YouTube Shorts
Input Schema
{
product: {
name: string # (required) "HeyGen"
description: string # (optional) What it does — will be researched if missing
url: string # (optional) Affiliate link or product URL
reward_value: string # (optional) Commission info — never shown in script
}
duration: number # (optional, default: 45) Target duration in seconds: 15 | 30 | 45 | 60
platform: string # (optional, default: "tiktok") "tiktok" | "reels" | "shorts" | "all"
hook_style: string # (optional, default: auto) "question" | "shock" | "relatable" | "bold_claim" | "demo_first"
creator_persona: string # (optional) "beginner marketer" | "tech reviewer" | "productivity nerd"
has_product_access: boolean # (optional, default: true) Can creator do live demo?
personal_experience: string # (optional) Real experience to weave in
audience: string # (optional) "freelancers" | "small business owners" | "students"
}
Workflow
Step 1: Research the Product
If product details are sparse, use web_search "[product name] what it does tutorial" to find:
- The single most impressive thing the product does (demo-able in <20 seconds)
- The main pain it eliminates (hook material)
- A specific result users achieve (e.g., "make a talking avatar video in 2 minutes")
- Any free trial or free tier (reduces friction for CTA)
Concrete specifics > vague claims. "Creates a 2-minute video in 30 seconds" beats "saves time on video creation".
Step 1.5: Analyze Top Performing TikToks (data-driven)
Before selecting hook style, see what's actually winning in this niche on TikTok:
If trending-content-scout ran earlier:
- Use TikTok-specific data from
top_content - Extract: winning hooks, optimal duration, top creators' styles
- Use
engagement_benchmarkto set a target engagement score - If
content-angle-rankerprovided arecommended_angle→ use it
If no scout data (quick mode):
web_search "[product name] tiktok"→ find top TikTok videosweb_search "best [niche] tiktok viral"→ find format patternsweb_search "[product name] tiktok review"→ see existing content- Note view counts, styles, and durations visible in search results
Apply findings to script:
- If demo_first hooks have 2x engagement in this niche → default to demo_first
- If 30-45s videos outperform 60s → adjust duration target
- If a specific creator style dominates → note as reference (adapt, don't copy)
- If
engagement_benchmark.median_viewsis known → aim to beat it with better hook + format
This step takes <2 minutes but can 3x the script's potential by building on proven patterns instead of guessing.
Step 2: Select the Hook Style
Short-form video is won or lost in seconds 1-3. Pick the hook based on the product's strongest angle:
| Hook Style | Template | Best For |
|---|---|---|
| Question | "What if you could [result] without [pain]?" | Products that remove a hard task |
| Shock/Stat | "I replaced [expensive thing] with a $[price]/mo tool" | Cost/efficiency wins |
| Relatable | "[Frustrating situation]? Same. Then I found this." | Niche audience pain |
| Bold Claim | "This [tool] is the reason I [impressive result]" | Strong ROI proof |
| Demo First | [Open with screen recording of the coolest feature immediately] | Visual/AI tools |
| Story Opener | "6 months ago I was [before state]. Now [after state]. Here's why." | Transformation |
For AI tools and visual products → Demo First almost always wins on TikTok. For SaaS productivity tools → Relatable or Shock/Stat hooks work well.
Step 3: Structure the Script
Every script follows this structure (adapt timing to duration):
For 45-second scripts:
- 0-3s: Hook (spoken + on-screen text)
- 3-8s: Relatable pain or setup
- 8-30s: Live demo OR narrated walkthrough of key feature
- 30-38s: Specific result / proof
- 38-44s: CTA (bio link, comment for link, or "link in bio")
- 44-45s: FTC disclosure overlay
For 30-second scripts:
- 0-3s: Hook
- 3-15s: Demo the #1 feature
- 15-25s: Result + social proof
- 25-30s: CTA + disclosure
For 60-second scripts:
- 0-3s: Hook
- 3-10s: Problem setup
- 10-40s: Full demo (2-3 features)
- 40-52s: Results + pricing mention (anchoring)
- 52-58s: CTA
- 58-60s: FTC disclosure
Step 4: Write the Script
Format scripts with:
- [VISUAL] — what's on screen (screen recording, hands typing, reaction face, b-roll)
- [SPOKEN] — what the creator says (keep sentences short, max 10 words each)
- [TEXT OVERLAY] — on-screen text (keywords for silent viewers — 40% watch with no sound)
- [CAPTION] — suggested TikTok caption + hashtags
Writing rules:
- Sentences under 10 words. TikTok viewers process fast.
- No filler phrases: "basically", "literally", "you know what I mean"
- Every 3-5 seconds: new visual cut, new text overlay, or spoken transition
- Sound-optional: the text overlay should tell the whole story without audio
- End the hook WITH the setup — don't just ask a question, tease the answer
- The demo must be REAL — no vague "and then it does this amazing thing"
Step 5: Add FTC Disclosure
Per shared/references/ftc-compliance.md for short-form video:
- Verbal disclosure if spoken at all (not required but best practice)
- Text overlay "#ad" or "Affiliate link in bio" must appear during CTA section
- Disclosure must be visible for at least 3 seconds
- Do NOT bury in caption — overlay is required per FTC guidance
Step 6: Add Production Notes
Include brief notes for the creator:
- What to screen-record vs. film on camera
- Suggested background music BPM range (fast = tech demos, mid = tutorials)
- Caption and hashtag strategy for the platform
- Best time to post on each platform
Step 7: Self-Validation
Before presenting output, verify:
- Spoken sentences under 10 words each
- New visual cut or text overlay every 3-5 seconds
- FTC "#ad" appears as text overlay, NOT buried in caption
- Disclosure overlay visible for at least 3 seconds
- Hook ends with setup, not just a question
- Demo shows specific feature, not vague claims
If any check fails, fix the output before delivering. Do not flag the checklist to the user — just ensure the output passes.
Output Schema
{
output_schema_version: "1.0.0" # Semver — bump major on breaking changes
scripts: [
{
platform: string # "tiktok" | "reels" | "shorts"
duration_seconds: number # 45
hook_style: string # "demo_first"
scenes: [
{
timecode: string # "0-3s"
visual: string
spoken: string
text_overlay: string
}
]
caption: string # Full TikTok caption
hashtags: string[] # Suggested hashtags
disclosure: string # How and when FTC disclosure appears
}
]
product_name: string
content_angle: string
hook_used: string
}
Output Format
## TikTok Script: [Product Name] ([Duration]s)
**Hook Style:** [Style name]
**Platform:** [TikTok / Reels / Shorts]
**Target Audience:** [Who this is for]
---
### Script
| Time | Visual | Spoken | Text Overlay |
|------|--------|--------|-------------|
| 0-3s | [What's on screen] | "[Hook line]" | [On-screen text] |
| 3-8s | [Visual] | "[Spoken]" | [Overlay] |
| ... | ... | ... | ... |
---
### Caption
[Full caption text — optimized for TikTok SEO]
**Hashtags:** #[tag1] #[tag2] #[tag3] (5-8 tags max)
---
### Production Notes
- **Film:** [Camera vs screen recording breakdown]
- **Music:** [BPM and mood suggestion]
- **Best time to post:** [Platform-specific optimal time]
- **Disclosure:** #ad text overlay appears at [timecode] for [X] seconds
---
### Hook Alternatives
Want a different opening? Try:
- **[Hook Style 2]:** "[Alternative opening line]"
- **[Hook Style 3]:** "[Alternative opening line]"
Error Handling
- No product info: Ask what product they're promoting. If they came from S1, pull
recommended_programfrom context. - Product isn't visual / hard to demo: Shift to reaction/testimonial format — creator's face on screen reacting to the tool, narrating the discovery.
- User has no product access: Write a "third-person discovery" script — "My friend showed me this tool and I had to share it"
- Duration feels too long for the content: Cut the demo to single strongest moment. If 30s still feels crowded, suggest two separate videos (problem setup + solution).
- Platform unspecified: Default to TikTok. Mention Reels and Shorts are the same script with minor caption/hashtag adjustments.
Examples
Example 1: User: "Write a 45-second TikTok script for HeyGen" → Research: HeyGen creates AI avatar videos, talking head from text → Hook: Demo first — open with a finished AI video playing → Script: [0-3s] Show output video → [3-8s] "Made this in 2 minutes, no camera" → [8-30s] Screen record: paste script → avatar speaks → [30-38s] "Used this for my client, saved 4 hours" → [38-44s] "Link in bio, 30-day free trial" → [44-45s] "#ad overlay"
Example 2: User: "TikTok script for Notion affiliate, targeting students" → Hook: Relatable — "POV: it's 2am before finals and your notes are chaos" → Demo: Notion AI organizing scattered notes into a study guide → CTA: "Free forever plan — link in bio" → Caption: "study with me + notion hacks" for algorithm reach
Example 3: User: "I need 3 different hooks for a ConvertKit TikTok script" → Write hook-only variants: Question / Shock / Bold Claim → Full script for the strongest one, alternative openings for others → Note which hook style historically performs best for SaaS on TikTok
References
shared/references/ftc-compliance.md— disclosure rules for short-form videoshared/references/affiliate-glossary.md— reward_type and program terminologyshared/references/platform-rules.md— TikTok/Reels/Shorts format specsshared/references/flywheel-connections.md— master flywheel connection map
Revenue & Action Plan
Expected Outcomes
- Revenue potential: TikTok affiliate videos average 1-3% bio link click rate. A video with 10,000 views = 100-300 bio link clicks. At 2% conversion and $50 commission = $100-300 per viral video
- Benchmark: Top TikTok affiliates report $500-2,000/month from 3-5 videos per week. The algorithm rewards consistency — your 10th video performs better than your 1st
- Key metric to track: Bio link clicks per video (use a link-in-bio tool with click tracking like Beacons or your own bio-link page from
bio-link-deployer)
Do This Right Now (15 min)
- Film the script TODAY — don't wait. The script is ready, your phone is the camera
- Screen-record the product demo section (the hardest part to improvise)
- Post on TikTok, then cross-post to Instagram Reels and YouTube Shorts (3 platforms, 1 video)
- Add your affiliate link to your bio before posting
Track Your Results
After 5 videos, check: which hook style got the highest completion rate? Which video drove the most bio link clicks? Use that hook style for your next 5 videos.
Next step — copy-paste this prompt: "Schedule my TikTok content for the next 30 days" → runs
social-media-scheduler
Flywheel Connections
Feeds Into
social-media-scheduler(S5) — scripts ready to schedule for filming/postingcontent-pillar-atomizer(S2) — successful scripts become content to atomize further
Fed By
trending-content-scout(S1) — top TikTok content + engagement data + winning hookscontent-angle-ranker(S1) — recommended angle with format, hook, and parametersaffiliate-program-search(S1) —recommended_programproduct datapurple-cow-audit(S1) — remarkable angles for script hookscontent-pillar-atomizer(S2) — atomized TikTok scripts from pillar content
Feedback Loop
- Video view count and completion rate reveal which hook styles work → optimize hook selection
Quality Gate
Before delivering output, verify:
- Would I share this on MY personal social?
- Contains specific, surprising detail? (not generic)
- Respects reader's intelligence?
- Remarkable enough to share? (Purple Cow test)
- Irresistible offer framing? (if S4 offer skills ran)
Any NO → rewrite before delivering.
Volume Mode
When mode: "volume":
- Generate 5-10 hook variations for the same product
- Prioritize speed + variety over perfection
- Tag each with variant ID for A/B tracking
- Let data pick the winner
volume_output:
variants:
- id: string
content: string
angle: string
chain_metadata:
skill_slug: "tiktok-script-writer"
stage: "content"
timestamp: string
suggested_next:
- "social-media-scheduler"
- "content-pillar-atomizer"
| 1 | |
| 2 | name tiktok-script-writer |
| 3 | description > |
| 4 | Write short-form video scripts for TikTok, Instagram Reels, and YouTube Shorts |
| 5 | that promote affiliate products with strong hooks, demos, and CTAs. |
| 6 | Use this skill when the user asks about TikTok scripts, Reels scripts, Shorts |
| 7 | scripts, short-form video for affiliate marketing, or says "write a TikTok for X", |
| 8 | "script a Reel promoting X", "YouTube Shorts script affiliate", "60-second video |
| 9 | script", "hook for TikTok affiliate", "write a video promoting X", "TikTok script |
| 10 | that converts", "short video script for product review", "viral TikTok affiliate |
| 11 | script", "how to promote X on TikTok". |
| 12 | license MIT |
| 13 | version "1.0.0" |
| 14 | tags ["affiliate-marketing", "content-creation", "social-media", "copywriting", "tiktok", "video"] |
| 15 | compatibility "Claude Code, ChatGPT, Gemini CLI, Cursor, Windsurf, OpenClaw, any AI agent" |
| 16 | metadata |
| 17 | author affitor |
| 18 | version "1.0" |
| 19 | stage S2-Content |
| 20 | |
| 21 | |
| 22 | # TikTok Script Writer |
| 23 | |
| 24 | Write punchy 30-60 second video scripts for TikTok, Instagram Reels, and YouTube |
| 25 | Shorts that stop the scroll, demo the product naturally, and drive affiliate link |
| 26 | clicks. Every script is structured for vertical video: hook → problem → demo → |
| 27 | result → CTA. |
| 28 | |
| 29 | ## Stage |
| 30 | |
| 31 | This skill belongs to Stage S2: Content |
| 32 | |
| 33 | ## When to Use |
| 34 | |
| 35 | User wants to promote an affiliate product on short-form video platforms |
| 36 | User has an affiliate program picked (from S1) and needs TikTok/Reels content |
| 37 | User asks for video script ideas for TikTok affiliate marketing |
| 38 | User wants a hook-first script that converts viewers to buyers |
| 39 | User creates content on TikTok, Instagram Reels, or YouTube Shorts |
| 40 | |
| 41 | ## Input Schema |
| 42 | |
| 43 | |
| 44 | { |
| 45 | product: { |
| 46 | name: string # (required) "HeyGen" |
| 47 | description: string # (optional) What it does — will be researched if missing |
| 48 | url: string # (optional) Affiliate link or product URL |
| 49 | reward_value: string # (optional) Commission info — never shown in script |
| 50 | } |
| 51 | duration: number # (optional, default: 45) Target duration in seconds: 15 | 30 | 45 | 60 |
| 52 | platform: string # (optional, default: "tiktok") "tiktok" | "reels" | "shorts" | "all" |
| 53 | hook_style: string # (optional, default: auto) "question" | "shock" | "relatable" | "bold_claim" | "demo_first" |
| 54 | creator_persona: string # (optional) "beginner marketer" | "tech reviewer" | "productivity nerd" |
| 55 | has_product_access: boolean # (optional, default: true) Can creator do live demo? |
| 56 | personal_experience: string # (optional) Real experience to weave in |
| 57 | audience: string # (optional) "freelancers" | "small business owners" | "students" |
| 58 | } |
| 59 | |
| 60 | |
| 61 | ## Workflow |
| 62 | |
| 63 | ### Step 1: Research the Product |
| 64 | |
| 65 | If product details are sparse, use `web_search "[product name] what it does tutorial"` to find: |
| 66 | The single most impressive thing the product does (demo-able in <20 seconds) |
| 67 | The main pain it eliminates (hook material) |
| 68 | A specific result users achieve (e.g., "make a talking avatar video in 2 minutes") |
| 69 | Any free trial or free tier (reduces friction for CTA) |
| 70 | |
| 71 | Concrete specifics > vague claims. "Creates a 2-minute video in 30 seconds" beats |
| 72 | "saves time on video creation". |
| 73 | |
| 74 | ### Step 1.5: Analyze Top Performing TikToks (data-driven) |
| 75 | |
| 76 | Before selecting hook style, see what's actually winning in this niche on TikTok: |
| 77 | |
| 78 | **If `trending-content-scout` ran earlier:** |
| 79 | Use TikTok-specific data from `top_content` |
| 80 | Extract: winning hooks, optimal duration, top creators' styles |
| 81 | Use `engagement_benchmark` to set a target engagement score |
| 82 | If `content-angle-ranker` provided a `recommended_angle` → use it |
| 83 | |
| 84 | **If no scout data (quick mode):** |
| 85 | `web_search "[product name] tiktok"` → find top TikTok videos |
| 86 | `web_search "best [niche] tiktok viral"` → find format patterns |
| 87 | `web_search "[product name] tiktok review"` → see existing content |
| 88 | Note view counts, styles, and durations visible in search results |
| 89 | |
| 90 | **Apply findings to script:** |
| 91 | If demo_first hooks have 2x engagement in this niche → default to demo_first |
| 92 | If 30-45s videos outperform 60s → adjust duration target |
| 93 | If a specific creator style dominates → note as reference (adapt, don't copy) |
| 94 | If `engagement_benchmark.median_views` is known → aim to beat it with better hook + format |
| 95 | |
| 96 | This step takes <2 minutes but can 3x the script's potential by building on |
| 97 | proven patterns instead of guessing. |
| 98 | |
| 99 | ### Step 2: Select the Hook Style |
| 100 | |
| 101 | Short-form video is won or lost in seconds 1-3. Pick the hook based on the product's |
| 102 | strongest angle: |
| 103 | |
| 104 | | Hook Style | Template | Best For | |
| 105 | |------------|----------|----------| |
| 106 | | **Question** | "What if you could [result] without [pain]?" | Products that remove a hard task | |
| 107 | | **Shock/Stat** | "I replaced [expensive thing] with a $[price]/mo tool" | Cost/efficiency wins | |
| 108 | | **Relatable** | "[Frustrating situation]? Same. Then I found this." | Niche audience pain | |
| 109 | | **Bold Claim** | "This [tool] is the reason I [impressive result]" | Strong ROI proof | |
| 110 | | **Demo First** | [Open with screen recording of the coolest feature immediately] | Visual/AI tools | |
| 111 | | **Story Opener** | "6 months ago I was [before state]. Now [after state]. Here's why." | Transformation | |
| 112 | |
| 113 | For AI tools and visual products → **Demo First** almost always wins on TikTok. |
| 114 | For SaaS productivity tools → **Relatable** or **Shock/Stat** hooks work well. |
| 115 | |
| 116 | ### Step 3: Structure the Script |
| 117 | |
| 118 | Every script follows this structure (adapt timing to duration): |
| 119 | |
| 120 | **For 45-second scripts:** |
| 121 | 0-3s: Hook (spoken + on-screen text) |
| 122 | 3-8s: Relatable pain or setup |
| 123 | 8-30s: Live demo OR narrated walkthrough of key feature |
| 124 | 30-38s: Specific result / proof |
| 125 | 38-44s: CTA (bio link, comment for link, or "link in bio") |
| 126 | 44-45s: FTC disclosure overlay |
| 127 | |
| 128 | **For 30-second scripts:** |
| 129 | 0-3s: Hook |
| 130 | 3-15s: Demo the #1 feature |
| 131 | 15-25s: Result + social proof |
| 132 | 25-30s: CTA + disclosure |
| 133 | |
| 134 | **For 60-second scripts:** |
| 135 | 0-3s: Hook |
| 136 | 3-10s: Problem setup |
| 137 | 10-40s: Full demo (2-3 features) |
| 138 | 40-52s: Results + pricing mention (anchoring) |
| 139 | 52-58s: CTA |
| 140 | 58-60s: FTC disclosure |
| 141 | |
| 142 | ### Step 4: Write the Script |
| 143 | |
| 144 | Format scripts with: |
| 145 | **[VISUAL]** — what's on screen (screen recording, hands typing, reaction face, b-roll) |
| 146 | **[SPOKEN]** — what the creator says (keep sentences short, max 10 words each) |
| 147 | **[TEXT OVERLAY]** — on-screen text (keywords for silent viewers — 40% watch with no sound) |
| 148 | **[CAPTION]** — suggested TikTok caption + hashtags |
| 149 | |
| 150 | Writing rules: |
| 151 | Sentences under 10 words. TikTok viewers process fast. |
| 152 | No filler phrases: "basically", "literally", "you know what I mean" |
| 153 | Every 3-5 seconds: new visual cut, new text overlay, or spoken transition |
| 154 | Sound-optional: the text overlay should tell the whole story without audio |
| 155 | End the hook WITH the setup — don't just ask a question, tease the answer |
| 156 | The demo must be REAL — no vague "and then it does this amazing thing" |
| 157 | |
| 158 | ### Step 5: Add FTC Disclosure |
| 159 | |
| 160 | Per `shared/references/ftc-compliance.md` for short-form video: |
| 161 | Verbal disclosure if spoken at all (not required but best practice) |
| 162 | Text overlay "#ad" or "Affiliate link in bio" must appear during CTA section |
| 163 | Disclosure must be visible for at least 3 seconds |
| 164 | Do NOT bury in caption — overlay is required per FTC guidance |
| 165 | |
| 166 | ### Step 6: Add Production Notes |
| 167 | |
| 168 | Include brief notes for the creator: |
| 169 | What to screen-record vs. film on camera |
| 170 | Suggested background music BPM range (fast = tech demos, mid = tutorials) |
| 171 | Caption and hashtag strategy for the platform |
| 172 | Best time to post on each platform |
| 173 | |
| 174 | ### Step 7: Self-Validation |
| 175 | |
| 176 | Before presenting output, verify: |
| 177 | |
| 178 | [ ] Spoken sentences under 10 words each |
| 179 | [ ] New visual cut or text overlay every 3-5 seconds |
| 180 | [ ] FTC "#ad" appears as text overlay, NOT buried in caption |
| 181 | [ ] Disclosure overlay visible for at least 3 seconds |
| 182 | [ ] Hook ends with setup, not just a question |
| 183 | [ ] Demo shows specific feature, not vague claims |
| 184 | |
| 185 | If any check fails, fix the output before delivering. Do not flag the checklist to the user — just ensure the output passes. |
| 186 | |
| 187 | ## Output Schema |
| 188 | |
| 189 | |
| 190 | { |
| 191 | output_schema_version: "1.0.0" # Semver — bump major on breaking changes |
| 192 | scripts: [ |
| 193 | { |
| 194 | platform: string # "tiktok" | "reels" | "shorts" |
| 195 | duration_seconds: number # 45 |
| 196 | hook_style: string # "demo_first" |
| 197 | scenes: [ |
| 198 | { |
| 199 | timecode: string # "0-3s" |
| 200 | visual: string |
| 201 | spoken: string |
| 202 | text_overlay: string |
| 203 | } |
| 204 | ] |
| 205 | caption: string # Full TikTok caption |
| 206 | hashtags: string[] # Suggested hashtags |
| 207 | disclosure: string # How and when FTC disclosure appears |
| 208 | } |
| 209 | ] |
| 210 | product_name: string |
| 211 | content_angle: string |
| 212 | hook_used: string |
| 213 | } |
| 214 | |
| 215 | |
| 216 | ## Output Format |
| 217 | |
| 218 | |
| 219 | ## TikTok Script: [Product Name] ([Duration]s) |
| 220 | |
| 221 | **Hook Style:** [Style name] |
| 222 | **Platform:** [TikTok / Reels / Shorts] |
| 223 | **Target Audience:** [Who this is for] |
| 224 | |
| 225 | |
| 226 | |
| 227 | ### Script |
| 228 | |
| 229 | | Time | Visual | Spoken | Text Overlay | |
| 230 | |------|--------|--------|-------------| |
| 231 | | 0-3s | [What's on screen] | "[Hook line]" | [On-screen text] | |
| 232 | | 3-8s | [Visual] | "[Spoken]" | [Overlay] | |
| 233 | | ... | ... | ... | ... | |
| 234 | |
| 235 | |
| 236 | |
| 237 | ### Caption |
| 238 | |
| 239 | [Full caption text — optimized for TikTok SEO] |
| 240 | |
| 241 | **Hashtags:** #[tag1] #[tag2] #[tag3] (5-8 tags max) |
| 242 | |
| 243 | |
| 244 | |
| 245 | ### Production Notes |
| 246 | |
| 247 | - **Film:** [Camera vs screen recording breakdown] |
| 248 | - **Music:** [BPM and mood suggestion] |
| 249 | - **Best time to post:** [Platform-specific optimal time] |
| 250 | - **Disclosure:** #ad text overlay appears at [timecode] for [X] seconds |
| 251 | |
| 252 | |
| 253 | |
| 254 | ### Hook Alternatives |
| 255 | |
| 256 | Want a different opening? Try: |
| 257 | - **[Hook Style 2]:** "[Alternative opening line]" |
| 258 | - **[Hook Style 3]:** "[Alternative opening line]" |
| 259 | |
| 260 | |
| 261 | ## Error Handling |
| 262 | |
| 263 | **No product info:** Ask what product they're promoting. If they came from S1, pull |
| 264 | `recommended_program` from context. |
| 265 | **Product isn't visual / hard to demo:** Shift to reaction/testimonial format — |
| 266 | creator's face on screen reacting to the tool, narrating the discovery. |
| 267 | **User has no product access:** Write a "third-person discovery" script — |
| 268 | "My friend showed me this tool and I had to share it" |
| 269 | **Duration feels too long for the content:** Cut the demo to single strongest moment. |
| 270 | If 30s still feels crowded, suggest two separate videos (problem setup + solution). |
| 271 | **Platform unspecified:** Default to TikTok. Mention Reels and Shorts are the same script |
| 272 | with minor caption/hashtag adjustments. |
| 273 | |
| 274 | ## Examples |
| 275 | |
| 276 | **Example 1:** |
| 277 | User: "Write a 45-second TikTok script for HeyGen" |
| 278 | → Research: HeyGen creates AI avatar videos, talking head from text |
| 279 | → Hook: Demo first — open with a finished AI video playing |
| 280 | → Script: [0-3s] Show output video → [3-8s] "Made this in 2 minutes, no camera" → |
| 281 | [8-30s] Screen record: paste script → avatar speaks → [30-38s] "Used this for |
| 282 | my client, saved 4 hours" → [38-44s] "Link in bio, 30-day free trial" → [44-45s] "#ad overlay" |
| 283 | |
| 284 | **Example 2:** |
| 285 | User: "TikTok script for Notion affiliate, targeting students" |
| 286 | → Hook: Relatable — "POV: it's 2am before finals and your notes are chaos" |
| 287 | → Demo: Notion AI organizing scattered notes into a study guide |
| 288 | → CTA: "Free forever plan — link in bio" |
| 289 | → Caption: "study with me + notion hacks" for algorithm reach |
| 290 | |
| 291 | **Example 3:** |
| 292 | User: "I need 3 different hooks for a ConvertKit TikTok script" |
| 293 | → Write hook-only variants: Question / Shock / Bold Claim |
| 294 | → Full script for the strongest one, alternative openings for others |
| 295 | → Note which hook style historically performs best for SaaS on TikTok |
| 296 | |
| 297 | ## References |
| 298 | |
| 299 | `shared/references/ftc-compliance.md` — disclosure rules for short-form video |
| 300 | `shared/references/affiliate-glossary.md` — reward_type and program terminology |
| 301 | `shared/references/platform-rules.md` — TikTok/Reels/Shorts format specs |
| 302 | `shared/references/flywheel-connections.md` — master flywheel connection map |
| 303 | |
| 304 | ## Revenue & Action Plan |
| 305 | |
| 306 | ### Expected Outcomes |
| 307 | **Revenue potential**: TikTok affiliate videos average 1-3% bio link click rate. A video with 10,000 views = 100-300 bio link clicks. At 2% conversion and $50 commission = $100-300 per viral video |
| 308 | **Benchmark**: Top TikTok affiliates report $500-2,000/month from 3-5 videos per week. The algorithm rewards consistency — your 10th video performs better than your 1st |
| 309 | **Key metric to track**: Bio link clicks per video (use a link-in-bio tool with click tracking like Beacons or your own bio-link page from `bio-link-deployer`) |
| 310 | |
| 311 | ### Do This Right Now (15 min) |
| 312 | **Film the script TODAY** — don't wait. The script is ready, your phone is the camera |
| 313 | Screen-record the product demo section (the hardest part to improvise) |
| 314 | Post on TikTok, then cross-post to Instagram Reels and YouTube Shorts (3 platforms, 1 video) |
| 315 | Add your affiliate link to your bio before posting |
| 316 | |
| 317 | ### Track Your Results |
| 318 | After 5 videos, check: which hook style got the highest completion rate? Which video drove the most bio link clicks? Use that hook style for your next 5 videos. |
| 319 | |
| 320 | > **Next step — copy-paste this prompt:** |
| 321 | > "Schedule my TikTok content for the next 30 days" → runs `social-media-scheduler` |
| 322 | |
| 323 | ## Flywheel Connections |
| 324 | |
| 325 | ### Feeds Into |
| 326 | `social-media-scheduler` (S5) — scripts ready to schedule for filming/posting |
| 327 | `content-pillar-atomizer` (S2) — successful scripts become content to atomize further |
| 328 | |
| 329 | ### Fed By |
| 330 | `trending-content-scout` (S1) — top TikTok content + engagement data + winning hooks |
| 331 | `content-angle-ranker` (S1) — recommended angle with format, hook, and parameters |
| 332 | `affiliate-program-search` (S1) — `recommended_program` product data |
| 333 | `purple-cow-audit` (S1) — remarkable angles for script hooks |
| 334 | `content-pillar-atomizer` (S2) — atomized TikTok scripts from pillar content |
| 335 | |
| 336 | ### Feedback Loop |
| 337 | Video view count and completion rate reveal which hook styles work → optimize hook selection |
| 338 | |
| 339 | ## Quality Gate |
| 340 | |
| 341 | Before delivering output, verify: |
| 342 | |
| 343 | Would I share this on MY personal social? |
| 344 | Contains specific, surprising detail? (not generic) |
| 345 | Respects reader's intelligence? |
| 346 | Remarkable enough to share? (Purple Cow test) |
| 347 | Irresistible offer framing? (if S4 offer skills ran) |
| 348 | |
| 349 | Any NO → rewrite before delivering. |
| 350 | |
| 351 | ## Volume Mode |
| 352 | |
| 353 | When `mode: "volume"`: |
| 354 | Generate 5-10 hook variations for the same product |
| 355 | Prioritize speed + variety over perfection |
| 356 | Tag each with variant ID for A/B tracking |
| 357 | Let data pick the winner |
| 358 | |
| 359 | |
| 360 | volume_output: |
| 361 | variants: |
| 362 | - id: string |
| 363 | content: string |
| 364 | angle: string |
| 365 | |
| 366 | |
| 367 | |
| 368 | chain_metadata: |
| 369 | skill_slug: "tiktok-script-writer" |
| 370 | stage: "content" |
| 371 | timestamp: string |
| 372 | suggested_next: |
| 373 | - "social-media-scheduler" |
| 374 | - "content-pillar-atomizer" |
| 375 | |
| 376 |