# Iteration and refinement: treating the model like a collaborator
You ask ChatGPT to write a job description. It hands you a perfectly fine, perfectly generic block of text. You sigh, copy it into a document, and start editing by hand.
Stop. That edit you were about to make? Just ask for it.
The first answer from a language model (the AI behind ChatGPT, Claude, and Gemini that predicts text one word at a time) is almost never the best one. It is a starting draft. The real skill, the thing that separates frustrated users from fluent ones, is the follow-up.
Most people treat AI like a vending machine: put in a prompt, get out an answer, walk away. If the snack is wrong, they blame the machine.
Treat it like a collaborator instead. You are working with a fast, tireless junior teammate who never gets annoyed when you say "actually, can you redo that?" You give direction, react to what comes back, and steer.
The model also remembers the conversation. Everything you said earlier in the same chat is still "in the room." That means you do not need to repeat context. You can just say "make it shorter" and it knows what "it" is.
This is called multi-turn prompting: building toward a good result across several messages instead of cramming everything into one.
Let's build a real one. Imagine you are a small business owner who needs to hire a marketing person, but you have never written a job posting.
Your opening prompt:
> Write a job description for a marketing coordinator at a small coffee roasting company. We sell online and to local cafes.
The model returns something usable but bloated: a fluffy intro paragraph, ten bullet points of responsibilities, a long "requirements" list, and corporate phrases like "synergistic brand storytelling."
It is fine. It is not done. This is where most people quit. We are just getting started.
You do not like the wall of text. So you say exactly that:
> Make it shorter. Cut it to about 150 words and remove the buzzwords.
Notice you did not re-explain the coffee company or the role. The model still has all of that. You are only sending the *change* you want.
Back comes a tighter version: a one-line intro, five crisp responsibilities, three real requirements. Much better.
Now you realize you actually need someone more experienced to run the show, not just coordinate. Steer again:
> Bump this up to a "Marketing Manager" role. Make the responsibilities more strategic, like owning the budget and managing a part-time contractor.
The model rewrites the title, upgrades the language ("execute campaigns" becomes "set the marketing strategy"), and adds the ownership and management duties you mentioned.
You changed the entire seniority of the role in one sentence. Editing that by hand would have meant rewriting almost every line.
One last tweak. You forgot to mention the setup:
> Add a line saying this is hybrid: two days a week in our Portland roastery, the rest remote.
Done. Four turns, and you went from a blank page to a clean, specific, correctly-leveled job posting. Each turn was a short, plain-English request.
You might ask: why not just write all four requirements into the first prompt?
Sometimes you can. But you usually do not *know* all your requirements up front. You discovered you wanted it shorter only after seeing it long. You realized you needed a Manager only after reading the Coordinator version.
Iteration lets the draft teach you what you actually want. The output becomes a thinking tool, not just a deliverable.
It is also easier to course-correct in small steps. One change per turn means you can clearly see what each adjustment did. If a change makes things worse, you just say "go back to the previous version, but keep the shorter intro."
You do not need clever tricks. You need clear, specific directions. Here is a toolkit of follow-up phrases that work across ChatGPT, Claude, and Gemini:
The phrase "keep everything else the same" is your best friend. It tells the model to make a surgical change instead of regenerating the whole thing and surprising you.
Knowledge check
1. According to the lesson, what is the term for building toward a good result across several messages instead of cramming everything into one prompt?
2. Why does the lesson say you can simply tell the model 'make it shorter' without repeating context?
3. The lesson contrasts treating AI like a 'vending machine' versus a 'collaborator.' What is the key flaw of the vending machine mindset?
4. Select ALL correct answers about how the lesson describes a language model.
Sélectionnez toutes les réponses correctes.
5. Select ALL correct answers about the worked job-description example in the lesson.
Sélectionnez toutes les réponses correctes.
If you ever move beyond the chat window into code, the conversation still works the same way. You send the model the *full history* of the chat each time, and it responds to the latest message in context.
Here is the job-description example as a real APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.View full definition → call using Python and the OpenAI library. Notice how each turn is just another item in the messages list:
from openai import OpenAI
client = OpenAI()
# The whole conversation lives in this list.
messages = [
{"role": "user", "content":
"Write a job description for a marketing coordinator "
"at a small coffee roasting company."},
# The model's first reply would normally go here as "assistant".
{"role": "assistant", "content": "<the long first draft>"},
# Turn 2: our refinement
{"role": "user", "content":
"Make it shorter. About 150 words, no buzzwords."},
]
response = client.chat.completions.create(
model="gpt-5.1",
messages=messages,
)
print(response.choices[0].message.content)The key idea: the model has no memory of its own. The chat apps just keep this messages list for you behind the scenes. When you type "make it shorter," they quietly append your message to the whole history and send it back. Iteration is the chat app remembering the conversation so you do not have to.
If you want to go deeper on how these conversations are structured, the OpenAI prompting guide is free and clearly written.
A few honest warnings.
Long chats can drift. After many turns, the model can lose track of an early instruction or contradict itself. If a conversation gets messy, start a fresh chat and paste in the best version as your new starting point.
Don't over-iterate. At some point the answer is good enough. Endlessly polishing with the AI is a real time-sink. Know when to take the draft and finish it yourself.
Be specific about what to keep. If you just say "improve this," the model might "improve" the one part you loved. Tell it what is already working: "The tone is perfect. Only tighten the middle."
Save the version you like. Models regenerate freely, and a great line can vanish in the next turn. Copy keepers into a separate doc as you go.