I built PostPilot. An AI agent that writes social content for any Brand, using only Claude

Illustration showing a website with confusing messaging transforming into a clear, high-converting user experience

I built PostPilot. An AI agent that writes social content for any Brand, using only Claude

No code, no API keys, no paid tools. Here's how I built PostPilot. A working AI agent that writes on-brand social content for any brand. Using only Claude's built-in features.

What actually makes something an "Agent"

Before building anything, it's worth being precise about the word, because it gets thrown around loosely.

  • A chatbot answers a question and stops. No memory of what success looks like.

  • An automation runs a fixed sequence every time. No judgment, no adaptation.

  • An agent is given a goal, not a script. It decides its own steps, uses tools along the way, and checks its own work.

The line that actually separates an agent from the other two is a decision-making loop. Deciding what to do next based on what just happened.

Every agent, no matter how sophisticated, breaks down into four building blocks:

  • Instructions - who it is, what it's for

  • Memory - what it remembers across sessions

  • Tools - what it can actually do (search, calculate, fetch data)

  • Loop - whether it can take multiple steps, checking its own work

I built all four into a tool called PostPilot. Entirely inside Claude, using a feature most people don't know exists: Claude Artifacts can call Claude's own API directly, for free, on your existing Pro plan. No API key, no billing setup, no separate developer account.

The Problem: One voice isn't enough

If you manage social content for more than one brand. Your own page, a client's account, a friend's small business. You already know the real bottleneck isn't writing one good post. It's writing good posts in a completely different voice every time you switch brands, without slipping into the same generic tone for all of them.

I wanted a tool that could sit down with any brand's actual voice and write like it — not a template that outputs the same flavor of content no matter who it's for.

So the mission became specific: PostPilot needed to learn a brand's real voice from a real example, and write new content that could pass as that brand's own. Not "write engaging content." Not "sound professional." Something testable: would this pass as something the brand already posted?

That distinction matters more than it sounds. A vague brief like "write engaging content" produces generic AI output. That kind of content everyone can spot immediately, regardless of which brand it's supposedly for.

Giving it a brain that adapts to any brand

Every agent's behaviour traces back to one document: its system prompt. Most people write these like a job description ("You are a helpful assistant..."). That produces vague output, because vague instructions produce vague output.

PostPilot's brain isn't one fixed prompt. It's built fresh for whichever brand is active, out of a saved Brand Profile:

  • Brand name and niche - what the account is actually about

  • Voice and tone - described in plain language

  • One real sample post - pasted in as a live example, not a description of the style

That last piece is the most important field in the whole system. A brand profile with only "friendly and warm" as a tone description still produces generic output. A brand profile with one real, specific example gives the model something to actually pattern-match against rhythm, sentence length, the way ideas get built up. That's the difference between output that's technically correct and output that sounds like it actually came from the brand.

On top of that, I built in a universal quality bar that applies underneath every brand's own voice. Because without it, generic AI phrasing creeps back in no matter how good the brand profile is. This includes:

  • A direct instruction to write like texting a smart friend, not writing a caption to impress someone

  • A banned-words list: elevate, unlock, leverage, seamless, delve, harness, game-changer, and similar phrases that are dead giveaways of AI-written copy

  • A rule to ground abstract ideas in something physical and specific — show the reader a moment, don't just name the concept

The real test built into every prompt: would the reader think "yes, that's exactly what happens to me" not "wow, that's well written."

Giving it a body: Content types that actually differ

A system prompt you copy-paste into a chat isn't a tool yet. It's a script you have to remember to run. The next step was building an actual interface, with a real content-type system behind it instead of one fixed format.

PostPilot supports five distinct content types, each with its own output shape:

  • Carousel — a set number of slides (2 to 10, your choice), each with a headline and a body line

  • Single Image — on-image headline and body text, plus a separate longer caption

  • Story — a short frame with an optional poll or this-or-that prompt

  • Reel / Video Script — a hook, a few short beats, a closing line, and a caption

  • Caption Only — no visual at all, just a ready-to-post caption

Pick a content type, and the rest of the form adapts. Slide count only appears for Carousel, for instance. Every slide-based format follows a headline-plus-body structure, with word counts you can adjust yourself: a short headline (aim for 8-12 words) followed by a tight supporting line. Fewer words means more white space, and more white space reads as more considered, less like a wall of AI text.

