There's a version of AI-assisted copywriting that everyone's doing: paste your product description into ChatGPT, get back something that says "streamline your workflow" three times, and call it a day. I did that version for about six months. The copy wasn't technically wrong. It just didn't do anything.
The conversion rate on my client's SaaS landing page sat at 2.1% for a full quarter. Not catastrophic, but not good either — especially when the product itself was genuinely solving a real problem for small logistics businesses in Indonesia. The gap between what the product did and how it was being described was costing real signups every day.
What changed wasn't switching to a different AI tool. It was getting serious about how I was prompting, what information I was feeding in, and — honestly — being willing to treat copy like a design problem with iterations and constraints rather than a one-shot generation task. This is a before-and-after breakdown of exactly what I changed, with real examples.
The Before: What I Was Actually Doing Wrong
Let me be specific, because "bad prompts" is too vague to be useful. Here's a literal example of what I was feeding Claude at the start of this project:
Write landing page hero copy for a logistics management SaaS for small businesses in Indonesia. It should be professional and clear.
The output I got back was competent and completely forgettable:
Streamline Your Logistics Operations
Manage shipments, track deliveries, and optimize your supply chain — all from one powerful dashboard. Built for growing businesses that need results.
Read that again. It could be describing literally any logistics SaaS on the planet. There's no specificity, no emotional resonance, no acknowledgment of the actual frustrations the target users were experiencing. "Powerful dashboard" is doing zero work. "Built for growing businesses that need results" is the kind of line that means nothing because every business needs results.
The problem wasn't the AI. The problem was that I gave it nothing to work with except a category description. It pattern-matched to every other SaaS landing page it had been trained on and handed me the average of that corpus. That's exactly what it should do given what I asked.
The After: What Actually Changed
Step 1: Feed It Real Customer Language First
Before writing a single word of copy, I spent two hours going through the client's WhatsApp support chat history (with permission, obviously) and a handful of onboarding call recordings. I was looking for the exact phrases real users used to describe their problems — not how the client described their own product.
What I found was language like: "saya bingung harus cek di mana dulu," which roughly translates to "I don't know where to check first." Or "kalau ada delay, saya yang kena marah pelanggan" — "when there's a delay, I'm the one who gets yelled at by customers." That second one is gold. That's the real emotional stakes of this product.
I compiled these into a voice-of-customer document and made it the first thing I pasted into the prompt:
Before writing anything, here is real language from actual customers describing their problem. Use this as your primary reference for tone and emotional context: [customer quotes]. Now write hero copy for a logistics SaaS targeting small Indonesian freight forwarders. The user's core fear is being blamed by their customers when something goes wrong. The product's key promise is that you always know the status of every shipment before your customer has to ask.
The output shifted immediately:
Stop Being the Last to Know
When a shipment is delayed, your customer finds out before you do — and you're the one answering for it. [Product name] puts you back in front of every update, so you're never caught off guard again.
That's not perfect copy, but it's in a completely different league. It names a real fear. It describes a real scenario. The user can see themselves in it.
Step 2: Define a Tone Profile, Not Just an Adjective
Telling AI to write "professionally" or "conversationally" is almost useless as instruction. Those words mean different things to different people and to the model. What works better is giving it a comparative reference frame.
For this project I wrote:
Tone reference: write like a senior operations consultant who has worked in Indonesian freight for 10 years and genuinely likes helping small business owners. Direct, no corporate jargon, occasionally uses local business context. Not casual to the point of being unprofessional. Think: smart friend, not press release.
That "smart friend, not press release" framing became something I now include in almost every copy prompt. It's specific enough that the model has something to calibrate against, and it consistently shifts the output away from the pattern-matched marketing voice toward something that reads like it was written by an actual human with actual opinions.
Step 3: Give It the Objection, Not Just the Benefit
Standard product copy prompts ask for benefits. The better move is to also give the AI the specific objection that benefit needs to overcome. This is a prompt engineering trick I picked up from thinking about copywriting frameworks rather than just AI outputs.
For the pricing section, instead of:
Write pricing copy that explains our three tiers.
I wrote:
Write pricing section copy for these three tiers [details]. The main objection we hear from prospects at this stage is: "I'm already using Excel and WhatsApp and it kind of works — why would I pay for this?" Address that objection directly in the subheading or introductory paragraph before listing features.
The output led with: "If WhatsApp and a spreadsheet are working for you, don't fix what isn't broken. But if you're spending more than two hours a week chasing status updates — or you've ever had to apologize to a client for information you didn't have — that's the two hours this pays for."
That's genuinely good copy. I barely edited it. It works because the prompt gave the model a specific rhetorical job to do, not just a content category to fill.
Step 4: Iterate on Variants, Not Just Outputs
One of the ways I wasted time early on was treating each AI output as a candidate to accept or reject. The more productive frame is to treat the first output as a rough draft to iterate on — the same way you'd treat a first wireframe.
My workflow now:
- Generate the first version with a fully-loaded prompt (voice of customer, tone profile, objection to address).
- Identify the one or two lines that are closest to right — and call those out explicitly in the next prompt.
- Ask for three variants that push the angle of those specific lines further.
- Combine the best parts manually.
That fourth step is important. I'm not just picking a winner from a lineup — I'm treating AI output as raw material to assemble from. The final copy on the landing page was probably 60% AI-generated lines that I'd iterated on, 40% rewrites I did myself when the model kept drifting back toward generic phrasing.
This is similar to how I approach evaluating AI outputs more generally — you have to decide at a granular level what to keep, what to push further, and what to just write yourself.
The Results
After relaunching the landing page with the rewritten copy (same visual design, no layout changes — I specifically kept these variables controlled), the conversion rate moved from 2.1% to 3.8% over the following six weeks. That's not a viral growth story, but for a B2B SaaS targeting a fairly specific Indonesian logistics niche, nearly doubling the conversion rate from the same traffic matters enormously.
More qualitatively: two sales calls that quarter opened with the prospect quoting the hero subheading back at the client unprompted. That's the signal I care about most — copy that sticks enough that someone repeats it to you.
What I Still Do Myself (And Won't Hand to AI)
I want to be honest about the limits of this workflow, because it's easy to oversell it after a win.
AI is still bad at:
- Local nuance. Copy that needs to feel Indonesian — not just translated-from-English-marketing-speak — still needs a human pass. The model defaults to a kind of neutral English-influenced formality that doesn't land right in Bahasa Indonesia contexts.
- Knowing when to be quiet. AI copy tends to over-explain. Some of my best edits are deletions — removing the second sentence in a headline, cutting the explanatory clause, trusting the reader. The model rarely volunteers restraint.
- Specific competitor differentiation. If your copy needs to position against a named competitor with precision and credibility, AI will give you the shape of that argument but not the specific insight that makes it land. That still comes from knowing the market.
The final copy always goes through me before it ships. The AI accelerates the process by about 60–70% and consistently surfaces angles I wouldn't have tried first — but I wouldn't describe any of it as hands-off. Think of it the way I think about using Claude for design work: it earns its place in the process when you treat it as a collaborator with defined responsibilities, not a replacement for the thinking.
The Prompts That Made the Biggest Difference
If you're going to take one thing from this post, let it be these three structural changes to how you prompt for copy:
- Lead with the customer's words, not yours. Pull real quotes from support tickets, reviews, or sales calls. Paste them in before you describe your product.
- Replace tone adjectives with a comparative reference. "Write like a [specific archetype] — not like a [specific thing to avoid]" beats "write professionally" every time.
- Give the objection alongside the benefit. Tell the AI what specific doubt the copy needs to overcome. It will write toward that job instead of writing toward the abstract category.
Generic AI copy is the result of generic inputs. The model is doing exactly what you're asking — it's just that most people are asking for a category when they should be asking for a solution to a specific persuasion problem. Once I started treating prompts like design briefs rather than search queries, the output stopped being something I'd use as a starting point and started being something I'd actually ship with edits.
Frequently Asked Questions
Can AI really write product copy that converts, or does it always sound generic?
It depends almost entirely on the quality of your prompts. Generic prompts produce generic copy — but when you give AI real customer language, specific objections, and a defined tone profile, the output gets surprisingly close to something usable. It still needs a human pass, but the gap is much smaller than most people expect.
What's the biggest mistake people make when prompting AI for marketing copy?
Starting with the feature instead of the user's problem. AI mirrors what you give it — if you describe your product, it writes about your product. If you describe your user's frustration and desired outcome first, the copy naturally becomes more benefit-led and emotionally resonant.
How do you know when AI-generated copy is good enough to ship versus when to rewrite it?
I use a simple test: read it out loud. If it sounds like a brochure or a press release, it needs work. If it sounds like something a knowledgeable friend would actually say, it's probably close. I also check for weasel words like "seamlessly," "robust," and "leverage" — those are signals the AI defaulted to pattern-matching rather than genuine persuasion.