Zennith · hooks and headlines · 23 Oct 2026

How we write hooks that hit the buyer's pain, step by step

What we have, what the best outside teams do, and one owner per job across the pipeline. Keep, Change or Drop each step; nothing is built until you approve.

Where we stand

Hooks and headlines today

  • No breakthrough yet. The one real test (UKIYO: hooks built from 134 real customer quotes vs the old copy, same week, same spend) got fewer chats per ringgit: RM36.41 vs RM27.40 a chat, on 14 vs 19 chats. Too small to call, and not a win.
  • Strong: our hook writing (62 hook types, 5 frameworks), the hook quality gate, Jev checks with planted examples, the ads research that decodes winners.
  • Missing: customers' own words for most brands; any link between a hook and its results; hook-only tests; one shared hook check (three copies today); real buyer words for AIREI.
  • The best outside teams start from the customer's words and from proven winning hooks, then fit them into a framework. We start from the framework.

The rule this setup enforces

  • Pattern from a proven winning ad (ours, or a long-running reference).
  • Words from the buyer: reviews, WhatsApp chats, calls. No customer words yet: research, ads research, then the decoded winning hook, with the source named.
  • Feeling: a "want it now" trigger. Proof goes in the caption.
  • Checked before spend, then tested with only the hook changing.

The pipeline, step by step

One owner per job. Keep, Change or Drop each step.

1. Know the buyer and their words

Owner: icp-engine

Who the buyer is, their situation and the exact words they use for the pain, desire, worry and the moment that makes them act.

What we add

  • Sort mined reviews and chats into real buyers vs noise before quoting anything (voice-of-customer method).
  • Tag each customer phrase as pain, desire, worry or trigger moment, with its source and date (Copyhackers message mining).
  • For B2B (AIREI): name the buyer's exact moments, e.g. a month-end oil-loss surprise or an EUDR buyer audit (LinkedIn B2B Institute research). Short buyer interviews, from AIREI.
  • Record how aware the buyer is AND how many similar ads they have already seen, as two separate fields.
  • No customer words yet for a brand? Fall back to research, then ads research, then the decoded winning hook (step 2), and say so on the brief.

Fixes in our own skills

  • icp-engine becomes the one owner (it saves to the shared memory all machines read). icp-discover's "test a draft" mode moves into it.
  • Our review collector already reads reviews and WhatsApp chats but only feeds the testimonial wall. It will also feed the customer-words bank.

2. Study proven ads, and judge whether the HOOK won

Owner: ad-reference-research (+ winning-ad-dna for our own winners)

Decode a winning ad's look and beats, and also judge whether its hook or headline is the part that won.

