Inspiration
Statistics Canada reports that 4.5 million Canadians, 69% of those over 45, have difficulty accessing specialist care. In Ontario, only a third of referred patients see a specialist within a month of referral. More than 90% of Ontario physicians still transmit referrals by fax. These figures, combined with direct experience navigating the referral process, motivated us to address the lack of visibility and follow-up in the current system.
What it does
StandBy closes the referral loop. After a family doctor issues a referral or diagnostic requisition, the patient uploads it and sets their preferences such as travel radius, OHIP coverage, public or private service, physician gender, accessibility needs, and language. From there, StandBy takes over. An outbound voice agent calls every eligible clinic, lab, or imaging centre within range, asks about availability and fit, and returns with definitive answers instead of inaccurate estimates. Results are ranked against the patient's stated preferences and shown on a dashboard, where the patient picks the option that works best for them. Once they confirm, StandBy calls back to lock in the appointment and confirm the booking. This process saves a referral that could otherwise disappear into an opaque system into a confirmed appointment
How we built it
StandBy is built on Node.js and deployed on Render with routing hand-rolled directly on the HTTP layer. SQLite handles persistence, and live dashboard updates are pushed via Server-Sent Events instead of polling, enabling near-real-time call updates. Stopping a run is handled as a separate request that flags the queue to skip any calls not yet dispatched, and lets the active calls finish naturally rather than cutting them off mid-conversation. Clinic calls run against a generated directory of GTA providers, each holding a hidden set of real openings that only a completed call reveals.
Referral and requisition intake runs through a custom-built PDF parser, while photographed documents go through Tesseract.js, an Optical Character Recognition (OCR) library, and runs as WebAssembly (WASM) entirely on-device. This means the image is never transmitted to a server just for reading, which keeps a patient's referral photo local. Combined with the fact that extracted details are discarded once the specialist search is complete, this keeps the patient data exposure to a minimum at each step.
Challenges we ran into
The biggest challenge was the clinic-calling layer. Real telephony wasn't feasible within the hackathon's timeline, so we built a call simulator instead. It runs concurrent, queued calls with sampled outcomes to mimic real-world uncertainty. Beyond that, parsing real referral and requisition PDFs without relying on an existing library forced us to build our own text-extraction logic.
Accomplishments that we're proud of
We are proud of getting the loop to work end-to-end, from a referral upload to a ranked, confirmed appointment, using mostly Node's built-in tools with a call simulator standing in for real phone calls. Additionally, sampling realistic outcomes and running calls simultaneously through a queue lets the dashboard track live progress as it would with real telephony.
What we learned
We learned more about how the web actually works. Choosing Server-Sent Events over something heavier like WebSockets meant recognizing that our updates only flowed one way, from server to browser, so we didn't need a two-way connection only to show a call's progress. Modelling how a referral gets stuck involved understanding its real mechanics: the holds, the voicemails, the panels quietly closed to new patients. Roughly half of referrals in Ontario never result in a completed appointment, and working through that made it much clearer why timely access to a specialist matters so much to the people stuck waiting on one.
What's next for StandBy
We'd take StandBy further by integrating insurance coverage, expanding beyond the GTA, and widening our scope to primary care. As we grow, we'd add bilingual agents and a multilingual interface so it works across Ontario and eventually Canada. Along the way, the data itself becomes useful to paint a real picture of where referrals stall and how long people actually wait, which is exactly the kind of evidence policymakers need but rarely have.
Log in or sign up for Devpost to join the conversation.