Case Study
A learning tool where sales reps practice real customer conversations with an AI that stays in character, responds to their actual words, and coaches them after every exchange.
Branching scenarios are effective for teaching decision-making, but they have a ceiling: every response is pre-written. Learners quickly figure out the "right" answer pattern and click through without genuinely thinking about what they'd actually say. The learning becomes recognition ("which one sounds best?") rather than production ("what would I actually say to this customer?").
I wanted to build something where the learner has to type their own response — in their own words — and the customer reacts to what they actually said. No pre-written options, no pattern matching. And then a coach evaluates the response with specific, actionable feedback — not a generic "good job" or a score.
The practice coach uses a large language model (Claude by Anthropic) to power two AI characters in each session: an AI Customer who stays in character throughout the conversation, and an AI Coach who evaluates the learner's response after each exchange.
The design challenge was getting the AI to behave consistently. An AI customer that agrees too quickly doesn't create practice value. One that's impossibly difficult creates frustration. I needed the AI to respond like a real person — skeptical but persuadable, direct but not hostile, and consistent across multiple exchanges.
Customer prompts include a full persona (name, title, company context, personality traits), hidden needs the learner should uncover through good questions, and behavioral rules ("if the rep asks discovery questions, gradually reveal your needs; if they jump to pitching, push back naturally").
Coach prompts receive the learner's message and the customer's reaction, then evaluate against a structured format: one specific strength and one specific improvement suggestion. The coach is instructed to be direct, avoid buzzwords, and reference relevant selling techniques when applicable.
The tool is built as a single-page web application. The front end handles the chat interface, scenario selection, and round tracking. Each learner exchange triggers two API calls — one for the customer response and one for the coaching evaluation.
I designed four practice scenarios at different difficulty levels, each targeting a different skill: discovery/budget objection handling (medium), customer retention/save (hard), upsell qualification (medium), and competitive displacement (hard). Each scenario has a unique customer persona with specific hidden needs that only surface through good questioning.
Sessions are limited to 4 exchanges to keep practice focused and prevent learners from going in circles. The constraint forces reps to be intentional with each response.
Why typed responses instead of multiple choice: Typing forces production. The learner can't pattern-match their way through — they have to articulate their actual approach. This is closer to what happens on a real call.
Why coaching after every exchange, not just at the end: Real-time feedback lets the learner adjust their approach mid-conversation. If their opening was too aggressive, they can course-correct on the next exchange instead of finding out at the end that they lost the deal five minutes ago.
Why fallback responses exist: The tool includes scripted fallback responses in case the API is unavailable. This means the demo always works — even without an internet connection. The fallback responses are generic but realistic enough to show the interaction pattern.
The practice coach demonstrates a fundamentally different approach to sales training: instead of teaching reps what to say, it creates a space where they practice saying it — and get specific feedback on how they said it. Every session is unique because the AI responds to the learner's actual words, not a pre-scripted path.
I'd add session recording so learners and managers can review past practice sessions together. I'd also build a "difficulty ramp" where the AI customer gets progressively harder based on the learner's coaching scores — starting with a cooperative customer and escalating to a hostile one as skills improve.
On the prompt engineering side, I'd add guardrails for edge cases — some learners will try to break the AI by typing nonsense or asking it to break character. The current prompts handle this reasonably well, but a production version would need explicit handling for those scenarios.
Select a scenario, type your responses, and get real-time AI coaching.
Launch Practice Coach →