CallBudget
Teach a pharmacy-finder to call less and find more
Built by Devanshu Chicholikar, software engineer and AI engineer in Boston.
Active-sensing pharmacy search: predict which pharmacy most likely has a hard-to-find drug, rank who a voice agent should call first, and learn from every answer. Tested on a simulated pharmacist with real pharmacy data.
Finding a drug during a shortage means calling pharmacy after pharmacy, and an 'in stock' answer can still be wrong. CallBudget treats it as a search problem: predict which pharmacy is most likely to have it, call that one first, and learn from every answer.
A HistGradientBoosting ranker scores pharmacies by predicted stock. A Claude-driven voice agent (Pipecat, Deepgram, Cartesia) handles the conversation, tested against a simulated pharmacist on real pharmacy data. In the evals, every stock answer goes through an extractor that reads it several times and abstains when the reads disagree, so a shaky answer never sends a patient to an empty shelf. Wiring that vote into the live call is next.
On a 19-pharmacy Boston pool, expected calls to find the drug fell from 4.3 to 2.3 (47%). With the extractor rigged to misread stock 25% of the time, false 'in stock' answers fell from 10% to 0% at 3 votes, and 5 votes held 0% while abstaining on 51% of calls instead of 69%. It ships as a 4-tool FastMCP server. Real inputs are NPPES pharmacies, RxNorm and the FDA shortage window; call outcomes are synthetic, with zero PHI. There is a Loom walkthrough on the repo.
- 47%
- Fewer calls to find, simulated
- 10% to 0%
- False 'in stock' answers, simulated
- 4
- MCP tools
- Zero PHI
- Real public inputs
4.3 to 2.3 expected calls vs a shuffled baseline
Self-consistency voting under a 25%-unreliable extractor
predict, plan, eval and converse over FastMCP
NPPES, RxNorm and FDA shortage data; synthetic outcomes