All posts
19 min read

building the AI platform for the modern agency content team

building the AI platform for the modern agency content team
TL;DR. Poe runs an agency's content pipeline with a team of specialist AI models: a researcher, a writer, a link picker, a reviewer and an editing assistant. It knows what each client has already published, so it plans around that library, links into it and avoids repeating it, and it can publish approved ideas on a schedule through Autopilot, inside guardrails people set. People set the direction, review the AI's work at every checkpoint, and make every call that matters: what's researched, what's written, which suggestions stand, and what ships. Nothing the AI proposes is applied without a person, and every AI and human step is recorded, so clients can see exactly how each piece was made and sign off on a link. Under a simple model, one editor-hour goes about four times further than in a traditional agency workflow, without taking humans out of the loop.

The treadmill every content agency knows

If you run content for SEO clients, you know the loop:

  1. The SEO team hands down keywords.
  2. Someone turns them into a calendar, and the client approves it.
  3. Writers research and draft.
  4. Editors fix voice and structure.
  5. Someone checks the piece against the client's brand rules and the SEO checklist.
  6. The client sends notes, and the loop starts over.

Every step is skilled work. Almost every step scales with headcount. Twice the articles means roughly twice the people, and twice the chances for a rule to slip, a keyword to go missing, or a brief to be misread.

Most agencies' first answer to AI was a chat window: paste a brief, get a draft, clean it up. That speeds up one step and quietly creates a bigger problem: nobody can say how the draft was made, or who actually checked it. The usual answers to AI are "trust the machine" or "keep the headcount". Poe is my attempt at a third one: let AI do the volume, keep people firmly in charge, and make that visible.

The brief I started from

Before a line of code was written, I wrote down what I wanted:

"An AI-powered content hub where our content team can do ideation, generation and human-in-the-loop editing in one place.

The overarching principle for Poe came out of that brief:

  • Humans stay in the loop, and the system proves it. AI proposes; people decide; the record shows who decided what. Efficiency that clients can't trust isn't efficiency for an agency; it's a liability.

The AI team inside Poe

The big shift in how I think about AI: it isn't one assistant you prompt. It's a team of specialists, each doing one job well, with its own model chosen for that job, and each reporting to a person. Poe mirrors the roles of a human content team:

RoleWhat the AI doesWhere a person decides
ResearcherSearches the live web on the topic and keywords, reads sources, and writes a research summary, a proposed outline and a numbered source list.An editor edits the summary and outline, and includes or excludes each source before anything is written.
WriterDrafts the article from the brief, keywords, target length, research, the client's template, and every agency and client rule.The draft is a proposal. An editor rewrites, revises or regenerates it; nothing moves forward on its own.
Link pickerChooses relevant internal links from the client's link lists.It only picks from lists people curated; editors keep or cut each link.
CheckerRuns each template's checks after every draft and automatically retries when one fails.Anything still failing is flagged "needs review" for a person.
ReviewerScores the draft against the client's guidelines and proposes specific edits, quoting the original text and the suggested rewrite.Every suggestion is applied, reworded or dismissed by a person, never automatically.
Editing assistantRevises the whole draft from an editor's feedback, rewrites a selected passage, or writes new text at the cursor.Every change is previewed first; the editor accepts it, adjusts it, or throws it away.

Three choices make this work in practice:

  • The right model for each role. The researcher and the writer don't have to be the same model, or even from the same vendor. Poe works with Claude, OpenAI and Kimi models, and an admin, a person, picks the model for each role. When a better model ships, we switch it in Settings.
  • The rules travel with the work. The same agency standards and client rules that instruct the writer also drive the reviewer, so "write it to spec" and "check it against spec" can't drift apart. People write those rules; the AI follows them.
  • You can watch the AI think. While a model works, Poe shows it working: the searches it runs, the sources it reads, a short live peek at its reasoning, and words written against the target. Supervising AI means being able to see it.

One article's life, and where people decide

StepWhat the AI doesWhat a person decides
1. BriefNothing yet.The SEO team picks the keywords; the team writes the brief; the client approves the calendar it comes from.
2. ResearchSearches, reads, summarizes, outlines, cites.Whether this topic needs research at all (a per-topic switch); what to keep, edit or exclude.
3. DraftWrites to the client's template, research, keywords and rules.Whether the draft is good; regenerate from an updated brief, revise with feedback, or edit by hand.
4. CheckRuns template checks (retrying failures) and scores the draft against every rule, suggesting edits.Each suggestion: apply, reword or dismiss. Anything still failing gets a human look.
5. EditRewrites or extends passages on request, previewed first.Every word that stays. Every version is kept, so any decision can be undone.
6. ReviewNothing.An editor moves it to In Review, then Done. Status only changes when a person changes it.
7. Client sign-offNothing.The client comments, approves or requests changes on a shared link; the team responds and resolves.
8. DeliveryPackages links and Google Docs into a Sheet, Excel or CSV.Which articles go, and with what.

