Customer Support Agent
A support agent grounded in the client's help centre and past tickets. It resolves routine requests end to end through scoped API permissions instead of only explaining the fix, and escalates the rest with the full context already attached.

01 — The Problem
The Problem
A support team answered the same routine requests by hand, re-reading the help centre and past tickets for every one. Anything that needed an actual change, such as a record updated or a status corrected, meant leaving the ticket and doing it in another system, and escalations reached the next tier as a raw transcript with no context attached.
02 — The Solution
The Solution
Built a support agent with retrieval over the real help centre and ticket history, so every answer is grounded in the client's own material and carries its source. Routine requests are resolved end to end through a scoped, permissioned tool layer that performs the change instead of describing it, with anything outside the written boundary stopped at an escalation gate that hands the human the reasoning, the sources, and the record rather than a transcript.
03 — Tech Stack
Tech Stack
- Next.js
- TypeScript
- RAG
- Qdrant
- OpenAI
- Tool Calling
04 — Results & Impact
Results & Impact
Took the repeatable part of the support queue off the team: routine tickets are resolved in place, and the ones that still need a person arrive with context already assembled.
My role Designed the retrieval pipeline, the permissioned tool layer, and the escalation boundary. Private client work.