Ihza MahendraResume
Back to Evaluation & calibration
Evaluation & calibration

Real-time mood detector that changes how the AI manager responds

A classifier that reads whether a person is confused, stressed, in a state of flow, or checked out from their recent activity, and uses that read to decide whether their AI manager should be more supportive or more challenging in the next conversation.

What it is

A real-time classifier that reads a person's state (confused, stressed, in flow, over-confident, or disengaged) from their recent activity, and uses that read to decide how their AI manager (see the multi-character AI team project) shows up in the next conversation. In supportive mode, the manager walks them through the answer, lowers the friction, and offers resources up front, used when someone is stressed, confused, or checked out. In challenging mode, the manager asks questions back instead of handing over the answer, forcing the person to reason their own way to it, used when someone is in flow or over-confident, so the system pushes them rather than making it too easy.

What it's for

Some signals only show up right before someone gives up. Catching confusion or stress before someone goes silent or blindly submits something gives their AI manager a chance to respond differently. Reading flow and over-confidence matters too, those are exactly the moments to push someone harder rather than hand them an easy win. A manager that treats every person the same way gets this wrong roughly half the time. Aggregated across many people, this same read also shows whether a piece of course content is generally pushing people into flow or into stress.

How it was built

A background process runs periodically on each person's recent activity log. It uses an AI classifier to label their state into one of five categories with a confidence score and a dominant reason. Pattern flags ride alongside the state, catching things like someone overclaiming a skill they don't have, or being visibly confused about what's actually being asked of them. The labeled state is saved and read by the AI manager before its next reply, which flips it between supportive and challenging mode accordingly. An operations dashboard reads the same data to show how groups of people are distributed across these states over time.

My role

Co-built. Wrote the classifier itself, the wiring that flips the AI manager between supportive and challenging mode based on the read, and the dashboard panels that surface aggregate distributions.

Built with
PythonTemporalLLM classifierPostgresRecharts

Want the full technical depth, the tradeoffs, what broke, what I'd do differently? Ask the agent about this project.