All work

Case study 02 · AI product · Working prototype

AI Content Assistant: from brief to a page a team is confident to publish

FlowPilot Content is a working prototype of an AI assistant for small marketing teams. It takes a campaign brief through a strategy a person approves, a section-by-section draft, objective SEO checks and a second person's approval, and ends with CMS-ready output. The design work is in making AI output easy to check: every section shows where it came from, and nothing ships that a person hasn't read.

Role
Product designer and prototyper, solo, working with AI tools
Users
Small marketing teams: writer, SEO, approver
Status
Working prototype, not yet tested with users
Tools
ChatGPT for research, discovery, planning and strategy · Claude Code for the build · Next.js, React, TypeScript
The FlowPilot writing workspace: a page structure list with a status icon per section and '3 of 7 sections approved', the hero section of the draft marked 'Edited by you' and 'Ready', and a Suggestions panel with specific SEO and internal-linking rules, each with an Add link or dismiss action.

Small marketing teams ship a lot of pages with very few people.

A new campaign usually needs a landing page: the right audience, search intent, brand voice, internal links, metadata and accessible structure. On a small team, one writer juggles all of it, and the guidelines that should shape the page live in five different documents.

I've seen this up close. On the Kurv website rebuild, the content and SEO teams had almost no way to update copy without engineering. On Kurv's paid-search pages, small copy and layout decisions changed which leads came in. The work was repeatable, rule-based and high-stakes: a good fit for AI that drafts and checks, with people making the calls.

FlowPilot is a fictional company. All the sample data in the prototype (brand rules, pages, customer quotes, figures) is invented.

Generic AI writing tools make drafts faster and reviews slower.

A chat tool can produce a page in seconds, but it doesn't know the brand's rules, the SEO guidelines, which pages already exist, or which customer quotes are approved. Reviewers then spend their time hunting for what's wrong, and nothing tells them which parts to trust.

The risky part isn't generating content. It's not knowing which parts to check.

I started from a brief, and pushed back on six parts of it.

I used ChatGPT as a thinking partner through research, discovery, planning and strategy: looking into how small teams use AI writing tools and where those tools fall short, and pressure-testing the brief. The brief described a familiar AI writing tool: generate the page, score it, publish it. Each change I made came from the same question: what would make a reviewer confident, not just fast?

  1. No quality score."97/100" invites trust without saying what to change. The review shows named rules that pass, warn or fail, each with the reason and a fix.
  2. Strategy before copy, approved by a person.Most bad AI copy starts from a bad angle. A 30-second strategy check is cheaper than rewriting seven sections.
  3. Confidence from traceability, not polish.Every section shows its sources and whether it's an AI draft or human-edited. The assistant never invents quotes or numbers.
  4. Any edit withdraws approval.It costs a click and prevents the worst failure: shipping text nobody read.
  5. No publishing to live sites.The tool prepares output; a person publishes. For a small team, an unreviewed live page costs more than the saved minute.
  6. Final approval by someone other than the writer.Small teams skip this under time pressure, so the product makes it the default path.

That was desk research, not user research: I haven't put this in front of users yet. These are design bets, and the plan to test them is in Results.

People don't need more text. They need text they can verify.

  1. Context beats prompts.Output quality depends more on the guidelines and pages it's grounded in than on clever wording.
  2. Review is the bottleneck.Speed only counts if a reviewer can approve a section quickly, not rewrite it.
  3. Trust is per section.A page is never all right or all wrong, so status, sources and approval live on each section.

Design the review, not just the generation.

How might we help a small team produce on-brand, search-ready pages faster, while making it easier, not harder, for a person to stay accountable for what ships?

Five stages, with a person deciding at every one.

Workflow
StageAIPerson
1 · StrategyReads the brief and the knowledge base; proposes audience, search intent, page type, tone, angle and structureEdits and approves before anything is written
2 · WriteDrafts each section from the approved strategy; regenerates, rewrites, shortens or expands on requestEdits, comments, approves or marks each section "needs changes"
3 · SEO reviewNone: checks are computed from the text and the guidelinesFixes what fails, decides on what warns
4 · ApprovalNonePage approval, then final approval by a second person
5 · PublishNoneCopies or downloads JSON, HTML or Markdown and publishes it
The Proposed strategy screen for a 'Weekly reports guide': cards for audience, search intent (Informational, with the reason), content goal, page type (Blog), tone and messaging angle. A note says the prototype has no keyword volume data, a label says 'Proposed by the demo engine', and a bar at the bottom offers Edit strategy or Approve and generate draft.
Strategy. The strategy is proposed, labelled with what produced it, and approved by a person before any copy exists. It also says what it does not know: there is no keyword volume data.
Decision
Review section by section, not page by page.
Why
Reviewers approve what's solid in one click and spend their attention on what's flagged. The page can't be approved until every section is.
Trade-off
More clicks for a perfect draft. Far fewer missed errors in an imperfect one.
Decision
Show who wrote each section: a dashed rule for an AI draft nobody has edited, a solid one once a person has.
Why
Reviewers can see at a glance which text no human has touched yet.
Trade-off
One more visual signal to learn, so it's explained at the top of the draft.
Decision
Any edit withdraws approval, for the section and the page.
Why
What was approved is always what's exported.
Trade-off
A small typo fix after approval means asking again.
The Review and approval screen: filters for All (7), Needs review (3), Needs changes (1) and Ready (3), the hero section with its reviewer and comment field, and a bar at the bottom reading 'Not ready to approve: 4 sections are not approved, 1 comment is unresolved', with the Approve page button disabled.
Approval. Approve page stays disabled and says exactly why: 4 sections not approved, 1 comment unresolved.

