Table of Contents

Hey all, happy Friday,

I’m back from Lisbon, and it’s raining today. 🫠

If you aren’t tired of me just yet, I'm speaking at the Motion Boot Camp on Tuesday, so if you haven't signed up for that, you should.

Quick life update. We went out to dinner on Sunday as a family. James got gnocchi with burrata. I got chicken parm. His gnocchi was, and I quote, really quite nice. He's 14 months old and already ordering for me at restaurants. Meanwhile, I'm over here eating chicken parmesan like the sophisticated adult I am.

He was home most of the week with a fever and an ear infection. If you've ever tried to run a business while a 14-month-old with a fever is clinging to your leg and screaming at the non-existent ceiling fan, you know. Maddie and I were doing the handoff dance all week. You take him, I have a call. I'll take him; please note the deadline. Nobody sleeps well. Nobody gets a full workday. You just survive it. He's fine now… on antibiotics. Back to full chaos.

We hired a babysitter for tomorrow so we can both get some actual work done, which feels like booking a spa day at this point.

We went to the in-laws' on the Upper East Side for Passover. His cousin was there in a beautiful dress. James was waddling around in a diaper. I think that tells you everything you need to know about our son. He also kept splashing water from his high chair throughout the entire Seder until we were all joking we'd forgotten our ponchos. A water park, but make it Seder. Add it to the plague list.

Linus update: he got stuck behind a fence at the park. Full panic. The thing is, there were a ton of squirrels back there, so he'd figured out how to get IN.
Getting out? Less motivation. We had to finagle him through a gap while he kept looking back at the squirrels like we were ruining his life.

Anyway.

I gave a talk this week. The number one question wasn't about scoring agents or Nano Banana. It was: "How do you actually build those format templates?"

Fair. I've shared prompts and markdown files, but haven't shown you how to create one from scratch. I shared mine and hoped for the best.

Today: how to reverse-engineer anything into a reusable MD file. Statics, UGC, competitor creatives, whatever weird format keeps showing up in every other brand's ad library that you've never tested. You find what's working. You pull out the elements. You save them as Markdown files. And then every ad you generate from that point forward has those patterns baked in.

This is the piece that sits underneath everything else I've shared. The brand reference cards, the scoring agents, and the competitive gap analysis. None of it matters if the template sucks. This is the foundation. If you're running more than a few ad formats a month and still prompting from scratch every time, you're burning hours you don't have.

Let's get into it.

And to give you a head start:

Why You Need This (And Why Winging It Doesn't Work)

Here's what happens when you skip the template and just ask Claude or Nano Banana to "make me a testimonial ad":

You get something. It's not terrible. But it looks like every other AI-generated testimonial ad. Same layout. Same font hierarchy. Same star rating placement. Same everything.

The problem isn't the model. The problem is you gave it nothing to work with except the word "testimonial," and it averaged out every testimonial ad it's ever seen into one generic blob.

And when you're testing 20 creatives a week and every single one has that same averaged-out AI look, you're not testing a creative. You're testing copy on top of identical layouts. That's not a creative test. That's a headline test with extra steps.

An MD file fixes this by telling the model exactly what a testimonial ad looks like in YOUR world. Not the average of all testimonial ads. YOUR version. With your safe zones, your composition rules, your typography hierarchy, and your copy constraints.

And here's the part that matters: a good template doesn't just have one version. My headline template has something like eight different styles. Style A through maybe F (I honestly lost count). Because a headline ad with a full-bleed product shot and a three-word headline is a completely different animal than a headline ad with a gradient background and a two-line subhead. They're both "headline ads." They produce completely different results.

The same applies to literally any content type. A TikTok-native UGC ad with a green screen and text overlay is not the same as a UGC ad with a selfie-style talking head. They're both "UGC." The template captures the difference.

What You Can Template

This process works for anything you can screenshot.

Ad formats: Headlines, testimonials, before and afters, us vs. them, bullet points, statistics, press, negative marketing, offer promos, sticky notes, Apple Notes. You know the list by now.

Content styles: Top-performing UGC (TikTok-native, talking head, unboxing, GRWM), influencer content, founder story, meme-style, social proof compilations.

Competitor patterns: Whatever your top competitor is running the most of. Whatever format just showed up in your AdLib gap analysis that you've never tested. (If you haven't run that analysis yet, that's Issue 3. Go do that first. I'll wait.)

