Growth Newsletter #254
Today, we’re digging into why most GPT-generated ads fall flat and how to tweak your workflow to make the output better.
Let's dive in.
– Joey
Brought to you by Attio — the AI-native CRM.
Attio is built to scale with your business from day one. Connect your email and calendar, and Attio instantly builds a CRM that matches your business model — with all your companies, contacts, and interactions enriched with actionable insights.
With Attio, AI isn’t just a feature - it’s the foundation. You can do things like:
- instantly prospect and route leads with research agents
- act on AI insights with Attio’s native call intelligence
- and build Zapier-style AI automations
Industry leaders like Flatfile, Replicate, and Modal are already experiencing what’s next for CRM.
Want to get in front of 90,000 founders and marketers? Here's everything you need to know.
This week's tactics
Why most GPT ads look like garbage and how to fix it
Insight from Joey Noble, Creative Strategist at Demand Curve.
Most GPT-generated image ads are mediocre at best.
Yet on social media, everyone says, “I whipped up these high-converting ads with ChatGPT in half a minute.”
What they’re hiding is all the 12+ iterations they had to make, the edits they did in Photoshop, and that they very thoroughly prompted GPT to get a decent output.
Meanwhile, on LinkedIn:
“Just tell GPT to clone this ad with your branding—and boom—a high-quality ad.”
So I tried that. I said, “Recreate this ad but with my product and branding.”
The results were disappointing to say the least:
- Layouts that didn’t make sense
- Copy that reads like it was written by my grandpa on hallucinogens
- Warped product renders
- Fonts and colors that didn’t match my brand
- And zero grasp of why the ad worked in the first place
Here’s the ad I asked it to clone:

