Home/Case Studies/Multi-Agent Pipeline with Human Approval
Back to case studies
AI Agents Case Study

Multi-Agent Pipeline: Five Agents, One Human Decision

A Baydot working pipeline for inbound work requests. A scout finds the ones that fit, a writer drafts replies from a catalog of real work, a reviewer checks them, plain code asks the owner to approve on a phone, and an editor changes things on request. Nothing goes out without a tap.

Multi-agentClaudeCodexMCPPython
Five agents: scout, writer, reviewer, approver and editor, shown on an example chat thread with the Send buttons

What It Is

One big prompt kept doing everything badly, so we split it into five agents that each do one job and hand over a checked result. A person stays in charge of the only step that matters: sending.

The Five Agents

Scout. Looks at new requests every few minutes and keeps only the ones that fit: the right region, a client with a track record and little competition so far. It reads and never writes.

Writer. Drafts two different replies per request from a catalog of real past work, so nothing is invented. Both open with the client's own problem, not a greeting.

Reviewer. A separate agent that checks each draft before a person sees it. Plain code catches contact details and dead or unknown links; a model checks the opening, the claims against the catalog and whether the draft answers what was asked. If something fails it fixes the draft and says what changed.

Approver. Ordinary code, not a model. It builds a preview with the bid, the cost and the attachments, posts it to the owner's phone and waits. It sends only after a tap on Confirm. Cancel does nothing.

Editor. Changes a draft or the price when the owner asks in the chat thread, such as "shorter" or "add the map project". Changes to something already sent also show a preview first.

Example Use Case: Quote Requests

The poster shows the same pipeline on a home-services company. A homeowner asks about a second floor that will not cool. The scout keeps it because it is inside the service area. The writer drafts two replies from the price book and past jobs. The reviewer catches a quote below the price book, a promise of same-day service the calendar cannot keep and a dead financing link, and fixes them. The owner sees a preview on the phone and taps Confirm before anything reaches the customer.

Why Five and Not One

A writer that also checks its own work approves its own mistakes, so the reviewer looks at the draft cold. Keeping the approver as code means the step that spends money and speaks for us cannot be talked into anything by the text of a request. Each agent gets only the tools it needs, and the ones that prepare work cannot confirm anything.

A Real Catch

In a test on a live draft, the writer had linked to a page that returned 404. The reviewer's link check found it, swapped in the closest live case study and fixed the closing line as well. That is the kind of slip that is easy to miss when drafts are pasted by hand.

Stack

Python, a scheduler on the host machine, Claude and OpenAI Codex driven from the command line with MCP connectors, a Discord bot for the phone side and a link checker built on HTTP requests. The writer runs on one model and the scout and reviewer on another, so the load is spread across two subscriptions.

A Note on the Results

It is new, so there are no win rates to quote yet. The reviewer reduces bad drafts; it does not guarantee good ones. The poster shows an example use case, quote requests for a home-services company. Names and figures in it are sample data.

Need an agent workflow with an approval step?

Multi-agent pipelines where each agent has one job, the checks are real code where they can be, and a person decides what goes out.

Book a Free Call