john mark lowry
§ ai tools · 2026

AETHER

Campaign intelligence: an ML pipeline does the math, an LLM writes the assessment.

team one / publicis internal work. client names, knowledge corpora, and the internal platform's specifics withheld.

01 · the moment

Campaign intelligence usually forces a bad choice: rigorous numbers nobody reads, or readable narrative with no rigor underneath. The deck that explains the quarter and the notebook that actually computed it are different artifacts, made by different people, and they drift.

AETHER started as an entry for the holding company's internal builder-awards program — build something on the corporate AI platform that makes its own developers say “we didn't think that was possible.” It ended up a client-facing platform.

02 · the reframe

Use each tool for what it's good at, and make the seam explicit. Classical ML does the quantitative work — clustering, graph analysis, forecasting, constrained optimization — and the LLM does the one thing it's genuinely best at: turning a structured result into an assessment a human will actually read. Knowing where the seam goes is the skill.

03 · the routes

Compute at build time. The corporate platform's sandbox can render artifacts but barely reach the network; agent-side code at build time can reach a whitelisted backend. That asymmetry became the architecture: all live computation happens at build, gets baked into a refreshable dashboard template, and the template is locked to a canonical structure spec — “never build from scratch; read this file and patch it” — so generative builds stay reproducible across clients.

Grounded chat with receipts. The “ask” layer answers over a per-brand TF-IDF knowledge corpus — 76 files, roughly 1,900 chunks for the first client — and every answer cites its source, names its method, and carries a confidence grade. When the model is unavailable it degrades to corpus-only answers instead of going dark.

Brand isolation that can't leak. Each client dashboard is passphrase-gated with per-brand sessions and a per-brand knowledge root — cross-contamination is structurally impossible, and it's verified with tests, not promises.

04 · the architecture

The pipeline runs in stages: k-means clustering over channel performance; a channel-and-segment graph whose edges flag audience overlap and cannibalization; rule-based detectors for whitespace, anomalies, and saturation; an ARIMA revenue forecast; and a constrained budget optimizer with diminishing-returns math. The output compresses into a compact digest — KPIs, clusters, weight deltas, top insights — and only that digest goes to the LLM, with a system prompt that requires every claim to ground in the numbers provided. If the model call fails, a deterministic fallback renders instead: the dashboard never blanks.

Two-stage architecture: the ML pipeline stages compress into a digest, the LLM writes the grounded assessment, with the TF-IDF brand knowledge index feeding it and a deterministic fallback
the seam — auditable math on one side, grounded prose on the other

The grounding layer is its own quiet system: per-client brand knowledge corpora chunked and indexed with TF-IDF — no vector database, no network calls — where every retrieved chunk carries its source and a confidence-grade hint, so the assessment can say where a figure came from and how much to trust it. Each client dashboard is gated, with its own isolated knowledge base.

05 · the outcome

Live, passphrase-gated intelligence dashboards for two client brands, each with its own isolated knowledge corpus and the grounded chat in production — plus the builder-awards submission that started it all, completed against the deadline. The seam held: the math stays auditable, the narrative stays grounded, and the same engine onboards the next brand as a module, not a rebuild.

Don't ask an LLM to do math or an ML model to write prose. The architecture is the seam between them.

the insight
ran onPython + FastAPI · scikit-learn · networkx · statsmodels · scipy · TF-IDF knowledge corpora (per brand) · LLM assessment + grounded chat · production on AWS

← all work