This is where the free API-calling feature does the real work: a few lines of JavaScript inside a Claude Artifact call Claude's API directly. Claude handles the authentication, and an existing Pro plan covers the usage. No separate account, no extra cost.

Giving It memory

A stateless tool has a real weakness: every session starts from zero. It doesn't know what's already been made, so it can't warn you about repeating a topic and you're the one keeping track in your head.

Claude Artifacts support persistent storage. A save-and-load system built into the artifact itself, no separate database required. PostPilot uses it for:

  • Multiple saved brand profiles, switchable at any time, each with its own separate history

  • Auto-save on every generation - content type, topic, and full output

  • A History tab to browse everything ever created, scoped to whichever brand is active

  • A duplicate check that compares any new topic against saved history before wasting a generation on something too similar

Since PostPilot is built for managing more than one brand at once, keeping history properly scoped per brand isn't a nice-to-have. It's the whole point. Nothing from one brand's history leaks into another's.

Giving it tools

So far the agent could only turn text into text. The next step was letting it reach outside that box.

PostPilot includes a Topic Scout - a separate system prompt whose only job is proposing fresh topic ideas, with real web search built in via Claude's API tool-use. Before suggesting anything, it:

  • Checks what's currently resonating in the brand's niche on social media

  • Proposes an original topic that fits the brand's own voice. Using current context as inspiration, never copying a specific post

  • Rates the topic honestly, 1 to 10, on three dimensions

The three scoring dimensions:

  • Relatability - will the audience immediately feel "this is exactly my world"

  • Interest - does it raise a genuine "wait, why?" question

  • Shareability - how likely is the payoff line to get screenshotted

I specifically instructed it not to inflate scores. A generic, overused topic should score low even if it's technically on-brand. That turns "will this perform well?" from a guess into something you can actually evaluate before spending time writing the full piece.

Giving it a loop

Everything up to this point did one thing per click. The last piece was letting the agent handle a bigger goal on its own: plan an entire week in one pass.

This is the real test of an agent loop. Not running the same action several times, but having each step remember what happened in the steps before it. PostPilot's "Plan Week" mode:

  • Lets you set the content type for each day of the week, individually

  • Lays out the full week upfront, so you see the shape of it immediately

  • Calls the Topic Scout for each day, one at a time

  • Checks every new topic against every topic already chosen earlier in that same run. Not just saved history. So two days in the same week don't accidentally cover the same ground

  • Fills in each day's plan the moment it's ready, instead of making you wait for the whole week to finish

Click one button, and by the time it finishes, you have a full week planned. Every topic scored, every day checked against the rest of the week.

Giving it its own identity

A tool that's going to get used every week deserves to feel like an actual product, not a generic form. So PostPilot got a real design pass, not just a default layout.

The interface runs on a clean, professional, light color system - white panels, a soft neutral background, and just two accent colors doing all the work:

  • A primary blue for interactive elements and structure

  • A secondary teal for scores and emphasized words

The whole thing is built around a loose flight-instrument-panel concept - which actually fits the name instead of just being decoration:

  • A persistent brand switcher styled like a callsign readout

  • History and weekly-plan entries rendered like flight progress strips - the same kind of paper strip air traffic controllers once used to track a flight's plan from takeoff to landing

Small detail, but it's the difference between a tool that feels considered and one that feels like a leftover form nobody designed on purpose.

What this actually is

Four building blocks, each added deliberately, each tested against real output before moving to the next:

  • Instructions built fresh per brand, from a real sample post. Not a guess at tone

  • Memory that persists multiple brand profiles and their history, properly scoped

  • Tools that feed live web search into honest, numeric content scoring

  • A loop that plans a full week and checks its own work along the way

None of it required code I didn't write myself, an API key, or a paid tool beyond a Claude Pro subscription. That's the actual point here: the barrier to building something like this is much lower than most people assume.

Want to see the working tool, including the brand-profile setup and the full prompt structure behind it? Subscribe to my newsletter and I'll send you access.

No fluff, no theory - just AI workflows freelancers and small teams can steal and use before the week is out.

Author profile image

Rahul Singh

Framer Designer & Digital Marketer

Written by a Framer designer and digital marketer based in Pune. I write about design, AI tools, and building a freelance business. More about Rahul.

Subscribe now!

Get latest insights first. No spam thats my promise.