How to write viral hooks for short-form video (2026 framework)
Write hooks that stop the scroll. Five-stage framework: pattern interrupt, curiosity gap, contrarian frame, specific outcome, and the 3-second rule. Includes examples and A/B test setup.
Last verified 2026-05-22
A hook is the first 1-3 seconds of a short-form video. It is the single highest-leverage variable on TikTok, Reels, and Shorts — a great hook with mediocre content beats great content with a weak hook every time, because the algorithm scores you on watch time and watch time starts with someone not swiping past.
This is not really a tutorial in the standard sense. It is a five-stage framework for writing hooks, with the framework stages presented as the steps. Each stage is a question to ask about your script before you press record, and each has a pattern, a contrarian, and a specific-outcome variant you can pick from depending on the format and topic.
Hooks are language and timing, not magic. After reading this you should be able to take any script and produce three hook variants in under 10 minutes, test them, and pick the winner from real data instead of from gut feel.
The steps
Stage 1 — Identify the pattern interrupt. A pattern interrupt is something visually or audibly unexpected in the first frame. The default frames TikTok and Reels show in feed are: a face talking, a slow zoom, a stock-music intro. Anything else stands out. Practical patterns: start mid-action (jumping out of bed, slamming a door, mid-sentence), start with an unexpected visual (a 3D object, a graphic overlay, a chart), or start with text overlay that contradicts what the viewer is about to see. Question to ask: "What is the LAST thing someone scrolling expects to see in frame 1?"
Stage 2 — Open a curiosity gap in the first sentence. A curiosity gap is a gap between what the viewer knows and what they need to know to make sense of what you said. "Why I quit my $400k job" opens a gap (why?). "I made $10k last month" closes it (you made money, story over). Convert closed statements into open ones: "I made $10k last month doing this one thing nobody talks about" → opens the "what thing" gap. Question to ask: "Does my first sentence make the viewer NEED to hear the next sentence?"
Stage 3 — Add a contrarian frame. Most short-form content reinforces what the audience already believes. Contrarian hooks invert the consensus and create a tension the viewer needs to resolve. Examples: "Stop posting every day on TikTok" (vs the consensus "post every day"), "Why I am leaving Instagram" (vs "Instagram is essential"), "$10k/month from one client beats 100 clients" (vs "scale your roster"). Be honest — the rest of the video has to actually defend the contrarian frame. Bait-and-switch hooks tank watch time on the second viewing.
Stage 4 — Anchor a specific outcome. Specific outcomes outperform vague benefits. "I lost 18 pounds" beats "I got healthier." "I made $12,847 last week" beats "I made some money." "47 leads in 3 days" beats "lots of leads." Specificity does three things: it signals real experience (you remember the exact number), it activates loss-aversion (the viewer wants to know how to reproduce that specific number), and it ranks higher on credibility heuristics. If you do not have a specific outcome to anchor, the script is not ready to hook around — go find one.
Stage 5 — Compress to the 3-second rule. The first 3 seconds carry 70% of the swipe-vs-watch decision (verify with your own retention curve in TikTok or Reels Insights). Your hook must complete the pattern interrupt + curiosity gap + (optional) contrarian frame + specific outcome WITHIN 3 seconds of spoken or on-screen content. This usually means: 8-15 words spoken at 200-220 WPM (fast-paced delivery), text overlay loaded simultaneously to absorb both audio and visual attention, no slow-build intro. Question to ask: "If the viewer paused at second 3, would they keep watching?"
Apply the framework to write 3 hook variants. For any script, write three hook variants applying the framework differently. Variant A: pattern-interrupt-heavy (start with an unusual visual). Variant B: contrarian-frame-heavy (invert the consensus). Variant C: outcome-anchored (lead with the specific number). Each should hit Stages 1, 2, 4, and 5 — Stage 3 is optional. Do not commit to one variant before testing.
A/B test the variants on the same content. Record the same body content with three different hook openings. Post one per week over three weeks to the same account at the same time of day. Track 3-second retention, 30-second retention, and total views per variant in Analytics. Within 3-4 cycles you will see which hook style your audience responds to consistently. Apply the winner as your default opening structure.
Iterate on the winning structure, not the script. Once you find the winning hook style for your audience (e.g., contrarian + specific outcome), reuse the STRUCTURE across new scripts, not the exact words. Reusing exact hook phrases breaks the pattern-interrupt benefit — the same exact opener watched repeatedly is no longer a pattern interrupt. Keep the framework, vary the wording.
Common gotchas
Bait-and-switch hooks (hook promises X, video delivers unrelated Y) crater watch-time-to-completion. The algorithm punishes them within 2-3 posts.
Hooks that work on one platform may not transfer. TikTok rewards faster pace; LinkedIn rewards a slower contrarian intro; YouTube Shorts often rewards a longer pattern-interrupt visual.
Generic outcome hooks ("I made money", "I lost weight") are too vague to anchor curiosity. Specific numbers (specific to you, real) are required.
On-screen text load matters: text that takes 3 seconds to type out kills the 3-second rule. Pre-render text overlays as static so they appear at frame 1.
Music choice affects hook perception. Trending sounds boost initial discovery but compress the audio bandwidth available for spoken hook. Use trending music for visual hooks, your own voice for verbal hooks.
Account size affects hook tolerance. Sub-10k accounts can be more aggressive (more bait-y) without consequence; 100k+ accounts get punished harder for over-promising.
Where Kompozy fits
Kompozy generates hook variants per short candidate when it produces output from a longer source. From a 60-minute podcast or webinar, the engine identifies high-retention clip windows and generates 2-3 hook variants per clip applying the framework above — pattern interrupt + curiosity gap + outcome anchor. You pick the winning hook in review (or let autopilot pick), then the short ships with that hook as the opening 3 seconds.
If you are writing hooks manually for your own footage, the framework above is the tool — Kompozy would be over-engineering. Where Kompozy earns its place is when you produce 8-15 shorts per week from longer content and writing each hook by hand becomes the bottleneck. Pro tier ($299/mo for 18,000 credits) covers ~50-60 shorts per month with hook variants generated per clip.
Frequently asked questions
How long should a hook be?
3 seconds maximum. After 3 seconds you are no longer in the swipe-decision window — the viewer has committed to watch or already swiped past.
Should the hook be spoken or text-only?
Both, simultaneously. Audio hook for users with sound on; text overlay for users with sound off (most short-form viewers start sound-off). Mismatched audio and text dilutes both — keep them aligned.
Are "curiosity gap" hooks still working in 2026?
Yes, but the bar is higher. Audiences are pattern-recognizing generic gap hooks ("Watch until the end to learn the secret"). Curiosity gaps now work best when paired with a specific outcome (the gap is about HOW you got the specific number, not about a vague secret).
Do I need a different hook style per platform?
The framework is universal but pacing differs. TikTok = 2-3 second hook, very fast delivery. Reels = similar, slightly slower. Shorts = 3-4 seconds, can include a visual reveal. LinkedIn video = 5-8 seconds, can lead with a contrarian frame stated slowly.
How many hook variants should I test?
Three. Two is too few to see real difference; four+ takes too long to reach statistical significance on a per-post basis. Three variants over three weeks usually shows a clear winner.
What if my hook works but the rest of my video doesn't hold?
Then you have a body content problem, not a hook problem. Hooks get the watch started; retention through second 8, 15, and 30 comes from script structure, pacing, and payoff. Audit your retention curve in Insights and identify the drop-off points.