SALES AGENT · INBOX AGENT · RUNS IN YOUR BROWSER · SENDS NOTHING

The AI sales agent for your replies, with you in the loop

Paste the replies your outreach got back. The agent decides what each one means, honours every unsubscribe (with their words kept as the record), pauses out-of-office and not-now prospects until the right date, stops the cadence for anyone who answered, and drafts the replies worth sending for you to approve.

Paste your replies Try an example

One rule runs through it: the agent may always do less on its own; it may never do more without you. Stopping and pausing happen automatically. Anything that would contact a person waits for your approval, and you send it yourself. Pairs with the sales cadence builder (the outreach) and Deal Keeper (the pipeline).

1. The replies

Optional: your prospect list and suppression list

2. You and your offer (the drafts use only this)

Paste replies, then run the agent.

4. Today's queue (the daily run)

Paste the task CSV from Sales Cadence Builder. It lists what is due today, leaving out anyone who unsubscribed, bounced, replied, is paused or suppressed, including the replies you just ran above. It sends nothing.

5. Who to contact first (CRM export)

Paste a HubSpot, Pipedrive, Salesforce or any CSV export. It ranks one contact per company against the customer profile you describe, explains every point, and writes a first-touch draft for each. It drops opted-out, suppressed, customer, role-address and recently contacted rows, and holds Canada, Germany and Austria for consent. It reads no website, guesses no email address and sends nothing. Every fact in a brief is a field of your export.

Uses your offer, today's date, prospects and suppression list from the sections above.

6. Before and after a call

Type one person's email. Call prep writes a one-page brief from what you paste: what is on file, what they wrote in their own words, which of nine discovery fields you still know nothing about (with the question to ask). Follow-up turns your notes from the call (one point per line; "I will send..." lines become promises) into a recap email that quotes only your notes. Anyone who asked to stop, bounced or is suppressed gets a warning and no draft. It sends nothing.

Uses the replies, prospects, CRM export, suppression list, offer and date from the sections above.

Optional: let an AI model read the replies and polish the drafts, on your own key

Off by default. With a key, each reply and draft goes from this browser straight to the provider you pick, never to us. The model's reading is merged under one rule: it may lower how much contact follows (turn "unclear" into "unsubscribe"), never raise it (it cannot turn a "no" into a meeting). Its drafts are thrown away if they state a number you did not give or make a promise. The key is kept only in this browser if you tick the box.

To keep everything on your own computer, run a model with Ollama, LM Studio or llama.cpp and pick it below: no key, no cost per use. The local server must allow this page: start Ollama with OLLAMA_ORIGINS=https://duncan-haywood.github.io, or switch on CORS in LM Studio. Your browser may ask whether this site may reach devices on your network.

How well it reads replies (measured, not claimed)

The rules were tuned on 120 hand-written replies until they read all of them correctly. Then 40 new replies were written and scored once, without further tuning. On those 40:

WhatResult
Replies the rules named a category for24 of 40; right on 17 (71%)
Replies handed to you as "unclear"16; the word model's guess was right on 9
Unsubscribes the rules caught3 of 5 (the other 2 were worded unusually and went to you, paused)
Guesses that would have drafted to someone who wanted less contact5 of 16 (guesses never act; you approve every draft)

So: the rules are a floor, not a reader. Read every "unclear" reply yourself, or add a model on your own key. All three test sets, the scoring script and these numbers are in the source; the replies were written by the same author as the rules, so real inboxes will score differently.

Questions

What does an AI sales agent do with replies?

It reads each reply to your outreach and decides what it means: unsubscribe, bounce, out of office, left the company, not now, not interested, an objection, a question, or interested. Then it does the bookkeeping a sales rep does by hand: adds unsubscribes to the suppression list with their words as the record, pauses the out-of-office and not-now prospects until a date, stops the cadence for anyone who replied, and drafts an answer for the ones worth answering.

Does it send emails for me?

No. It never sends, and it never will without you. The agent may always do less on its own, such as stopping or pausing outreach, but anything that would contact a person waits in a queue for you to read, edit and approve, and you send it from your own mailbox.

How accurate is it at reading replies?

On 40 replies written after its rules were finished, the built-in rules named a category for 24 and were right on 17, and handed the other 16 to you with a guess that was right on 9. They caught only 3 of 5 unsubscribes worded unusually. That is why every reply it is not sure of comes to you, and why an AI model on your own key can read the reply too, under the rule that it may only ever lower how much contact follows.

What happens when someone asks to unsubscribe?

Their address goes into a suppression file with the date, the reason and the sentence they wrote, every cadence to them stops, and no reply is drafted. No AI model can override that. Load the suppression file into your sending tool and the sales cadence builder so they are never contacted again.

Does it use AI, and is my data sent anywhere?

Only if you choose. With no key it runs on rules and a small word model inside your browser, and nothing is uploaded. If you add your own key for Anthropic, OpenAI, Gemini or an OpenAI-compatible endpoint, or point it at a model on your own computer, each reply and draft is sent from your browser straight to that provider. Model drafts that state a number you did not give are thrown away.

Is Sales Agent free?

Yes. No signup, no limit, no seat price. It is MIT-licensed open source, so you can run it yourself, put it inside your own product, or sell it as a service.