Inspiration

A few weeks after my grandmother finished a round of chemo, she started feeling a little off. Nothing that seemed urgent. Just more tired than usual, a bit warm, the kind of thing most people would sleep off and forget about by morning. She didn't think it was worth calling anyone. By the time someone in the family actually checked in on her and realized something wasn't right, what could have been caught early had already turned into a trip to the hospital. She ended up okay, but it was close enough to scare all of us, and it's stuck with me since. What got to me wasn't the chemo, or even the fever itself. It was the gap. She was sent home with a folder full of instructions and a number to call "if anything feels wrong," but nobody tells you what wrong is supposed to feel like when you're the one going through it. A little tired and a little warm sounds like nothing until you remember she was immunocompromised, and for someone in her position, that combination can turn serious in a matter of hours. Nobody was watching during the part of her recovery that mattered most, and she didn't know she was supposed to be worried. The more I looked into it, the more I realized this wasn't unique to her. A lot of the reasons patients fall through the cracks after discharge have nothing to do with medicine at all. Someone doesn't have a ride to their follow-up appointment. Someone doesn't have anyone home to help them. Someone doesn't have anywhere stable to actually recover. Those things rarely show up on a chart, but they shape outcomes just as much as a lab result does, and almost nothing in the system is built to notice them. I built ClarifyCare Coach because I wanted there to be something checking in during that silence, something that takes "I feel a little off" seriously instead of leaving a patient to guess whether it matters, especially when they're the ones who can least afford to guess wrong.

What it does

ClarifyCare Coach simulates text message check-ins with patients after they leave the hospital. Patients reply in plain language, the way they'd actually text a friend, and the system reads that message alongside a few structured details, like temperature, whether they're currently on chemotherapy, and basic social factors like transportation access and caregiver support, to decide what happens next. For most patients, that means quietly logging that they're doing fine. For some, it means flagging them for a nurse to follow up with. And for chemo patients specifically, certain warning signs, like fever, bleeding, vomiting, or symptoms consistent with a dangerously low white blood cell count, trigger an immediate escalation that cannot be overridden by the model's confidence level. If the system isn't confident it understood a message correctly, it doesn't guess on the patient's behalf. It routes the case to a human instead. Every flagged case comes with a one-page clinician brief that lays out exactly why it was flagged, so a nurse can act in seconds instead of digging through a chart.

How we built it

The scoring engine was designed to be simple and explainable rather than a black box, since a model that can't explain itself isn't something a clinician should trust with someone's safety. A TF-IDF text classifier estimates how severe a patient's message sounds, and that score feeds into a logistic regression model, along with temperature, oncology status, and social determinants of health, to produce a single risk score. Above that model sits a layer of deterministic rules specific to oncology patients. Those rules can escalate a case entirely on their own, and nothing in the machine learning layer is allowed to override them. The dashboard includes a patient roster, a live simulator for testing new check-in messages, a flagged queue sorted by urgency, and a case detail view that highlights exactly which words in a patient's message drove the model's decision. Every dataset we used is fully synthetic and fictional. We hand-wrote 42 patient cases, including a set of deliberate "contradiction" cases where a patient claims to feel fine while their recorded temperature says otherwise, specifically to test whether the system trusts the data over the self-report when it actually matters.

Challenges we ran into

Honestly, the hardest part wasn't the modeling. It was keeping the build alive. Our development environment crashed more than once mid-project, and at one point we lost an entire working version of the app and had to rebuild from a checkpoint. That forced us to get serious about backups faster than we would have liked, and to stop treating any single environment as something we could fully rely on. On the modeling side, the real challenge was resisting the temptation to let the machine learning model have the final word. It would have been simpler to let one risk score decide everything. But a model that's ninety-five percent confident is still wrong five percent of the time, and for something like neutropenic fever in a chemotherapy patient, that five percent isn't a risk worth taking. Designing a system where the rules-based safety layer sits above the model, rather than beside it, took more thought than the modeling itself. We were also careful not to oversell our results. Our model reaches one hundred percent accuracy on our 42 hand-built cases, but that number mostly reflects how small and clean the dataset is, not proof that the model generalizes to real patients. We report our honest cross-validation accuracy, seventy percent for the neural model and sixty percent for logistic regression, right alongside it, because a number that flatters the project isn't useful if it isn't true.

Accomplishments that we're proud of

We're proud that this system is built to distrust itself when it should. It doesn't quietly act on a message it's unsure about, and it never lets a probabilistic model override a known danger sign. Every screen carries a clear reminder that this is a research prototype, not something ready for real patients, because we would rather be upfront about that than let anyone mistake a hackathon build for something clinically validated. We're also especially proud of the oncology escalation rules. It's a small piece of the system on paper, but it came from genuinely sitting with the idea that some risks in healthcare aren't something you leave to a coin flip, no matter how good the coin is.

What we learned

We learned that in healthcare, a good AI system is defined less by how often it's right and more by how honestly it handles being wrong. Knowing when to stay quiet and when to hand a decision to a human mattered more, in the end, than squeezing out a few extra points of accuracy. We also learned some harder lessons about building under pressure, mainly that no single tool or environment should ever hold the only copy of your work, and that it is far better to learn that lesson the easy way than the hard way.

What's next for ClarifyCare Coach

Right now, this is a prototype built on 42 fictional patients and a simulated text messaging system. The next real step would be training on a much larger, independently labeled dataset and putting the model through genuine clinical validation before it ever came near a real patient. We would also want to connect it to a real SMS provider instead of a simulator, and let social barriers like a lack of transportation or an unstable living situation trigger their own escalation path, rather than only quietly influencing a risk score in the background. None of that changes what this project already proved to us: that the silence after discharge does not have to stay silent.

Built With

Share this project:

Updates

posted an update

Hi TechCommons Judging Panel,

Thank you for your message. I wanted to clarify that the Devpost submission requirements explicitly listed the live link as optional (“Link to Live Project (Optional): If your website or app is hosted online, provide the URL so judges can try it out themselves.”). Because of that, I made sure to include the mandatory GitHub repository, which contains all of the project’s code.

Since you requested a hosted version, I’ve now added the live link for your convenience. Please feel free to review it at any time.

Warm regards, Sarvesh

Log in or sign up for Devpost to join the conversation.