An AI agent that runs 95% of student operations

Matching, booking, rescheduling and homework for a tutoring company, handled by an agent with a human-takeover console.

WellPrepped, an international tutoring company, assigns every student a success manager: the person who finds the right tutor, proposes times, books and reschedules lessons, chases homework and answers billing questions. The work is the product, and it grows one-for-one with the student count. Every new intake meant hiring.

I built the platform the company runs on (student and tutor app, staff console, API) and an AI agent that operates the success-manager account inside it.

About 95% of conversations now finish without a person taking over. Staff handle what the agent escalates.

How it works

The agent does the job through the same API the staff console uses. It has 22 tools: create a tutor request, search existing tutors, propose times, book, reschedule, assign homework, read invoice status, message, escalate. Which tools it can see depends on the phase of the conversation and on who it is talking to, so a billing question can't end in a booking.

Every conversation is visible in the staff console, and a person can take one over mid-thread. Escalation is a tool like any other; the agent calls it when a request is outside what it is allowed to decide.

The hard part: an agent that doesn't claim work it didn't do

Early on the agent told a parent it had created a request for a subject the company doesn't teach. No tool had run. The sentence was simply plausible.

Filtering replies for phrases like that fails at the next paraphrase. The check I built is structural instead. Each turn records which tools were dispatched and their typed results. If the model was told the subject does not exist and then took no sanctioned action, the server discards its reply and sends an authored one. The replacement is written by a person, because the failure is generated text claiming an outcome.

Under it