Ops people do not lose renewals because they forget vendors exist. They lose them because the check lives in a mess of folders, inboxes, and last month’s spreadsheet — and the chat assistant invents a new path through that mess every time you ask.
The job is small and repeating: which contracts hit a notice window soon, what they cost, who owns the decision, and whether auto-renew will fire if nobody acts.
What breaks with a freeform prompt
Ask “any renewals coming up?” and the model will search whatever it can see. One day it opens the contract Drive. Next day it skims finance email. The fields drift. You get a narrative instead of a checklist. That is fine for brainstorming. It is a bad fit for a weekly control job.
Vendor playbooks keep repeating the same trap: people track the renewal date and miss the notice deadline that actually ends negotiation leverage. The fixed fields matter more than clever prose.
Encode the pack once
Build one small tool that always returns the same shape:
- Vendor / product
- Notice deadline (not just end date)
- Annual cost
- Internal owner
- Auto-renew yes/no
Point it at your real source of truth — sheet, Notion DB, or contract system. Host it on a server URL. Connect that server in ChatGPT, Claude, or Cursor. Then the weekly ask is boring on purpose: “list renewals with notice in the next 30 days.”
Smia is built for that pattern: design a small tool, host it on a server URL, call it from the assistant you already use.
How to verify it worked
Run the tool twice on the same day. The same three vendors should come back with the same notice dates and owners. If the answer changes shape between runs, the prompt is still doing the job — not the tool. Fix the tool until the pack is stable, then put the weekly ask on your calendar.
