Skip to main content

Case Study

Agents in Production

A production agent wired into a flow of tools and sources — fetching from the web, reading a datastore, running code, and writing output as the surrounding pipeline routes its work
Role
  • Staff Software Engineer
  • Production AI / Agents
Stack
  • Claude
  • Google Agent Development Kit (ADK)
  • Vertex AI
  • Firecrawl
  • n8n
  • Linear
  • Python
  • Laravel

These are the agents that act while a user watches. A grounded search answers questions across roughly 100 umd.edu sites, every claim carrying the page it came from — proven in a limited pilot, now an internal tool. An ingestion agent turns a single URL into draft-grid entries. A triage agent routes incoming work and drafts its assessment. Content agents write alt text and copy inside the publishing pipeline. And a set of Claude-authored n8n workflows handles the recurring work around them.

They all live in the product path, where a wrong answer reaches a person directly — so the discipline is different from building software. The question is trust: what stops an agent from inventing, what makes a claim traceable, and who catches the failure that matters. The answers are below, one agent at a time — including the honest one, where a tool worked and the economics didn't.

Answer With Sources, Not Guesses

Grounded Search — Piloted, Proven, Pulled Inside

Unified search, two views. View one — the user interaction across services: a visitor query reaches the search page, which injects a UMD preamble, sends an authenticated query to the composed search services (Vertex AI, a Pin API, and a keyword index), receives a cited summary with ranked sources, dedupes citations, appends a telemetry record to a cost log, and renders results. View two — how the services compose a response: the search page fans the query to Vertex AI, the Pin API, and the keyword index in parallel, whose outputs merge into one ranked, composed result set returned to the visitor.

The University of Maryland's grounded search answers questions across a Vertex-indexed corpus of roughly 100 umd.edu sites — and every answer carries the pages it came from. Grounding is the guardrail: no source, no claim. The public can't try it anymore, so the specifics matter. Here is what a query goes through.

  • The search page injects a UMD preamble, scoping the question to the institution before anything is retrieved
  • The query fans out in parallel to three services — the Vertex AI index, a Pin API for curated results, and a keyword index
  • The three result sets merge into one ranked, cited answer, with duplicate citations deduped
  • Every query appends a telemetry record to a cost log — cost was the known risk from day one, so it was measured from day one

The limited pilot worked — well enough that usage climbed and the bill climbed with it. What started near $200 a month grew fast with popularity, and when significant State of Maryland budget cuts hit the university, the tool moved to internal use. Same architecture, smaller audience — and a cost log that made the call an informed one.

From a URL to a Draft Grid

Ingestion as an Agent

A hand-drawn diagram: a website on the left feeds an n8n and Firecrawl workflow in the middle, which outputs structured data on the right.

Draft Slot's ingestion agent takes a single URL, fetches the rendered page through Firecrawl, and parses it into structured entries — team, player, and position — placed onto the draft grid.

  • A URL goes in; Firecrawl renders the page the way a browser would
  • The agent parses team, player, and position into typed entries
  • Entries land on the draft grid, ready for a human pass
  • Structured extraction, not freeform text — the output has a shape to check

Triage at the Front Door

The Agent Drafts, a Human Decides

Three triage agents in sequence — an intake agent that collects and prepares the request, an assessment agent that scores priority and routing, and a response/routing agent that integrates with CRM, ticketing, and APIs.

Incoming requests meet a workflow agent before they meet a person. It parses each request, routes it into Linear, and drafts a value and roadmap-impact assessment for human triage.

  • Requests parsed and routed into Linear automatically
  • Each arrives with a drafted value and roadmap-impact assessment
  • A person makes the call — the agent prepares the decision, it does not make it
  • Human-in-the-loop by design: the draft is a starting point, not a verdict

Content Agents in the Pipeline

Built on Google's ADK

The Google Agent Development Kit (ADK) mark — a robot face above code brackets.

Alt-text and marketing-copy agents ship inside the platform pipeline, built on Google's Python Agent Development Kit. They generate at the point of publishing — and what they produce clears review like any other content.

  • Alt-text agents draft accessible descriptions in the publishing flow
  • Alt text runs on a self-hosted open model — a Salesforce model from Hugging Face on a dedicated AWS server — vendor-independent, at predictable cost
  • Marketing-copy agents draft at the point of need
  • Built on Google's Python ADK, deployed in the platform pipeline
  • Generated content meets the same review bar as anything written by hand

Workflows, Not Just Agents

n8n Automations Authored with Claude

Not every production automation needs to be an agent. A set of n8n workflows handles the recurring work around the platforms — authored with Claude, checked into git, and pushed to n8n like any other code. Some run on work infrastructure, some at home; the survey matters more than the weeds.

  • News, read and summarized — a personal workflow that digests the day's sources into one briefing
  • Email flows keyed to form submissions — the fields a visitor fills in decide the routing and the response, on work infrastructure
  • S3 buckets that sync themselves — files land where they belong without a human moving them, on work infrastructure

It is the same discipline at smaller scale. The workflows live in version control, Claude writes them against a reviewable definition, and a human review sits ahead of any send that matters.

Why This Matters

Production Is a Trust Problem

An agent that builds software has a reviewer — me. An agent in production answers a user directly, with no one standing between its output and their screen. That single difference changes the whole discipline.

So these agents are built around their failure modes: grounded so they can't invent, sourced so every claim is traceable, and gated by a human wherever being wrong has a real cost. Velocity matters — but in the product path, trust is the product.

The discipline extends past launch. The grounded search did its job and the economics still said no — so it runs inside the institution instead of being defended in public. Judgment about what to keep, contain, or kill is as much a part of production agents as the build.

Draft Slot brand splash with tagline

Next case study

From Thesis to Draft Night

Founder · thesis turned production platform · built 100% with Claude