Clear lines between what the AI does and what people decide.

  • AI role

    What the AI does

    • Proposes a strategy from the brief and the knowledge base
    • Drafts each section from the approved strategy
    • Regenerates, rewrites, shortens or expands one section on request
    • Lists the sources it drew on for every strategy and section
  • Human role

    What people control

    • Approving the strategy before any copy is written
    • Editing, commenting on and approving every section
    • Final approval, by someone other than the writer
    • Publishing
  • Guardrails

    How bad output is stopped

    • Customer quotes only from approved proof; links only to known pages
    • Numbers checked against the sources they came from
    • Malformed AI responses rejected before they reach the page
    • Placeholders block approval; the offline demo engine is labelled as not AI
  • Evaluation

    How we'd know it's working

    • Time from brief to approved page
    • "Needs changes" rounds per page
    • Failing checks at first review
    • Share of sections approved with zero edits (too high is a warning too)
A Social proof section card marked 'AI draft' and 'Needs review', with a dashed purple rule beside the text. A yellow note above the quote reads 'Quote comes from Brightline Studio. Confirm they are happy for it to appear on this page.' Below are Approve section, Needs changes, Regenerate, Rewrite, Shorten, Expand and Undo.
Guardrail in the UI. The quote comes from approved proof, and the card still asks a person to confirm permission. The dashed rule marks text no one has edited.
The SEO review screen: totals of 0 Must fix, 1 Worth a look and 23 Passing; editable SEO title (56 of 50 to 60 characters), meta description (137 of 120 to 160) and URL slug, beside an approximate search result preview with a note that search engines may rewrite what they show.
SEO review. Counts of what to fix, not a score. Every check is computed from the text, and the search preview says it is a preview, not a guarantee.

Status never relies on colour alone.

The design system has dedicated tokens for the states this product is about: AI draft, needs review, needs changes and approved. Each always pairs colour with an icon and words. The page being written is set in Newsreader, a serif, and the controls in Geist, so you can always tell content from interface.

The FlowPilot design system page: colour tokens for paper, surface, sunken, line, ink and ink muted, then status tokens for accent, AI draft (purple), approved (green), needs review (amber), needs changes (red) and info, followed by the type scale in Geist and a Newsreader sample for page content.
Design system. Status tokens sit next to the neutrals, and the type scale separates content (Newsreader) from controls (Geist).

A working prototype, built so each part can be swapped.

I built the prototype with Claude Code. The product decisions, guardrails and interaction design were mine; Claude Code helped me turn them into a working Next.js app, with tests for the rules that matter most, like edits withdrawing approval and unapproved quotes never being offered.

Every AI request runs the same pipeline: retrieve from the knowledge base, generate, then validate. The loading state shows those stages as they really happen ("Reading your brand, SEO and product guidelines", then "Found related content" with a count of the sources used), so waiting describes real work.

  • Retrieval is a small lexical (BM25) ranker over brand rules, SEO guidelines, product features, existing pages and customer proof. Brand, SEO and product guidance are always included.
  • Two AI providers: Claude through the Messages API when a key is set, and a deterministic template engine that runs offline and is clearly labelled as not AI.
  • Workflow stage is derived from the data, never stored, so the status badge can't disagree with what's on the page.
  • Swappable by design: the model, the retriever, storage and the CMS are each one interface. WordPress, Webflow, HubSpot and Contentful show as "planned" adapters.
  • Accessibility: landmarks, a skip link, visible focus, live announcements for saves and AI results, move up/down buttons instead of drag-only reordering, and reduced-motion support. Checked by keyboard walkthrough at 1440, 820 and 390px. A full screen-reader audit hasn't been done yet.
The Publish screen for a page marked Ready to publish: a checklist showing Page approved by Jordan Ellis and Final approval from Maya Chen, then CMS output tabs for JSON, HTML and Markdown, with WordPress, Webflow, HubSpot and Contentful shown as planned, and the semantic HTML output below.
Publish. FlowPilot prepares the output; a person publishes it. Direct CMS publishing is shown as planned, not faked.

Link the live prototype here if you host it, and note one thing that changed in the design once it was built.

No results yet, on purpose. Here's how I'd measure it.

The prototype hasn't had users, so nothing below is a result. These are the hypotheses, the measure for each, and the baseline I'd need first.

Success metrics: hypothesised, not measured
HypothesisHow to measureBaseline needed
Brief-to-approved time fallsTimestamps already in the activity logThe same task in the team's current process
Fewer review rounds per pageCount of "needs changes" events per pageThe last 10 pages from the current process
Reviewers trust the output moreA short survey after each approval; edits per sectionThe same survey on human-only drafts
Fewer brand and SEO errors reach reviewFailing checks at first reviewAn audit of recent published pages
People edit AI text, not accept it blindlyShare of sections approved with zero editsNone

A fair first test: 5 to 8 people from small teams each produce one page with the tool and one with their current process, in either order, then compare time, edits, reviewer ratings and what they'd change.

Designing for AI is mostly designing for doubt.

  1. 01

    The interesting design work is in review.

    Generation is the model's job. Making its output easy to check is the designer's.

  2. 02

    A score is the easy answer, and the wrong one.

    Named rules with a reason and a fix tell a reviewer what to do next. A number only tells them how to feel.

  3. 03

    Be honest about the limits, in the product too.

    The demo engine is labelled, missing keyword data is stated, planned integrations say "planned". Known gaps: lexical retrieval misses synonyms, the checks are heuristics, and live model quality hasn't been evaluated.