Look at the right-hand column. Every step that matters ends with a person.

Human in the loop, by design

"Human in the loop" is easy to claim and hard to mean. In Poe it's enforced by the system, not left to good intentions.

Four rules the system won't break:

  1. AI never applies its own suggestions. Every guideline suggestion and every AI rewrite waits for a person to accept, adjust or dismiss it.
  2. Only people move work forward. An article reaches In Review and Done only when an editor moves it. Even a client's approval doesn't move the status by itself; the team decides.
  3. Nothing is lost when people change their minds. Regenerating, revising or restoring always saves the current draft as a version first. If the brief changes after a draft exists, Poe flags it ("Changed since this draft: Brief, Keywords") and lets a person decide whether to regenerate.
  4. Every article has an owner. Whoever starts the work becomes accountable for it unless someone else is assigned, and that's the person notified when the client comments or signs off.

Accountability is visible, not assumed. Poe keeps a full provenance record for every article:

  • which model researched and drafted;
  • who changed the brief, and from what to what;
  • each human editing session, with a word-level "show changes";
  • every AI suggestion and who applied or dismissed it;
  • every AI-assisted rewrite, with the editor's instruction;
  • every status move and every export.

That record powers the client-facing page (below), where the human work is counted and named, not hidden behind the AI.

What people actually do now. In a traditional setup, most skilled hours go into producing: researching from scratch, writing first drafts, checking the same rules by hand. In Poe, the AI team produces; people do the work only people can do:

  • Direction: choosing topics and keywords, writing a sharp brief, setting the rules and templates, choosing which models do which jobs.
  • Judgment: whether a draft is good, whether the angle is right, whether a claim holds up, which AI suggestions to take.
  • Accountability: signing their name to what ships, and answering for it.
  • The relationship: reading client feedback, explaining choices and earning trust.

This is the move from a headcount model to an operator model. One experienced editor directs a team of AI specialists. The machines handle the volume, and the editor handles every decision.

What makes Poe different

1. A client-facing "how this was made" page.
Most AI writing tools hide the process. Poe shows it, and puts the people front and centre. Any article can be shared as a private, branded preview:

  • the article first, in a clean reading layout;
  • the guideline score, with the actual rules behind it;
  • a timeline of how the piece was made: brief, research, AI draft, human editing, guideline check, review.

Each step is labeled AI, Human or both. The human work is counted and named: who edited, how many sessions, words added and removed, suggestions reviewed and applied. Internal notes never leak onto the page. For a client wondering "is this just ChatGPT output?", the answer is right there: no, and here's who made it right.

2. Feedback and sign-off on the article itself.
Clients highlight any passage and leave a comment, or comment on the whole piece, without an account. Comments stay attached to their passage even as the text around them changes. If the passage is rewritten, the thread is kept and marked as being on changed text, never silently lost. Clients Approve or Request changes with a note. The owner is notified in Poe, replies as the team and resolves threads, and every decision lands in the article's history. The client becomes part of the loop, too.

3. Guidelines that are truly agency-wide, plus each client's own.

Rules live in two tiers:

  • Agency standards apply to every client, live. Change one and every client's next draft and check follow it immediately. They include a running list of words and patterns that make text read as machine-written, which the writer avoids and the reviewer flags.
  • Client rules sit on top: brand voice, product facts, phrases to avoid. A client rule wins on conflict, and a client can switch off an individual agency rule that doesn't fit.

People write and own every rule; the AI applies them consistently.

4. Per-client templates, not one generic prompt.
Different clients need different formats: product FAQs, location pages, long-form guides. Each template has:

  • its own writer prompt;
  • link lists for the link picker;
  • placeholders filled from the brief and the client's facts;
  • checks that run after every draft.

A dry run lets an editor preview the prompt, the link picks or a full draft before anything touches the queue. Templates replaced the automated n8n workflows we used to maintain separately, and they gained what those workflows never had: human review, history and client sign-off around every output.

Poe now knows what a client has already published

The first version of Poe treated every article as a blank page. That works for a client’s first ten articles and fails for the next hundred. An agency with a real blog needs new content that fits the old content, doesn’t compete with it, and links into it. So each client now has a content library.