The input is always screenshots. The output is always an MD file. The analysis in between is Claude's job.

The Process: 4 Steps

Step 1: Collect Your Examples

Go find 5 to 100 (yes, the more the merrier) real examples of whatever you want to template. Not AI-generated. Real stuff that is actually running and spending money.

Where to find them:

  • Meta Ad Library (facebook.com/ads/library). Sort by impressions, filter for memes (statics). Top of the list = most spend = most likely working.

  • Foreplay. If you already have swipe boards organized by format, even better.

  • AdLib (adlib.getskipper.ai). Free tool I built. Top statics for any brand, sorted by estimated impressions. (this is a cheat code!)

  • TikTok Creative Center. If you're templating UGC or video-native content, start here.

  • Your own ad account. Your top performers are the best reference material you have. Don't overthink this one.

Screenshot all of them. 5 is the ABSOLUTE minimum. 100 is better.

Important: your examples need to look different from each other. If you upload 10 testimonial ads that all have the same layout, you'll get a template with one style. The diversity in your examples becomes the diversity in your output. This is the most common mistake people make, and it's also the easiest to avoid.

Step 2: Upload and Analyze

Open your Claude Project. Upload all your screenshots in one batch.

Here's the prompt:

Analyze these ads/content pieces. They are all the same type: [TYPE NAME, e.g., "testimonial static ads" or "TikTok-native UGC" or "top-performing competitor statics"].

For each one, describe:

- The headline or hook structure (word count, case, positioning, tone)

- The supporting copy (subheadline, body text, captions, if present)

- The composition and layout (where is the product, where is the text, what's the visual hierarchy)

- Typography choices (bold, light, serif, sans-serif, size relationships, handwritten vs. clean)

- The safe zones (where is text NOT placed)

- Color and background treatment

- Any unique structural elements (star ratings, badges, callout boxes, TikTok UI, dividers, etc.)

- The emotional tone and persona targeting (who is this for, what feeling is it going for)

- What makes this one work (the scroll-stopping element)

Then group these by visual style. Which ones share a layout pattern? Which ones are doing something structurally different?

For each group, give it a style label (Style A, Style B, etc.) and describe what makes that style distinct from the others.

Claude will go through each piece individually, describe what it sees, and then cluster them. Here you'll see that "testimonial ads" are actually four different ad types under the same name. (Every single time I do this, I'm surprised by how many distinct styles exist inside what I thought was one format.)

If you uploaded UGC screenshots, you might discover that your "top-performing UGC" is actually three distinct patterns: green-screen-with-product, selfie-talking-head, and text-overlay-with-b-roll. Each one needs its own section in the template.

Step 3: Generate the MD File

Same conversation. Now you tell Claude to turn its analysis into a reusable template. (This is the part where Claude earns its subscription fee.)

Based on your analysis, create a markdown template file for [TYPE NAME].

The template should include:

For each style (A, B, C, etc.):

- Hook / Headline: Copy slot with word count constraint and formatting rules (case, punctuation, tone)

- Supporting copy: Copy slot with word count constraint and structural rules (bullets, single paragraph, caption format, etc.)

- CTA: Copy slot with constraint

- Image / frame composition: Exact description of where the product goes, where the text goes, the visual hierarchy, camera angle if relevant

- Typography rules: Size relationships, weight, font style guidance

- Safe zones: Where text must NOT appear (top 250px, bottom 340px for 9:16, etc.)

- Background / environment treatment: What the setting looks like for this style

- Unique elements: Star ratings, badges, press logos, TikTok UI, comparison grids, whatever this type uses

- Emotional tone: What this style is trying to make the viewer feel

- Scroll-stop mechanic: What specifically makes someone stop scrolling for this style

- Do NOT: Explicit rules about what to avoid (things the model tends to get wrong for this type)

Format this as a clean markdown file I can save and reuse. Use [BRACKETS] for every variable that changes per brand or per brief. The template should work for any brand, not just the examples I showed you.

This file should be at least 1500 words. Do not stop early. I want every style fully specified with enough detail that someone who has never seen these examples could recreate them from the template alone.

That last line matters. Tell Claude to go long. Use the heaviest thinking mode you have. If you're on Opus, let it run. The first time you build one of these should take at least 15 minutes of generation time. If it spits something out in 30 seconds, it's too thin. You want a file with the depth of an actual design brief, not a LinkedIn carousel. (No offense to LinkedIn carousels. Actually, some offense.)