What we add

  • Version check: when an advertiser runs the same picture with different headlines, the version that keeps running is the winning hook (the closest public stand-in for a hook-only test).
  • Angle vs run length: which hook angles keep running longest in a category (meta-ads-scraper method).
  • Rule check: Jev judges the hook against our rules (real moment, buyer's words, want-it-now, short), with planted good and bad examples.
  • Every reference gets a hook verdict: proven, likely or unproven, with the reason. Together they form a hook library per category.

3. Plan the batch and write the brief

Owner: write-brief

Pick one angle per ad and plan the whole batch before any words are written.

What we add

  • Name the buyer's situation first, then the angle.
  • Say what the buyer does today instead (e.g. manual checks, or nothing). That is the real competitor (April Dunford positioning).
  • One line per angle: what would prove it wrong.
  • A coverage grid (buyer type x reason to buy x format) so a batch is not one angle reworded many times.
  • A shared brand file with a hook ledger: hooks that are working, on watch, or retired.

Fixes in our own skills

  • Fix the brief skill's broken file references.
  • Link the WhatsApp chat flow (ACCA) so the ad's promise matches the first chat message.

4. Write the hooks and headlines

Owner: sales-copywriting (one hook bank)

Write the words. PAS, AIDA, BAB, 4Cs, Hook-Story-Offer and ACCA decide the ORDER of the message, not its words.

What we add

  • Every hook names its source: a customer phrase, or a proven winning hook from step 2.
  • A hook has three parts and no repeats; a "now you can" test; five hook types with a specificity check (dtc-copywriting method).
  • B2B lines that lower the buyer's risk, e.g. pilot first, no commitment.
  • Chinese: pain-headline formulas from Xiaohongshu, and a 3-layer pain (the scene, the cost, the failure).
  • Malay written natively with bm-copy from how customers talk; translations through campaign-translate.

Fixes in our own skills

  • Merge the two other hook banks (humor-hook-bank and the hook engine inside marketing-mastery) into one.
  • Retire the empty copywriter stub. Refresh the old copies of these skills on this Mac.

5. One hook check before any spend

Owner: the existing hook quality gate + one shared Jev hook check

Every hook passes the same check, automatically, before production.

What we add

  • Fails if it has no source (customer phrase or proven hook).
  • Specific and sensory, not abstract; no AI-sounding words; no repeated angle in the batch; on-image words short.
  • Want-it-now check; brand rule lists; read the brand's own winning lines first.
  • Jev checks always include planted good and bad examples, so we know the check itself works.

Fixes in our own skills

  • Today the brief and production steps never call this gate. They will.
  • Replace the three hand-written Jev hook scripts (one per brand batch) with the one shared check.

6. Publish and test the hook

Owner: marketing (publish)

Prove which hook wins with real money, not opinion.

What we add

  • Hook-only tests: same picture, body and offer; only the hook changes; Meta's own split-test tool.
  • Each hook variant gets its own tracking ID; its hook tags are saved with the published ad.

7. Measure and learn which hooks win

Owner: derive-winners + the winner feature tools

Learn which hook patterns win for which buyer, and feed it back.

What we add

  • Judge each ad on its own job: awareness ads on how many stop and watch; sales ads on chats, cost per lead and true sales.
  • When results are weak, name the part that broke: hook, the next seconds, the offer, the landing or the WhatsApp chat.
  • A winning hook gets its next wave of variants every 1-2 weeks.
  • Results go back into the hook ledger (step 3) and the hook library (step 2).

Fixes in our own skills

  • The winner tools look at pictures and formats only today. They get a hook and copy field.

WhatsApp chat (ACCA)

Owner: acca-engine

The chat after the click.

What we add

  • The step-5 check confirms the ad's promise matches the first WhatsApp message.

Build order

What to build first

  1. One hook check, wired in (step 5, called from steps 3 and 4). Small. Every new hook must cite a source and pass the same checks.
  2. Hook verdict in ads research (step 2). Medium. Used straight away on the AIREI references.
  3. Customer-words bank (step 1). Medium to large. Start with the two brands with the most WhatsApp chats; ask AIREI for buyer conversations.
  4. Hooks linked to results (step 7). Medium to large.
  5. Hook-only tests at publish (step 6). Medium.
  6. Merges and retirements (one buyer skill, one hook bank, empty stubs, broken references). Medium; can run alongside.

Jev picked the first step in both question orders. Nothing is built until you approve.

Install the GitHub skills? No: take their methods

We take the proven methods into our own skills at the stage where they belong, with credit. We do not install the GitHub skill packs.

  • Installing would put a second set of 50+ copy skills next to ours, and the router would pick between two skills for the same job.
  • They are written for English SaaS and online shops. They know nothing of Chinese or Malay copy, click-to-WhatsApp, palm-oil B2B, our brand rules or our checks.
  • Open licences (marketingskills, voice-of-customer, dtc-copywriting, meta-ads-scraper): adapted with credit. Two have no licence: ideas only, in our own words.
  • Jev chose this in both question orders.

Side fixes found in the review

  • Two skills share the name "persona-lens"; one of them passes a check when it breaks. Rename it, and make it fail instead.
  • create_persona points to a skill that does not exist. Retire it.

Anything else

Comments