Build a working tool for media buyers
A public build challenge asked applicants to create a working tool for a media-buying team.

Structured AI workflow · validation · stage-level fallbacks · human review
Aegis is an AI-assisted creative research pipeline for media buyers. It analyzes competitor pages, generates five campaign concepts, and runs a separate risk review.
I built the working prototype independently in five days for the It's Today Media build challenge. The application validates model output, checks product rules in code, protects secrets, shows pipeline state, and preserves earlier results when a later stage fails.
Aegis separates extraction, strategic analysis, concept generation, and risk review into distinct jobs with explicit contracts between them.
The application validates model output, rejects malformed data, verifies important product rules outside the prompt, protects server-side credentials, reports how each stage ran, and preserves valid earlier results when a later stage fails.
The brief asked for a working tool. I focused on repeated competitor research and campaign review.
A public build challenge asked applicants to create a working tool for a media-buying team.
Teams need to review competitor positioning, offers, hooks, claims, audiences, and landing-page logic before they can plan a campaign.
The prototype extracts page content, structures the findings, generates campaign concepts, and runs a separate risk review with lower-risk wording.
The live prototype shows source input, structured analysis, generated concepts, and a separate risk-review stage.

The main dashboard where a reviewer starts an analysis, selects a platform, and provides either a competitor URL or source text.

Structured analysis of the competitor offer, audience, hooks, claims, calls to action, emotional triggers, and creative opportunities.

A separate review stage that surfaces phrases that may deserve closer human attention and explains the associated risk signal.

The final review state preserves the original concept while proposing lower-risk language for a human reviewer to accept, revise, or reject.
Aegis can run a fixed sample, use pasted text, or analyze a live URL.
A fixed sample runs the complete pipeline immediately, even when external services are unavailable.
A reviewer can paste page copy and still run Spyglass, concept generation, and Shield.
A competitor URL runs through extraction, analysis, five-concept generation, and Shield review with a status for each stage.
The product must preserve source context, return predictable structure, and support human review.
Landing pages reveal audience assumptions, positioning, feature priorities, proof points, hooks, and conversion logic. Reviewing them consistently takes time.
Unstructured output can sound polished and still be generic. Aegis grounds concepts in extracted page content and a required response shape.
Claims, promises, urgency, personal attributes, and other sensitive language require review before use.
The prototype had to be conceived, built, documented, and deployed in five days.
The workflow needed several distinct stages, not a chatbot call inside a form.
Model output had to follow predictable contracts so the interface could validate and render it safely.
A failed external service or model stage could not erase every valid result from the run.
The system needed explicit boundaries around risk review, human judgment, and legal or platform approval.
API credentials and service calls needed to remain server-side.
Each stage has one job, a defined output shape, and its own failure behavior.
The user enters a page URL or pastes source text. Pasted text also bypasses extraction when needed.
Firecrawl retrieves page content from a URL. That text becomes the shared source for later stages.
A Gemini task identifies the offer, audience, positioning, claims, hooks, calls to action, objections, and creative opportunities.
Zod validates the analysis before the application displays it. Invalid output is rejected.
A second Gemini task receives the structured findings and produces five campaign concepts. The application verifies the count.
A third Gemini task checks the concepts against 12 risk categories and suggests lower-risk alternatives.
The application validates Shield output and confirms that each flagged phrase appears in its concept.
Valid results stay visible. Status messages explain what succeeded, what failed, and what still needs review.
The system validates structure, checks product rules, protects credentials, shows provenance, and stops uncertain output from moving downstream.
Zod schemas define the required output for each AI stage. The interface rejects data that does not match the schema.
Aegis checks that generation returns five concepts and that each flagged phrase appears in its concept.
Pipeline badges mark live, manual, skipped, and fallback states so reviewers know where each result came from.
Gemini and Firecrawl credentials are stored in server-side environment variables and are never exposed through NEXT_PUBLIC_ configuration.
Manual input, sample data, stage-specific errors, and preserved earlier results keep the run inspectable when a provider fails.
The interface presents Shield as a heuristic review layer that supports human judgment. It does not promise legal compliance or platform approval.
Next.js + TypeScript
Gemini
Firecrawl + manual-text bypass
Zod schemas at each AI stage
GitHub + Vercel
Server-side environment variables
Live, manual, skipped, or fallback
Sample fixture + manual-text override
The interface separates source analysis, concepts, risk flags, and rewrites so reviewers can inspect each stage.
Zod schemas validate each AI stage. TypeScript types come from the same schemas, which reduces duplicate definitions.
Aegis separates analysis, concept generation, and risk review. Each stage receives the context it needs and returns an output the next stage can inspect.
Stage-specific fallbacks keep one provider or parsing error from erasing useful results. Status messages explain what remains available.
External services, parsing, quotas, and variable output can fail. Aegis shows those failures and preserves available results.
The reviewer can provide source text manually instead of losing access to the rest of the workflow.
The relevant Zod contract rejects the response and the application shows a specific fallback rather than rendering uncertain data.
The application rejects the result because the five-concept invariant is part of the product contract.
The valid analysis and campaign concepts remain available while the UI explains that the risk-review stage could not complete.
The five-day prototype tested one workflow: competitor page in, reviewed campaign concepts out. Other features were deferred.
Not required to prove the core analysis, generation, and review workflow.
Monetization would have added implementation weight without improving the MVP’s central product signal.
Persistent projects matter later, but they were not necessary to validate the end-to-end pipeline in the five-day build window.
Direct publishing would raise operational and policy complexity before the product had earned that level of automation.
The prototype does not claim production benchmark results. These criteria guide manual review and the next evaluation pass.
The current prototype uses supplied source material, but it does not link every finding or generated claim to a specific page passage.
The next version would link each claim to a source excerpt, URL, page section, and review status.
Each stage has a defined job, a typed output contract, and a visible review point.
Provider errors, malformed JSON, and partial completion are expected conditions. The interface explains them.
The interface shows source context, risk signals, alternatives, and clear places to accept, reject, or revise output.
The next version would add the features intentionally deferred from the MVP: saved projects, side-by-side competitor comparisons, source-linked evidence, reusable brand and risk rules, and explicit reviewer actions for accepting, rejecting, or revising generated concepts.
I would also formalize an evaluation set for grounding, creative distinctness, false-positive and false-negative Shield behavior, latency, and approximate cost per complete analysis.
I built the full workflow around the model: validated outputs, failure handling, visible state, secure configuration, stated limits, and a deployed interface.