A co-pilot for study-abroad counsellors that works in the live CRM.
A study-abroad counselling network works through partner agencies whose counsellors shortlist universities, match scholarships and move students through applications in the network's CRM. Plexe built a co-pilot for those counsellors: a chat-first workspace where a Claude agent reads the student's profile, searches courses and scholarships, spots duplicates, and can create leads, submit applications and send email in the production CRM. It runs in production with its own eval suite, and a student app built on the same agent is in pilot.
How it fits together
- Counsellorchat-first web console
- Co-pilot agentClaude Sonnet, streaming tool calls
- Tool registrysearch, scholarships, writes
- Network CRMstudents, leads, applications
The challenge
- Counsellors shortlist universities and match scholarships for every student
- Every lead and application has to land correctly in a live production CRM
- An agent that writes to real applicant records has to be tested, not trusted
- Schools and students needed their own way in, without counsellor tools
What we built
- A profile-aware chat agent with 33 tools behind one registry
- Write tools for leads, applications and email, each with its own guard
- Eval suites for course search, the knowledge base and the re-ranker
- A school counsellor platform, student console and mobile apps, in pilot
What it is for
The network recruits students for universities abroad through partner agencies. Their counsellors do the same work for every student: read the profile, build a shortlist of universities and courses, find the scholarships that fit, and then raise the lead and the application in the network's CRM. The co-pilot puts that whole workflow into one conversation, so a counsellor can ask for a shortlist, compare options, check whether the student already exists, and apply, without leaving the chat.
How it works
The agent is an in-process TypeScript loop on Claude Sonnet that streams its tool calls back to the counsellor as it works. It has 33 tools behind a single registry: profile and student lookups, course and university search through the network's recommendation service, scholarship matching, duplicate detection, and write tools that create leads, apply to programmes and send email against the real CRM. Each write tool has its own guard, and live and mock tools are switched by environment, so the same agent can run safely outside production. Conversations, messages and per-student state are kept in Postgres, so a counsellor can pick up a student where they left off.
Testing an agent that writes to a live CRM
Because the agent acts on real applicants, it is graded before changes ship. The main suite works backwards from real searches: searches done by hand are the ground truth, the agent runs the same request, and an LLM judge grades whether it honoured the counsellor's filters in its tool arguments and whether it named any university that was not in the results. Every run is traced in Langfuse against a shared dataset.
Two further suites grade the knowledge base, on source questions and on paraphrases of them, and the re-ranker, on whether it picks the right boosting rule and how the boosted universities rank before and after. Scorecards are dated and kept in the repository, so a regression shows up as a change between runs.
What they own now
The co-pilot runs in production on AWS, with its code, data model and eval suites in a repository the team controls, plus written playbooks for engineers and coding agents. A second phase adds a school counsellor platform, a student console and iOS and Android apps, where an invited student finds courses by chatting with the same agent under a server-enforced tool allowlist, with guardian consent for under-18s. That phase is in pilot on staging and is not yet live in production.
Under the hood
Stack
- Claude Sonnet
- Next.js
- PostgreSQL + Drizzle
- AWS Lambda + CloudFront
- Better Auth
- Langfuse
- SwiftUI and Jetpack Compose