The most dangerous line in an outreach agent is the one that sends. Get a search wrong and you waste a credit. Get a send wrong and a stranger gets a bad email with your name on it.

That line is what we are designing right now. Mantis has just joined NVIDIA Inception, NVIDIA's program for startups, and our next phase is outreach that runs end to end: from a plain-words description of a customer to a booked meeting. Here is what is already running, what we are building next, and the one design rule that holds it together. I work on Mantis.

What already runs

Mantis went live in September 2026. You describe a customer, for example "funded SaaS startups in Bangalore hiring sales reps", and an agent plans the search across maps, company websites, web search and public registries, keeping only companies that fit and are the right size. Each lead carries a reason: no website, a dead website, poor reviews, hiring, or new funding. A first message is drafted per lead, the user approves it, and it sends and follows up. Every run is logged with its ICP, strategy, pipeline and outcome.

So far, 910 people have signed up and they have unlocked 13,271 leads. Now we want the part after the lead.

The next build: search to booked meeting

These are on the roadmap, not shipped, and the design docs carry no dates:

  1. Search straight into a campaign. The leads a run finds become an editable multi-touch campaign in the same run.
  2. A campaign planner. It reads the list (count, email and phone reach, what we noticed), the seller's profile and the connected senders, and returns touches: channel, wait, subject, body.
  3. A canvas. n8n-style nodes: trigger, touch, wait, then a "Replied?" branch where yes means stop.
  4. Three channels. Email, then WhatsApp, then a call.
  5. A voice agent with a goal. For example "Book a 15-minute follow-up call", with an outcome of interested, callback, booked and friends, plus meeting_day, meeting_time and meeting_person.

The rule: the model plans, the code sends

The planner is a model. Everything after it is not. From our campaign design doc: code compiles the touches into the canvas graph, and "the model never places nodes and never sends". An edit like "make touch 2 a WhatsApp" re-plans the whole sequence from the current one, rather than patching a node.

Why so strict? Because the failure modes of the two halves are different:

Half Fails how So it is
Planning (model) Bland copy, wrong channel, odd timing Reviewable and editable before anything runs
Sending (code) Double sends, wrong thread, mailing someone who replied Deterministic, testable, boring

The sending half is where the boring engineering lives:

  • Claim before send. A row is claimed (sending) before anything goes out, so two workers cannot send the same touch.
  • Follow-ups stay in the thread. They reuse the first touch's thread and carry an unsubscribe header plus a "reply unsubscribe" line.
  • Stops are hard. A reply on any channel, a bounce or an unsubscribe ends that lead's sequence. A booked call does too.
  • Rate and time limits. Per-sender daily limits; calls only 10:00 to 19:30 IST, Monday to Saturday, one at a time per user.
  • A human gate. Approve is required, and a test must have been sent first, with every touch filled with the first lead's real values.
  • Policy in the planner's constraints. WhatsApp is never the first touch to a stranger.

Where NVIDIA Inception fits

NVIDIA describes Inception as "a free program that guides AI startups through the NVIDIA platform and ecosystem". For a two-founder team the useful parts are "free self-paced technical courses and discounted expert-led workshops" and "free cloud credits from NVIDIA and partners", which members request. A campaign engine reads replies, places calls and re-plans sequences for every lead, every day, so training and compute are exactly where it bites. The program has no equity requirements; Mantis is bootstrapped.

See what runs today

The product demo is about eight minutes:

Tarun, our founder, wrote the full announcement with the whole roadmap: Mantis joins NVIDIA Inception: what we built, what's next.

If you have built an agent that is allowed to send things to real people, where did you draw the line between model and code? I would like to compare notes.