shared.image.missing_image

Step 4: Save It

If you're in Claude Code, the file is already saved in your project folder. You're done.

If you're in Claude Chat, copy the output and save it as [type-name]-template.md. Upload it to your Claude project's knowledge base.

If you're in Cowork, tell it to save the file directly.

This file now lives in your project forever. Every conversation in that project can access it. Every brief you write, every prompt you generate, every ad you create pulls from this template automatically.

How I Actually Use These

When I'm generating an ad, here's what happens behind the scenes:

  1. My brief has the copy (already scored by the agents, that's a different newsletter).

  2. The brief hits the format template. Claude looks at the copy and says: "This copy fits Style C best" (or whatever style matches the structure).

  3. Claude generates a Nano Banana prompt using the composition rules, typography, safe zones, and image direction from that specific style.

  4. I paste the prompt + brand reference cards + product photo into fal.ai.

  5. I get an ad that looks like it was designed by a human who has made this exact type of ad 500 times. Because the template was reverse-engineered from real ads in this format.

The template is doing the heavy lifting. Not me. Not the model. The template.

Building a Template Library

Once you've done this once, you'll want to do it for every format you run. Here's what my library looks like right now: about 10 MD files covering headlines, testimonials, UGC, before-and-afters, us vs. them, bullet points, statistics, negative marketing, press, and offer promos. Each one has 2 to 8 styles. The whole library took me about a week to build. Now it runs forever.

And here's the unlock that makes the library compound: when you run the competitive gap analysis (see this newsletter), it tells you WHICH formats to make. When you pull the template for that format, it tells you HOW to make it. The gap analysis is the strategy. The template is the execution. They feed each other. That connection is probably the most important thing in this entire newsletter, and I almost buried it in a subsection. So. There it is.

Teaching Claude Formats It Doesn't Know

Some ad formats are so niche or so specific to performance marketing that Claude has no idea what they look like. I covered this in the Nano Banana 2 issue. "Negative marketing" and "Us vs Them" both failed until I showed Claude real examples.

The process above solves this permanently. You're not hoping Claude knows what a format looks like. You're showing it, having it analyze the patterns, and then saving those patterns as a reusable file.

If you run a format that's unique to your brand or your vertical, this is how you teach the model what it looks like. Once. And then it knows forever. (Well, as long as the MD file stays in your project. So... forever.)

The Head Start

I'm giving you my headline template as a starting point.

It has 3 styles, each with full copy slots, composition rules, typography specs, safe zones, and image direction. You can use it directly for headline ads, or you can use it as a reference when building templates for other formats.

Want to make a testimonial template? Tell Claude: "Use this headline template as a structural reference. Please provide the same level of detail for testimonial ads. Here are my examples." It'll match the format and depth.

Want to template your competitor's top-performing statics? Same thing. Screenshot their top 10 from Meta Ad Library, upload them, and Claude will tell you exactly what patterns they're running that you're not.

What This Doesn't Do

It doesn't write good copy. That's the scoring agents' job.

It doesn't know your brand. That's the brand reference cards' job.

It doesn't pick the format. That's the competitive analysis' job.

It ensures that when you generate an ad, the layout, composition, typography, and structure look like a real ad and not like AI-generated content. That's it. And that's everything.

TLDR

  • An MD file is a reusable template that tells AI exactly what a content type looks like

  • Works for statics, UGC, competitor patterns, any content type you can screenshot

  • Collect 5 to 10 real examples of what you want to replicate

  • Upload to Claude, have it analyze and cluster by visual style

  • Generate a detailed MD file with copy slots, composition rules, safe zones, and typography for each style

  • Save it to your Claude Project. It lives there forever.

  • Build a library: one MD file per format. The whole library compounds over time.

  • Pair this with the competitive gap analysis from Issue 3: it tells you which formats to build, the template tells you how

  • You can teach Claude formats it has never seen by showing it examples and saving the patterns

  • I'm sharing my headline template to get you started: [LINK: headline.md]

James is back at daycare today, which means I'm in the office. Linus is at home, presumably staring at the fence from the window and plotting his next squirrel heist.

If you build a template for a format I haven't covered, reply with it. I'm collecting these. The goal is a full library of every performance ad format, fully specified, open source. Your template might be the one that saves someone else 10 hours.

Have a great weekend,

Will

Recommended for you

View all
caret-right