Row 01, exactly as it comes out of the export
What the agent wrote for it
This export carries 24 columns. A mail merge reads four of them, which is exactly why cold email all sounds the same. The agent reads 20. The three in amber never reach the model at all: they decide whether the row is worth writing to. The four left dark are identifiers with nothing to say about the person.
Four stages per row. Two of them are ordinary code, and they are the two that keep the sending domain alive.
Reads Evaboot's own verdict first. NO MATCH is dropped, and any email not marked safe is sent back for a manual check. No tokens are spent on a row that should not be written to.
One row plus a short seller brief go to claude-opus-5. No search, no enrichment, no browsing. If a fact is not in the row, the model has no way to know it and no permission to guess it.
Thirteen deterministic rules. The strict one: the quote the model claims as its hook has to appear word for word in the column it named, or the email does not ship.
A failing draft goes back once with the exact failures attached. Still failing, and the row is held for a human rather than sent. A held row is a working outcome, not an error.
What it wrote, and under it the row it read. Hover a highlighted phrase to see the cell it came from. Regenerate runs the same pipeline live against the Claude API, checks included, and it has to find an opening none of the other rows already used. Watch it earn the result rather than take my word for it.