I like this feature point-out ad from Oats Overnight. It tells me the cost, calories, protein amount, and that others love it. Perfect.
Since it’s an Ecomm ad, I selected one of my recent favorite Ecomm brands, IM8, to make an ad for (I'm not affiliated; I just like their packaging).
I asked GPT to clone the ad but with my branding and product. I gave it a list of some value props and let it rip.
Recreate this ad but with im8health.com’s branding. Attached is the image of my product, and here are some value props to use:
- 95% felt a noticeable boost in daily energy levels.- 85% experienced less bloating and improved digestion.- Only $2 per serving- One scoop. Once a day.- All-in-one wellness.- Superfoods, Greens, Fruits, Herbs.- Heart Health Support.- Joint and Muscle Health Support.- Hydra Electrolytes.
Here’s what I got:

That’s not what I was expecting.
The visual hierarchy isn’t great. The padding is atrocious.
It changed the product image and decided that “technology” is actually spelled “technotogy.”
It also got rid of the elements that I felt made the reference a great ad.
Here’s what I’ve observed: GPT isn't your creative director (yet). It's your caffeinated but clueless intern.
It needs constraints, structure, and direction. Without them, you get, well.. this.
I spent the last few weeks building a repeatable system that turns GPT into a rough-draft engine, one that gets you 95% of the way to a usable ad in a fraction of the time and cost of starting from scratch.
Here’s how it works:
Step 1: Create a JSON file of your brand
Most people give vague instructions in GPT, such as “Use our brand colors and fonts.” But GPT works exponentially better with structured data.
Instead, feed it a JSON file like this:
json
{
"brandName": "IM-8",
"colors": ["#A40000", "#E3D8CD", "#FFFFFF"],
"fonts": ["Playfair Display", "Inter"],
"valueProps": [
"Supports gut health",
"All-in-one daily greens",
"Backed by nutrition science"
],
"tone": "Scientific but approachable",
"targetAudience": "Health-conscious professionals, 30-45",
"callToAction": "Try risk-free for 30 days"
}
This gives GPT constraints and direction, which leads to better creative output.
But the neat part is you don’t need to be technical or know how to create a JSON file. Just tell ChatGPT everything you want included in the file and it’ll create for you.
What I do is feed it everything I want it to know, like brand guidelines, tone of voice, font style, look and feel, etc. I also take a full-page screenshot of my landing page for ChatGPT to extract things I didn’t think of. (Link to the screenshot tool: gofullpage.com)
Here’s the exact prompt I used:
You’re going to create a master JSON file of my brand. You will structure the file in such a way that I can easily feed it to you to reference when making image ads – so that you can apply my branding to the ad references I give you. I want you to take my fonts, branding, colors, value props etc and turn it into the ultimate JSON file.
Here’s what the JSON must include:
- brand_name: e.g., “IM-8 Daily Essentials”
- tagline: One-line brand positioning or hero line
- fonts:
- headline_font: name or description
- body_font: name or fallback option
- colors:
- primary: hex code
- secondary: hex code
- background: hex code
- accent: hex code
- value_props: High-impact claims or stats (e.g., “95% felt more energy”)
- functional_benefits: Tangible outcomes of using the product
- trust_signals: Endorsements, social proof, certifications
- key_ingredients or core_features: If the product is ingredient- or feature-driven
- tone_voice: A few adjectives that describe how the brand speaks (e.g., “confident, clinical, warm”)
- visual_branding_notes: Description of packaging aesthetics, logo placement, typical imagery (but not ad layouts)
[Insert any other specific brand guidelines that ChatGPT might not be able to extract from the landing page screenshot alone]
Attached is a full-page screenshot of my product landing page. Analyze it thoroughly and extract all relevant branding cues, layout patterns, and copywriting angles — including testimonials, claims, imagery style, and benefits.
Now that I have a structured JSON file, I can go to the next step.
Step 2: Ask GPT how it would prompt itself
I don’t see enough people doing this.
Instead of trying to write the perfect prompt yourself, give GPT your brand JSON + a reference ad and ask:
“With this JSON and ad reference, how would you prompt yourself to recreate this ad, step-by-step, using your own best practices?”
GPT will return a specific, structured prompt. And it’s usually better than what I’d come up with anyways. Once I get the prompt I’ll read through it and modify it a bit to get exactly what I want.
You’ll get something like this:

Step 3: Feed it the right imagery
GPT image generation works best when you’re clear about what kind of image you want.
Use a reference ad and match its structure. For example:
- If the ad uses a product photo on a clean background, upload your product photo.
- If it uses lifestyle imagery, pull something from Unsplash or your own shoots.
The more visually aligned your input is, the better the output.
I used these images for my ad:


Step 4: Feed everything into ChatGPT to get a solid rough draft creative
Now I’ll give ChatGPT the prompt that it generated itself, my brand JSON file again, and the product images.
With a much better prompt and structured data for ChatGPT to use, I get a much better result:

Much better, but not perfect yet.
- There are still some misspellings.
- The fonts aren’t accurate.
- And some of the spacing could be improved.
- It also randomly decided to add “Total wellness. Simplified” to the bottle.
At this point you can continue to tweak it within GPT, but I wouldn’t recommend this. You tell it, “Change the headline to ‘Elite Daily Nutrition’” and it changes that but then also morphs your product or changes other copy.
Here’s what I would do instead:
Step 5: Polish the result with a junior designer
GPT gets you most of the way there. But the fine details still break as I pointed out above.
So I take the GPT draft and hand it off to a junior designer (Fiverr, GetAds, etc.) with a simple brief:
“Use this layout. Replace the fonts and imagery with the real assets. Keep everything else the same.”
By limiting the designer’s scope to just “make this look exactly like this, but with our real assets,” you avoid lengthy creative discussions, long briefs and feedback loops.
Here’s what the final output looks like:

Bonus step: Turn this into a project within ChatGPT
Create a ChatGPT project and give it the JSON file, your brand guidelines, and anything else you’d want it to know so you don’t have to do this every time. Then any time you want to create a new ad you can just do so within the project and it will already have all your brand details saved.
Final thoughts
AI isn’t replacing designers anytime soon. But it is changing the creative workflow from expensive exploration with long feedback loops to rapid iteration with focused human polish.
The teams winning with AI aren’t replacing their designers. They’re creating human-AI workflows that leverage the strengths of both.
Community Spotlight
News and Links
Something fun
If you enjoyed this, please consider sharing with a friend. If a friend sent you this, get the next newsletter by signing up here.
Who's Demand Curve?
We’re on a mission to make starting, building, and growing startups easier.
We share high-quality, vetted, and actionable growth content as we learn it from the top 1% of marketers. We democratize senior growth knowledge.
How we can help you grow:
- Read our free playbooks, blog articles, and teardowns—we break down the strategies and tactics that fast-growing startups use to grow.
- Enroll in the Growth Program, our marketing course that has helped 1,000+ founders get traction and scale revenue.
- Need to run ads? We’ve built the ads agency for startups.
- Looking for a growth freelancer or agency? We’ll match you with a vetted partner for free.
- Get your product in front of startup founders by sponsoring this newsletter.
— Neal & Justin, and the DC team.