← Back to builds

AI Systems

Campaign Brief Builder

· 3 min read

One line in, a full brief out#

A campaign brief is the same handful of decisions every time: the objective, the audience, the offer, what success is measured by, which channels carry it and what the hero copy says in each market. So I built a tool where you describe the campaign in one line and it drafts the whole brief, field by field, as a starting point you edit.

Try the demo →

The deployed demo doesn't call a model. The drafting endpoint is stubbed with a curated deck of example campaigns, so a free-typed request resolves to the closest example and says so. Everything after the draft runs for real in your browser: inline editing, redrafting, the readiness score, the compiled document and the Markdown export.

The Campaign Brief Builder intake screen: a one-line campaign input above six example campaigns spanning JP/KR, Southeast Asia, ANZ, India, Greater China and a global launch, laid out in the Poster Paper editorial style

Editing the draft#

Every field is editable inline. You can redraft to focus on a single market, add or drop a channel, or move the campaign up or down a tier, and the brief updates instantly because it's deterministic client-side logic with no round trip. A rule-based readiness check then scores the brief for launch and lists the specific gaps to close.

Approval before anything compiles#

The final document sits behind a checkbox: nothing compiles until someone has read the draft and ticked it. I didn't want a brief going out that nobody had read. The same caution applies at the start. Thin or gibberish input is pushed back before drafting, and a request with no goal or market gets a clarifying question instead of a guess.

One schema for everything#

A single brief schema drives the whole app. The validator enforces it, the readiness score reads it, the redraft transforms it and the document builder renders it. That's what lets the demo run on curated examples today: a curated example and a live drafting endpoint return the same shape, so turning this into the real tool means swapping one function. The interface doesn't care whether a draft came from the deck or a model, only that it matches the schema.

Copy in each market's language#

Each brief carries hero and subhead copy written in the language of each market: Japanese, Korean, Simplified and Traditional Chinese, Hindi, Bahasa Indonesia, Thai and German. It isn't English copy run through a translator. A Traditional Chinese line written for Hong Kong reads differently from one written for Taiwan, and a local team will throw out a brief that ignores the difference.

How it's built#

It's static HTML, CSS and vanilla JavaScript as ES modules, with no framework, backend, keys or build step, so it renders the same offline and on any host. The pure logic (validation, readiness scoring, redraft and the Markdown and document builders) is covered by node:test against the real example data. The footer says it's a front-end showcase running on sample data, and the tool tells you whenever it's standing in for a live model. It uses self-hosted fonts and this site's Poster Paper design system, and it's deployed on Vercel.

Want one of these pointed at your own problem? I'm easy to reach.