The difference is not the model. It is the filesystem.
The same model sits behind the chat window and the terminal. What changes is what it can touch.
In a chat window, every session starts from nothing. You re-explain the product, re-paste the brand voice, re-describe the audience, and the good output you got last Tuesday is somewhere in a scroll-back you will not find. Marketing is mostly repetition against a fixed context, so that tax is paid on every single task.
With a filesystem, the context lives in a file. The agent reads it before it writes. Your last twenty posts, your positioning doc, your customer-interview notes, and the transcript of the sales call that produced your best line are all things it can open rather than things you must summarise.
That is the whole argument. Everything below is a consequence of it.
The setup that does most of the work
One file, read every time, beats any prompt you will write. Put it at the root of a folder for the brand:
my-brand/
product-marketing-context.md <- the one that matters
corpus/
customer-calls.md <- verbatim, not summarised
support-tickets.md
reviews.md
posts/
drafts/
The context file is short and concrete. Vague brand adjectives produce vague copy:
# Product marketing context
WHAT IT IS: one sentence, no adjectives.
WHO BUYS IT: the specific person, their job, what they tried first.
WHAT THEY SAY: three phrases in the buyer's own words, verbatim.
WHAT IT IS NOT FOR: the disqualifier, stated plainly.
VOICE: three rules, each with an example of a violation.
NEVER: claims we cannot substantiate, comparisons we cannot support.
The NEVER block earns its place immediately. Left unstated, a capable model reaches for outcome claims and superlatives because they are common in the training data, and you end up editing them out of every draft instead of once.
The corpus trick — write in the buyer's words, not yours
The highest-leverage thing you can give an agent is not a better prompt. It is a folder of raw customer language: support tickets, call transcripts, review text, the wording of refund requests.
Ask it to draft from the corpus rather than about the product: "Read corpus/. List the exact phrases customers use for the problem, ranked by how often they appear. Then write three hooks using only those phrases."
Copy assembled from words buyers already use tends to land better than copy describing what the product does, and this is the one workflow where the agent is genuinely better than the chat window — the corpus is too long to paste and too valuable to summarise.
What it does well, and what it does badly
Being honest about the second list is what keeps the first one useful.
Does well:
- Volume with variation — thirty hook variants ranked by a stated criterion, where you pick and the machine drafts.
- Repurposing — one long piece into a week of platform-shaped posts, because the source is a file it can re-read rather than a thing you paste.
- Structural editing — cutting a draft by 40 percent, enforcing a voice rule across every file in a folder, finding all the places you made a claim you cannot support.
- Anything with a checkable output — character limits, required sections, a link present on every page, no banned word anywhere in the folder.
Does badly:
- Deciding what to say. Positioning, the angle, what matters to your buyer this quarter — it will produce something plausible and you will not notice it is generic until it underperforms.
- Taste. It cannot tell you which of the thirty hooks is the one. It can rank them against a rubric you supplied, which is a different thing wearing the same clothes.
- Facts about your own numbers. If it did not read them from a file, it is reconstructing them, and it will sound equally confident either way.
- Knowing when it is finished. Without a stated stopping condition it will keep elaborating.
Turn the repeated request into a skill
The moment you type roughly the same instruction a third time, it should be a file. In Claude Code that is a skill: a directory with a SKILL.md holding a name, a description of when it should fire, and the procedure.
.claude/skills/
hook-writer/
SKILL.md
repurpose-post/
SKILL.md
Two things decide whether it earns its keep. The description has to read as a trigger — the situations and the words a person would actually type — or the agent never reaches for it. And the body has to be a procedure with an explicit stopping condition, because "write a good hook" is not a procedure and the output will drift every time.
The review discipline, because the failure mode is confidence
Bad marketing output from a capable model is rarely incoherent. It is fluent, on-format, and quietly wrong — a statistic that was never in your data, a comparison to a competitor you cannot substantiate, a promise that creates a liability.
Three gates catch nearly all of it, and all three are mechanical rather than a matter of remembering to be careful:
- Claim check. Every factual or numeric claim names the file it came from. No source, cut the line.
- Banned-phrase lint. A script, not a habit — grep your drafts for guarantee language, outcome promises, and superlatives before anything publishes. In regulated or health-adjacent categories this is not optional, and copy that suggests rather than claims is the safer default everywhere.
- Cold read. Open the draft in a fresh session with no context and ask what it promises and who it is for. If the answer is generic, the draft is generic, whatever it felt like while you were writing it.
Common questions
- Do I need to know how to code to use Claude Code for marketing?
- No, though you need to be comfortable in a terminal and with files and folders. The commands involved are mostly opening directories and asking in plain English. The learning curve is the environment, not programming.
- Why use Claude Code instead of the chat app for marketing?
- Persistence. The agent reads your brand context, past posts and customer language from files instead of you re-pasting them, and it can write output straight into your drafts folder. For one-off questions the chat app is faster; for repeated work against a fixed context the filesystem wins.
- What marketing tasks is it worst at?
- Deciding the angle, judging which variant is best, and anything involving your own numbers that it did not read from a file. It produces plausible output in all three cases, which is what makes them risky — treat positioning and taste as yours and the drafting as its.
- How do I stop the output sounding generic?
- Feed it raw customer language rather than a description of your product, and give it an explicit list of phrasing to never use. Copy built from verbatim buyer words reads specific; copy built from a product description reads like every other product description.