Sources. A library can be built from a website section, an RSS feed, WordPress or Shopify, a product feed, a list of URLs, or uploaded files (CSV, XLSX, JSON, HTML, Markdown, DOCX, PDF). Poe chunks and embeds it all, and a re-sync only touches what changed. Every draft then pulls just the facts it needs from the library, within a small budget, instead of dumping the whole archive into the prompt.

How Jev is used. Writing is a job for a frontier model. Asking “is this actually relevant?” thousands of times is a different job, and it needs to be cheap and consistent. So I gave it to a separate specialist. Jev is a small, purpose-built relevance model, and it is the judge behind most of the library features:

  • Retrieval. It filters the passages pulled for a draft down to the ones that actually help the writer.
  • Internal links. After a draft is written, Poe finds the client’s published posts that match the topic and each section, pairs them with body sentences, and Jev scores every sentence-and-post pair. You get one link per post and per sentence, a handful per draft depending on length, with a tight anchor phrase that names the post. Editors add or skip each one.
  • Overlap check. After every generation, Jev scores whether the draft covers the same topic and angle as something already published. The Optimize panel shows the matches with links and percentages, and offers “Build on it instead” or “Keep as a new angle”. It never blocks anything. A person chooses.
  • Planning. Every idea in a content plan is checked against what the client already has (more on that below).
  • Categories. When a post goes to a WordPress or Shopify site, Jev files it under the one existing category or blog that fits best. It never creates a category, and if nothing fits well enough it leaves it alone.

Jev is optional. Without a key, Poe falls back to word and meaning matching, labels the scores as approximate, and carries on. The principle is the same as everywhere else in Poe: Jev scores and proposes, and a person decides.

Build on what’s there. A per-article switch tells the writer to extend the client’s most relevant published articles instead of steering around them. An editor picks up to ten, the writer reads them in full, and the History records which pieces a draft was built on. For clients with published articles, internal linking is on by default.

Plan: the step before the article exists

The original Poe started from a content calendar the client had already approved. It now covers the step before that too. Each client has a Plan, which is a bank of ideas organised by pillar and subtopic.

Poe's New plan dialog with Plan and Autopilot plan options
Starting a plan: an ordinary Plan or an Autopilot plan, filled by AI, an imported calendar or by hand. (Demo workspace, sample data.)
  • Suggest ideas with AI. Pick one or more pillars and how many ideas per subtopic. Big maps outline the subtopics first and then generate ideas one subtopic at a time, so a plan of up to 200 ideas stays coherent. Or import a calendar from a spreadsheet, or add ideas by hand.
  • Every idea is checked against what exists. Poe compares each idea to the client’s library and the rest of the plan, by shared words and by closeness in meaning, and Jev gives a verdict. An idea that is already covered can ask for a new topic: a rewrite told which titles are taken and to find a different search intent.
  • Plans can build on content, not just avoid it. An idea can be tied to existing pieces and written to go deeper than them and link back.
  • The client decides. A plan can be shared as a private link. Stakeholders approve, reject, or suggest a revision on each idea with a note, and the owner is notified. Poe drafts a suggested rewrite, but the team decides what goes back to the client.

Same principle as the rest of Poe. The AI proposes the ideas, a person approves them, and the client signs off before anything is written.

Out the door: publish, schedule, illustrate

An article used to end at “Done” and an export. Now it can go all the way to the client’s site. Poe connects to WordPress, Ghost and Shopify and can save a post as a CMS draft, publish it, or schedule it, with the slug, SEO title, meta description, category, tags and featured image filled in. Before anything goes, a preflight warns about things like no client approval, open comment threads, a low score or an overlap. It warns, and a person decides. Publishing never emails a Ghost site’s subscribers.

Poe can also illustrate an article: a cover image plus images placed through the body, each written from the article, with the original draft saved first so it can be undone. A Calendar shows what is scheduled and what is live, in the client’s own time zone.

Images: a toolbox of models, through fal.ai

Articles with no visuals read like walls of text, and most agencies solve that with the same handful of stock photos everyone else uses. I wanted Poe to give editors real options without sending them off to five different tools. So images are built in, and the generative side runs through fal.ai.

Why fal. fal is one connection to a large catalogue of image models from different labs. That matters for the same reason it does for the writing models: no single model is best at everything, and the best one changes every few months. Poe doesn’t bet on one. It keeps a short toolbox of models it knows well, and lets an editor reach for any text-to-image model in fal’s catalogue.

Poe's Add an image dialog with Upload, Stock photos and Generate tabs
One picker in the editor: Upload, Stock photos, or Generate with fal.ai.

