Most prompts fail for one reason: the person writing them asks the model to invent something they already had sitting in a folder.
“Write me a blog post about high-ticket dropshipping” gets you a blog post about high-ticket dropshipping. It will be grammatically clean, structurally reasonable, and completely useless, because it is the average of everything ever written on that topic. Average is the one thing you cannot use.
I run more than ten projects by myself from Bali. AI touches almost every one of them, every day: product descriptions, supplier emails, ad copy, outlines, first drafts, spreadsheet formulas, code I do not want to write. It saves me an enormous amount of time. It also produced a lot of garbage in my first year of using it, and that was my fault, not the tool’s.
What follows is the method, not the tooling. How I build a prompt, why most of them fail, how I fix one instead of starting over, and where prompting stops working entirely. None of this depends on which model you use or what it can do this month. It is about being specific on purpose.
Why “Write Me a Blog Post” Fails
Think about what happens if you hand that sentence to a freelance writer with no other information. They would come back with questions. Who is this for? What are we selling? How long? What have you already published on this? What tone? Do you have a draft, notes, an outline, anything?
A model does not ask. It fills every one of those gaps with the statistically most likely answer, which is the blandest possible answer, and hands you the result with total confidence. That confidence is what fools people. It looks finished. It reads fine. It just does not say anything only you could say.
Here is everything missing from “write me a blog post”:
- Who is writing it and what standard they are held to
- Who is reading it and what they already know
- What the piece has to accomplish for the business
- The raw material: your actual numbers, notes, transcripts, product data
- Length, structure, and what to leave out
- An example of what good looks like in your world
- The exact shape you want back
Seven missing inputs. The model guesses at all seven, and you judge it on the result. That is not a fair fight, and it is not the model’s fault.
The reframe that fixed this for me: a prompt is a spec, not a wish. You are not asking for something. You are describing a deliverable precisely enough that only one reasonable version of it exists.
A Prompt Is a Spec, Not a Wish
Every prompt I write that actually works has the same five layers. Not because someone taught me a framework, but because I kept adding whatever was missing until the failures stopped, and it kept landing on the same five things.
1. Role and standard
Not “you are a helpful assistant.” Something with an actual bar attached. “You are an e-commerce copywriter who has written product pages for $3,000 outdoor fireplaces and knows the buyer is comparing three sites before calling anyone.”
The role is doing one job: narrowing what counts as a good answer. A generic role means a generic bar. A specific role with a specific constraint baked into it changes what the model treats as acceptable output.
2. Context
What the business is, who the reader is, where this piece sits in a larger thing. If the article is one of twelve in a cluster, say so and name the other eleven. If the email goes to people who bought once and never came back, say that. Context is what stops the model from writing to a general audience that does not exist.
3. Constraints
Length, format, structure, and the negative list. What NOT to do is usually more valuable than what to do, because the failure modes are predictable. I ban the same words in every writing prompt I run. If you have ever wondered why so much AI writing sounds identical, it is because nobody bans anything.
4. Examples
One good, one bad, both real. This is the single highest leverage part of a prompt and I will spend a whole section on it below.
5. Output format
The exact shape of the thing that comes back. A table with these four columns. Raw HTML with no markdown. Five bullets, twelve words each. A single paragraph with no preamble. If you do not specify this, you get a wall of prose with a friendly intro and a summary at the end that you then have to delete every single time.
The Prompt Skeleton I Actually Use
This is the structure I fill in. I do not write it from memory each time. It lives in a document and I copy it, fill the slots, and delete the ones that do not apply. Copy the structure, not my words.
- ROLE: You are [specific role] who has [specific relevant experience]. You are held to [the standard that matters here].
- JOB: One sentence. One deliverable. If you need two things, write two prompts.
- AUDIENCE: Who reads this, what they already know, what they are trying to decide, and what would make them stop reading.
- RAW MATERIAL: The actual inputs, pasted in full. Notes, transcript, keyword data, product specs, my own past writing, the competitor page I am beating. This is usually the longest part of the prompt by far.
- CONSTRAINTS: Word count with a range. Structure. Reading level. Things to include. Things to never do. A banned word list. Any factual claim rules (“only use numbers I gave you above”).
- EXAMPLES: One passage that is right, one that is wrong, each with one sentence explaining why. Real ones from my own files.
- OUTPUT FORMAT: Exactly what comes back and in what shape. No preamble, no summary, no “here’s your article.”
- STOP CONDITION: If you do not have enough information to meet a constraint, ask me instead of inventing it.
That last line saves me more rework than anything else on the list. Left to itself a model will always produce something rather than admit it is missing an input. Telling it explicitly that asking is an acceptable outcome changes the behavior immediately.
A filled-in version of this runs 400 to 900 words before I ever get to the request. That feels absurd the first time. It stops feeling absurd when the first output is usable instead of the fourth.
Raw Material and Examples Beat Adjectives Every Time
Give it the material instead of asking it to invent
This is the biggest single upgrade available to most people, and it costs nothing.
Do not ask a model for keyword ideas. Pull real search volume and difficulty data, paste the actual rows into the prompt, and ask it to group and prioritize them. I use KWFinder for volume and difficulty data on smaller projects and Semrush when I need competitor visibility on the bigger ones. The model is genuinely good at pattern work on real data and genuinely bad at inventing data that sounds like real data. Play to that split. I go deeper on the research side in how I actually do keyword research.
Same principle everywhere else. Do not ask for a product description, paste the manufacturer’s spec sheet and the three questions customers keep emailing about. Do not ask for a summary of your sales call, record it, run it through Otter.ai to get the transcript, and paste the transcript. Do not ask for an outline of a topic, paste the three competing pages you intend to beat and tell it what each one fails to cover. Tools like Frase for pulling together what already ranks exist mostly to make that gathering step fast.
The rule I use: if I own the information, I paste it. If I have to guess at it, so does the model, and I should not be prompting yet.
Show it what good looks like
“Professional tone” means nothing. “Conversational but not cheesy” means nothing. “Punchy” means nothing. Those are adjectives, and adjectives are the model’s problem to interpret, which means it will interpret them as the average of what everyone means by them.
Paste two paragraphs you wrote. Say “match this rhythm and this sentence length.” That one move does more than a paragraph of tone description ever will, because you are handing over the actual target instead of a description of the target.
Then paste a bad example. This is the step people skip and it is worth as much as the good one. I keep a short file of AI writing that makes me wince, the overstuffed transitions, the “it’s not just X, it’s Y” construction, the summary paragraph that restates the article. I paste one and say: never write like this, here is specifically why it fails. Negative examples close off a whole region of output that a positive example alone does not.
Constrain the length and the shape
Unconstrained output drifts long and shapeless. Give a range, not a number, because a hard number makes the model pad or truncate to hit it. “1,800 to 2,200 words” works. “2,000 words” produces something that is either 1,400 words with filler or 2,600 words it refuses to cut.
Constrain the shape too. I ask for raw HTML fragments because that is what goes into the Shopify product pages and WordPress posts I actually publish to, and converting markdown by hand every time is a tax I got tired of paying. Whatever your destination is, ask for output in that format directly.
Then constrain per section, not just overall. “Each of the six sections gets 250 to 400 words” produces a balanced piece. A global word count produces a 900 word first section and four thin ones.
How I Iterate Instead of Starting Over
When the output is wrong, most people rewrite the whole prompt or open a new chat and try again with different words. That is gambling, not iterating. You learn nothing and you might get lucky, which is worse, because then you cannot repeat it.
What I do instead is diagnose which layer failed. There are only five layers, so this takes about ten seconds.
- Right facts, wrong voice? The examples layer failed. Add a better one, or add a negative one.
- Right voice, wrong content? The raw material layer failed. I did not give it enough, or I gave it the wrong thing.
- Right content, wrong shape? The output format layer failed. Be more literal about the shape.
- Right everything, wrong emphasis? The audience or context layer failed. It does not know who it is writing to.
- Generic and toothless across the board? The role layer failed, or the whole prompt is too short.
Then I change one thing and rerun. One. If I change three things and it improves, I do not know which change did it, and I have learned nothing I can put in the library.
Two other moves I use constantly. The first is asking the model to critique its own output against the spec: “here is the constraint list, go through the draft and tell me every place it violates one.” It is much better at finding its own violations than at avoiding them in the first place, which is a strange property but a useful one.
The second is knowing when the thread itself is the problem. Once you have gone five or six rounds, the conversation is full of rejected versions and the model keeps drifting back toward them. When that happens I stop, take everything I learned, fold it into the original prompt as new constraints, and start a clean thread with the improved version. That is not restarting. That is shipping a new version of the spec.
I use two models for this on anything important. I write the first pass in Claude, which is where most of my long-form drafting happens, and when something feels off I hand the same prompt to ChatGPT to see how differently it reads the spec. When both produce the same weakness, the prompt is wrong. When only one does, the prompt is fine and I just pick the better output.
Building a Prompt Library Worth Keeping
If you write a good prompt and do not save it, you did not build anything. You just had a good afternoon.
My rule for what earns a spot: a prompt goes in the library after it has worked three times on three different inputs. Not after it works once. Once is luck and I have been fooled by it plenty. Three times across different material means the structure is doing the work, not the specific example.
What each saved prompt contains:
- The full prompt with the raw material slots marked clearly, so future me knows exactly what to paste in
- One line at the top saying what job it does and when to use it
- The example passages baked in, not referenced somewhere else
- A short note on what it failed at before, so I do not reintroduce a fix I already made
- The date I last revised it, because prompts get stale as the business changes
Mine live in plain documents in Google Workspace, in a folder per project, with an index sheet. Nothing clever. I tried a few dedicated prompt managers and they all added a step without adding anything else. Zoho’s document suite does the same job if you would rather not be on Google.
The real payoff is not speed for me. It is that a prompt library is an SOP. When I bring in help through OnlineJobs.ph for ongoing work, I am not teaching someone to write like me. I am handing them a document that already encodes how the thing gets done, and their job is to supply the raw material and check the output. That is the only reason one person can hold ten projects at once, and it is most of what I cover in how I run 10+ projects from Bali without a team.
Where a library pays off fastest is the repetitive stuff nobody wants to do. Support replies drafted from your actual past responses inside Help Scout or Gorgias. Broadcast subject lines built from the last twenty that performed, written straight into Kit. Meta descriptions for a hundred product pages. Boring, repeated, high volume. That is where this compounds.
The Mistakes I Made Early
I asked for too much at once. “Research this niche, pick the keywords, write the article, and give me the meta description.” Every one of those is a separate job with a separate definition of done, and asking for them together guarantees all four are mediocre. Now one prompt does one thing, and I chain them, feeding each output into the next prompt as raw material. Slower to set up, dramatically better output.
I accepted the first output. Especially early on, when anything coherent felt like a small miracle. The first output is a first draft from someone who has never met your customer. I now assume version one is a starting point and budget for two or three passes, the same way I would with a human writer I just hired.
I trusted facts it produced. This is the expensive one. I published a piece with a statistic in it that read like it came from a government report. It did not exist. Nobody emailed me about it, which is somehow worse, because it means I do not know how long it sat there. Now every number, every citation, every regulatory claim gets checked at the source before it goes anywhere near a published page. If it involves taxes, I check it against the IRS directly. If it involves what I can claim in marketing, I check the FTC’s advertising guidance. A model producing a fact is not evidence of the fact.
I wrote prompts that were long but not specific. Length is not the goal. A 900 word prompt full of adjectives and encouragement is worse than a 200 word prompt with one real example and a hard format. I spent a while confusing effort with precision.
I used it where it had no business being. More on that next, because it is the failure that cost me the most time.
Where Prompting Stops Working
There is a real limit here and no amount of prompt structure gets past it. Knowing where it sits saves you from grinding on something that was never going to work.
When you do not know what good looks like. This is the big one. Every technique above assumes you can recognize a correct answer when you see it. If you cannot judge the output, prompting harder does not help, it just produces more confident wrong answers faster. Learn the thing first, or hire someone who knows it. That is not a limitation of the tool, it is a limitation of you, and I have hit it plenty.
When the task needs current, verifiable facts. Prices, regulations, what a specific supplier’s dealer terms are this quarter. Go to the source. Google’s own guidance on creating content that is actually helpful is worth reading here, because the standard it describes is one you cannot meet by generating plausible text.
When the task needs a relationship. Getting approved as an authorized dealer happens on the phone with a person who is deciding whether you are serious. AI can draft the email that gets the call scheduled. It cannot have the call. The moat in high-ticket dropshipping is largely that this part does not automate, which is exactly why it stays valuable.
When getting it wrong has legal or financial consequences. Contracts, tax structure, compliance claims. I am not a lawyer or a CPA and I do not pretend otherwise. I use AI to understand a topic well enough to ask a professional a good question, not to replace the professional. If you want a serious framework for thinking about where AI belongs in a business process, the NIST AI Risk Management Framework is the least hype-driven document I have found on it.
When the answer is a system, not a document. This one took me a long time. Sometimes I would be on my fifth prompt variation trying to produce a decision, and the real problem was that I had no process for making that class of decision at all. No prompt fixes a missing system. Go build the checklist by hand, once, and then the prompt becomes trivial because you finally know what you are asking for.
If the thing you keep prompting your way around is a store that is not converting, prompting was never the bottleneck. I keep the operational side of that at Ecommerce Paradise, where the material covers supplier approval, niche selection criteria, and the done-for-you build if you would rather not do it yourself. There is a longer version of the same lesson in why most dropshipping stores fail in year one.
Start With One Task This Week
Do not rebuild how you use AI. Pick the single task you do most often, the one you have prompted twenty times and rewritten twenty times.
Write that one prompt properly, using the skeleton above. Fill every slot. Paste in the real raw material. Include one good example and one bad one from your own files. Specify the output format literally. Run it, fix one layer, run it again. When it works three times, save it, and you have the first entry in a library that keeps paying you.
Then do the next one next week. Ten weeks from now you have ten of them, and the difference in what you can hold alone is not small.
The tools I write and test every prompt in are listed on my resources page, along with everything else running my businesses. If you want to talk through where AI actually fits in your operation and where it is quietly costing you, that is what my one-on-one sessions are for.
Get The Operator’s Notebook
One email when I publish something worth your time. What I am building, what the numbers look like, and what I got wrong that month. No pitch, no daily spam.

Trevor Fenner is a Seattle-born entrepreneur, skateboarder, and expat who left Los Angeles in 2016 to build a location-independent life in Southeast Asia. After living in Chiang Mai and Bangkok, he settled in Bali in 2019, where he has been based ever since. He is the founder of Ecommerce Paradise, an education and services platform helping entrepreneurs build high-ticket dropshipping businesses, and operates Electric Bikes Paradise, an ecommerce store specializing in electric bikes, scooters, and mobility equipment. He also runs Paradise Skate Mag, a skate media project documenting the Bali skate scene and broader skate culture, and is building Bali Cat Paradise, a blog centered on the nearly twenty cats he and his wife care for at their home in Bali. Trevor writes about ecommerce and entrepreneurship, expat life in Southeast Asia, and the lessons skateboarding has taught him about business and life.
