Build something useful for media buying.
Aegis was built in response to a public challenge asking applicants to create a working tool that could deliver practical value to a media-buying team.

Structured AI workflow · validation · stage-level fallbacks · human review
Aegis is an AI-powered creative intelligence pipeline for media buyers. It turns competitor landing pages into structured strategy, five testable ad concepts, and risk-reviewed safer rewrites.
I built the working prototype independently in five days for the It's Today Media build challenge. The strongest part is not only the AI generation. It is the system around it: schema validation, application invariants, visible pipeline states, server-side secret handling, manual and sample recovery paths, and graceful stage-level fallbacks.
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 useful working tool. I chose a problem where competitor research, creative direction, and review pressure overlap.
Aegis was built in response to a public challenge asking applicants to create a working tool that could deliver practical value to a media-buying team.
Teams need to understand competitor positioning, offers, hooks, claims, audience assumptions, and landing-page logic quickly enough to turn the signal into useful direction.
The prototype extracts source material, structures the strategy, generates campaign concepts, and adds a separate review layer for policy-risk signals and lower-risk wording.
The live prototype exposes the full path from source input to strategic analysis, generated concepts, and a separate risk-review surface.

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 prove the full experience instantly, bypass extraction for focused testing, or run the complete live pipeline.
A hardcoded fixture shows the complete pipeline immediately. Reviewers can inspect the intended product experience even when external services are unavailable.
A reviewer can paste landing-page copy directly, bypassing extraction while still exercising Spyglass, ad generation, and Shield.
A competitor URL runs through Firecrawl extraction, Gemini analysis, five-concept generation, and Shield review with stage-by-stage status reporting.
The difficult part is not producing more copy. It is preserving source context, predictable structure, and a visible path for human review.
Landing pages reveal audience assumptions, positioning, feature priorities, proof points, emotional hooks, and conversion logic, but reading them consistently takes time.
Unstructured model output can sound polished while staying generic. Aegis keeps ideation connected to extracted source material and an explicit response shape.
Claims, promises, urgency, personal attributes, and other sensitive language need deliberate review before confident copy reaches an audience.
The prototype had to be conceived, built, documented, and deployed in five days.
The workflow needed to demonstrate more than a single chatbot call wrapped in 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 a narrower job, a defined output shape, and its own failure behavior. That makes the system easier to inspect, debug, and extend.
The user provides a landing-page URL or pastes source text manually. Manual input also acts as a practical bypass when extraction is unavailable.
Firecrawl retrieves usable page content when a URL is supplied. The extracted text becomes the shared source for the analysis stages.
A focused Gemini task identifies offer, audience, positioning, claims, hooks, calls to action, objections, and creative opportunities.
Zod validates the analysis before the application accepts it. Invalid output is rejected instead of being treated as trustworthy UI data.
A second Gemini task receives the structured strategy and produces five campaign concepts. The application verifies the required ad count.
A third Gemini task checks the concepts against a twelve-category risk checklist and suggests lower-risk alternatives for review.
The application validates Shield output and confirms that a flagged phrase actually appears in the associated concept before displaying it.
Valid results remain visible stage by stage. Status messages and fallback explanations tell the reviewer what succeeded, what failed, and what still requires judgment.
The system validates structure, checks product invariants, protects credentials, exposes provenance, and makes failure visible instead of quietly passing uncertain output downstream.
Zod schemas are the source of truth for every AI stage. Responses are parsed and validated before the interface accepts them as usable data.
Aegis verifies that generation returns exactly five concepts and that phrases flagged by Shield actually appear in the associated ad.
Pipeline badges distinguish live, manual, skipped, and fallback states so reviewers can understand the origin and reliability of each result.
Gemini and Firecrawl credentials are stored in server-side environment variables and are never exposed through NEXT_PUBLIC_ configuration.
Manual overrides, sample fixtures, stage-specific errors, and preserved earlier results keep the product 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, generated concepts, risk flags, and suggested rewrites so a reviewer can follow the reasoning path instead of receiving one opaque block of output.
Zod schemas make every AI stage easier to validate, display, debug, and extend. TypeScript types are derived from those schemas rather than maintained separately.
Aegis uses separate tasks for strategic analysis, concept generation, and risk review. Each stage receives only the context it needs and produces an output the next stage can inspect.
Independent stage fallbacks prevent one provider or parsing failure from destroying an otherwise useful run. Specific status messages explain what remains available.
AI applications depend on external services, parsing, quotas, and nondeterministic output. Aegis treats those conditions as part of the product experience.
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 was scoped to prove competitor page in, safer ad ideas out. Features that did not strengthen that core loop were deferred deliberately.
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.
This prototype does not yet claim production-grade benchmark results. These are the practical criteria I use to inspect its behavior and guide the next evaluation pass.
The current prototype keeps each stage grounded in supplied source material, but it does not yet map every strategic finding or generated claim back to a precise page passage.
The next version would let a reviewer expand a claim to see the supporting excerpt, source URL, relevant page section, and review status before using the output downstream.
Aegis works because each stage has a defined job, a typed output contract, and a visible review point.
Provider errors, malformed JSON, and partial completion are normal AI-product conditions. The interface should explain them instead of pretending they do not happen.
A human-in-the-loop claim means more when the interface shows source context, risk signals, alternatives, and clear places to accept, reject, or revise the 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 more than an AI feature. I built the system around it: validated outputs, failure handling, transparent state, secure configuration, responsible limitations, and a complete path from idea to production deployment.