How it works. One image picker sits in the editor toolbar with three tabs: Upload, Stock photos (Pexels and Unsplash, with attribution kept) and Generate. In Generate, Poe does something that I think is the real value: it writes the prompt like an art director. A utility model reads the article’s title and draft, or just the passage an editor highlighted, and decides on one specific idea for the image, a treatment (photo, illustration, conceptual, diagram or 3D render) and which model fits, with a one-line reason. It also writes the alt text. The editor can change any of it before anything is made.

Poe's Generate tab with a prompt, treatment options, model picker and shape
Generate: Poe proposes the idea, treatment and model, and the editor can change any of it before anything is made.

The toolbox pairs models with what they’re good at:

  • Nano Banana 2.1: scenes that explain an idea, simple labelled diagrams, strong prompt following. This is the default.
  • FLUX 3 and FLUX1.1 pro ultra: detailed, well-composed photography, and natural, unposed documentary shots that don’t look like stock.
  • Recraft V4.1 and Ideogram 3: editorial illustration and on-brand design work, and bold graphic compositions with a few words of text.
  • GPT Image 2: infographics, charts and diagrams where the text has to be exact.
  • FLUX.1 schnell: quick, cheap drafts to explore a direction before spending on a finished image.

Behind that is the technical piece that makes “any model” practical. Every fal model has its own input settings, so Poe builds each request from the model’s own published schema rather than hard-coding a form per model. Poe checks the endpoint against fal’s catalogue before anything runs. A new model that fal adds can be used the day it appears, without a code change.

Tools for an image you already have. Each result has Edit (describe a change), Upscale 2× and Remove background, and each is another fal model behind the scenes. Images are stored by Poe, so a post doesn’t depend on a generator’s temporary link, and when an article is published to WordPress, Ghost or Shopify, Poe copies the image into the site’s own media library.

A generated photo of a hygienist and patient with image tools and an alt text field
A generated image, made by Nano Banana 2.1 on fal.ai from the prompt above, with Edit, Upscale 2× and Remove background, and alt text to review.

Illustrate article. For a whole piece, one action designs a cover and places images above body paragraphs, one per section first. A single call writes every prompt together so the ideas don’t repeat, and several images are made in parallel. The draft is saved first so the whole thing can be undone, and a featured image a person chose is never replaced. Autopilot can run this step on its own.

Poe's editor showing the generated image at the top of a dental article
The generated image in the draft, with the keyword, length and guideline panels beside it.

Cost is visible. Every fal run is logged against the article’s client, with the price snapshotted from fal’s published rate for that model, so Usage and costs shows what images cost and for whom. A super admin sets the key in Settings, and it is stored encrypted.

Like everything else here, the AI makes options and a person chooses. Nobody has to accept a generated image, and nothing is inserted without the editor picking it.

Autopilot: people set the rules, Poe keeps the schedule

Once Poe could research, write, illustrate and publish, the obvious question was what happens when you let it do all four on its own. That is Autopilot.

An Autopilot plan takes only ideas a person has already approved, and writes, illustrates and publishes them to one site on a schedule. You set it up in four steps:

  • Where. The site, the author and the category, or let Jev match a category to each post.
  • When. So many a day, week or month, on chosen days, at a set time or “make it look natural” inside a window. A preview shows the real dates and roughly when the plan runs out.
  • How each post is made. Research, template, internal links, source links, building on existing content, the cover and images, the SEO fields.
  • Safety net. Hold a post if its guideline score is too low, if it overlaps something published, or if a template check fails. The first post goes out as a CMS draft by default, or you can keep everything as drafts.

Then it runs. Poe schedules slots weeks ahead, prepares posts a few days before they are due, runs the same guideline check as any other article, and publishes at the time. If something trips the safety net, the post is held and the owner is notified. They can release it, publish it now, skip it or take it out of Autopilot. If credentials stop working it pauses itself, and it warns when there are fewer than two weeks of approved ideas left.

Is that still human in the loop? Honestly, it changes where the human is. Everywhere else in Poe a person moves each article forward. In Autopilot the decisions come first: a person approves every idea, the client can approve the plan, a person writes the rules and sets the thresholds, and anything that doesn’t clear them stops and waits for someone. Autopilot is opt-in, it belongs to one plan, it is clearly marked wherever its articles show up, and it can be paused or turned off at any moment. The record still shows what the AI did and who set it going.

Why a person is always in the loop, by design

A person stays in the loop in Poe, and that is a design decision, not a limitation I haven’t gotten around to fixing. I believe AI is an augmentation tool. It is very good at volume, speed and consistency. But ideas, agency and accountability are still human, and I don’t think they are replaceable, at least not in a proper, ethical agency setting, where a client is paying for someone’s judgment and for a named person who stands behind the work.

