What it does

Do you want optimal renewal terms? Small teams auto-renew software nobody reviews. Renewal Negotiator turns a renewal email into a negotiation you rehearse before you send it, and never invents a price.

Paste an email (or pick a sample) and a durable agent crew, running in the background, will:

  1. Extract the deal: vendor, seats, current price, billing period, renewal date.
  2. Research the vendor's real public pricing and real alternatives. Every price becomes a receipt: source link, screenshot, and capture time.
  3. Rehearse up to 3 rounds: a buyer agent that argues only from receipts vs. a vendor rep labeled "Simulated rehearsal partner, not a prediction."
  4. Verify every price in the final email against its receipt ("N of M claims verified").
  5. Judge the result: the final email, the likely outcome, the counter you'll most likely face, and a prepared reply, each with the agent's estimated chance.

The buyer negotiates like a pro: it anchors below list price, uses receipt-backed leverage, asks for a credit and a price lock, and makes the alternative its walk-away. It never reveals your fallback. That stays private, on your screen only.

Real run (Slack sample): billed \$10.00/user/month, but Slack's own page lists \$8.75 monthly and \$7.25 annually. The email asks for \$5.75 on a 24-month prepaid term:

$$ \text{saving} = 50 \times (10.00 - 5.75) \times 12 = \$2{,}550/\text{yr}\ (43\%) $$

with a private fallback of \$1,650/yr (28%) at Slack's verified published price. Done in about a minute, every number backed by a screenshot.

For: founders and ops leads at small companies who own the software bill but have no procurement team.

Try this first

  1. Open the link, tap Try a sample renewal (no sign-up), and pick Slack.
  2. Switch to Autopilot and tap Start the rehearsal. Watch the live log as the agents read slack.com and microsoft.com.
  3. On the final screen: your ask, the private fallback, the verified receipts, and the chances.
  4. Type an objection in You be the vendor and watch the buyer answer with evidence.

Inspiration

Renewal emails arrive, prices creep up, and nobody has time to check what the vendor charges everyone else. Negotiating is awkward, so most teams just pay. We wanted an agent that does the homework and lets you practice the hard conversation first. One rule shaped everything: in a negotiation, a made-up number is worse than no number.

How we built it

Layer Sponsor stack
Agents Omnara Cloud: one durable agent plays five roles in a sandbox; secrets are injected, never in the prompt
Web data context.dev: Search, Scrape with Highlights (just the pricing passages), and screenshots
Data and live updates Supabase: Postgres with RLS, anonymous and magic-link auth, realtime log, Storage for screenshots
Email Primitive: send the approved email; the buyer agent reads the vendor's reply
Hosting Freestyle VM, Next.js (App Router, TypeScript)

Runs live on the server, not in your tab. The agent writes each step to Supabase as it works; our server verifies the receipts; the page just watches. Close the tab and the run keeps going.

Receipts are checked, not trusted. A claim is verified only if every amount in it appears on the page that was fetched and screenshotted:

$$ \text{verified}(c) \iff \forall\, a \in \text{amounts}(c):\ \$a \in \text{page}_c $$

Savings count only verified prices, and the chances are the judge agent's estimates, capped at 5–95% so nothing reads as certain.

Challenges we ran into

  • Hidden prices. Slack's prices sit about 9,300 characters into its pricing page, past what we fed the agent, so it "found no pricing." Switching to context.dev Highlights gave the agent just the price passages: 5k characters instead of 24k+, and every price visible.
  • Speed for a live audience. Each tiny command was its own model call, and the agent typed out its own helper script. We batch each stage into one command, read pages in parallel, cache captures, and let the sandbox download the helper. First log line: 19s → 8s; full run: ~75s → ~53s.
  • Negotiating like a human. Our first emails asked for the list price and announced the fallback, which gives the vendor the answer. Now the buyer anchors low, trades concessions for commitment, and keeps the fallback private.
  • An honest simulated vendor. The rep may only use published pricing and generic moves. It can say "needs manager approval," but it can never invent a discount.

What we learned

  • Grounding is a product feature, not a prompt. Screenshots and an "N of M verified" badge build more trust than "be accurate."
  • Durable agents simplify the app. When the platform owns the long-running loop, the web app just launches, records, and renders.
  • Rehearsing beats advising. Answering a realistic pushback yourself prepares you better than a list of tips.

What's next

Negotiating with several vendors at once, forwarding renewals by email, and tracking real savings across every deal.

Built With

Share this project:

Updates

Submission history