I checked that belief against what Poe actually does today, not just what I meant it to do. Here is where it holds up in the product.

Ideas stay human. AI can suggest hundreds of topics, but an idea only becomes work when a person approves it. Autopilot will only pick up ideas that are still approved. When a client suggests a revision, Poe drafts a rewrite, and the team decides what goes back.

Agency stays human. Every guideline suggestion is applied, adjusted or dismissed by a person. AI edits are previewed first. Regenerating or restoring saves the current draft as a version before it changes anything, and AI-written images arrive with an undo. If an AI fills in an SEO field, it never overwrites one a person wrote. If a post was edited in the client’s CMS since the last push, Poe asks before overwriting it. Jev scores and proposes, and never decides.

Accountability stays human. Every article and every plan has an owner, who gets the notifications that matter. The History records who changed the brief, who edited, which AI suggestions were applied or dismissed, and who published. The client-facing page counts and names that human work. When Autopilot publishes, it does it as the plan’s owner, so the name on the action is a person’s.

Where I’ve chosen not to force it. Poe’s publish preflight warns about no client approval, open comment threads, a low score or an overlap, and then leaves the decision to the person. That is deliberate. A system that overrules its users is a different product from one that informs them. It also means the loop is only as strong as the attention people give it. Poe can put the right information in front of an editor, show the record of what they did, and make the safe path the easy one. It can’t make anyone read carefully. That part is, correctly, a human job.

The point of all of this is to move people toward the work only people can do: deciding what is worth saying, judging whether it is right, and answering for it afterwards. The AI team handles the volume so that the humans have time for exactly that.

A worked model: throughput, quality, alignment

This section is an illustrative model with stated assumptions, not measured results. We'll replace it with real numbers once Poe has run for a full month.

Assumptions for a typical 1,200-word SEO article. Note that editing time doesn't shrink; that's the human in the loop, by design.

StepTraditional workflowWith Poe
Brief and research1.5 h0.25 h (a person reviews the AI's research)
First draft3.0 hAI writer (minutes)
Editing1.0 h1.0 h (unchanged: human judgment)
SEO and guideline check0.5 h0.25 h (a person rules on the AI's suggestions)
Formatting and hand-off0.3 h~0 (export)
Total human time6.3 h1.5 h

That's roughly 4.2× more articles per editor-hour. The savings come from production work, not from cutting review.

For a team producing 40 articles a month:

  • Traditional: 40 × 6.3 h = 252 hours. At about 120 productive hours per person per month, that's a little over two full-time people.
  • With Poe: 40 × 1.5 h = 60 hours, or about half of one person's month.

Put another way, the same two people could direct and personally vet roughly 160 articles a month instead of 40, if review time holds.

Throughput is only part of the case. The other two:

  • Quality becomes consistent. The AI reviewer checks every agency standard and every client rule on every draft, at any volume and without getting tired, and a person makes the final call on each suggestion.
  • Alignment is built in. The SEO team's keywords or a client's overarching directive drive the researcher, the writer and the reviewer. Client feedback and sign-off happen on the article and are recorded, so "did we do what was agreed?" has an answer.

Caveats, honestly:

  • Hard topics take longer to review.
  • New clients need time to set up rules and templates.
  • The AI is only as good as the brief and rules people give it.

It's a hypothesis to test, not a promise.

What's next, and what I'd tell other agencies

Next for Poe:

  • measuring the model above against real production data;
  • swapping in new models per role as they ship.

Fittingly, Poe itself was built the same way it asks agencies to work. I directed a small team of AI coding agents instead of assembling a development team, and kept the decisions, and the "no, do it again", for myself. Human in the loop, all the way down. That's a story for another post.

If you run an agency content team, here's what I'd pass on:

  1. Design the human checkpoints first. Decide where a person must approve before deciding what the AI does. Then make the system enforce it.
  2. Stop thinking of AI as one assistant. Give it specialist roles (research, writing, linking, review, editing), pick the best model for each, and have each one report to a person.
  3. Write your rules down. AI is only as consistent as the rules people give it, and the same rules should instruct the writer and the reviewer.
  4. Make the human work visible to clients. Clients don't fear AI-assisted content. They fear content no one stands behind. Show them what the AI did and who approved it.
  5. Re-think roles, not just headcount. Your best editors become operators directing a team of AI specialists, and accountable for every word that ships. Hire and train for judgment.

The agency content team isn't going away. It's getting smaller, sharper and more accountable, with people more in the loop than ever, not less. I think that's better for clients.