Note: Please use on Google Chrome for best experience

Inspiration

I'm in sales, and the hardest part of getting started was the selling itself. I struggled with approaching people and making contact, handling objections, and understanding why needs-based selling matters. Above all, I wanted to come across as a consultant who brings real value, not a pushy salesperson. I had the knowledge, but I had never role-played much. Practising on real people cost me awkward conversations and probably a few sales. I wanted a place to make those mistakes before they counted.

What it does

Dojo is a live practice space for sales agents and the people who lead them. You type a general prompt or a niche situation, and Dojo builds a World around it: a prospect, a setting and an objective, from booking an appointment after a cold door knock to closing a policy.

You can pick a general field and practise from there, or tailor the World to the kind of client you're about to meet. Then you talk to the people in it, out loud:

Five people to practise with, each with their own personality, accent and an animated face that reacts as you talk.

A live director that scores every line you say. The person softens when you do well and hardens when you ramble or pressure them.

A coach that scores you against a rubric made for your field, quotes your actual words, flags overclaims and writes the line you should have said. Your next conversation starts with that person remembering your weakest habit.

How I built it

I built Dojo solo, on Nebius Token Factory with NVIDIA Nemotron. It has five jobs, and each runs on the model that suits it:

Planner (Nemotron 3 Ultra) designs the World from one line.

Casters (Nemotron 3 Nano) create the five people in parallel.

Persona (Nemotron 3 Nano) plays the person, streamed sentence by sentence.

Director (Nemotron 3 Nano) scores each line live and sets the person's stance.

Coach (Nemotron 3 Ultra) writes the final report.

The coach report also shows which model did what, with live call counts, tokens and latency. The backend is FastAPI and SQLite, and the front end is plain JavaScript with animated SVG faces. Your voice goes in through the browser's speech recognition. Tavily search grounds every new World in live web research and shows the sources on the World page. It also lets you practise on a real prospect: type a company, and the character knows real facts about it, with links. The hosted demo speaks with neural voices from Azure Speech, with a monthly cap and a fallback to browser voices. Each visitor gets their own history, progress and coach memory, so a judge's practice stays private.

The hosted demo uses Azure neural voices while the free trial lasts. After that it falls back to the browser's built-in voices; everything else works the same.

Challenges I ran into

Messy model output. Faces, accents, rubrics and IDs all have to be valid to render, so everything a model returns is validated and repaired. A messy answer never breaks a World.

Reasoning models in a live conversation. Their "thinking" must never be spoken, so I strip it from the stream. I also turned thinking off for the live roles and kept it on only for the coach.

Keeping a public demo cheap and safe. Built Worlds are cached, and there are per-visitor limits and daily caps on model calls.

A voice that doesn't sound robotic, for free. Browser voices were too flat. I tried running a neural voice in the browser, but it was too slow, so I settled on Azure's free tier.

Accomplishments that I'm proud of

One typed sentence becomes a complete, playable training World, grounded in live web research with the sources shown. The coach report draws a timeline of how the character felt about each of your lines, so you can see exactly where you lost them. The conversation changes in response to how you actually speak, and the coach quotes your own words back to you. It also keeps the ethics I care about as an agent: the coach flags pressure tactics and misleading claims instead of rewarding them. Dojo is open source under the MIT licence and comes with twenty ready-made Worlds: twelve sales jobs and eight hard conversations, such as asking for a raise, a job interview and a landlord.

What I learned

Splitting one big job into specialised roles (plan, cast, act, direct, coach) gave better results, and better control over cost and latency, than one giant prompt. Matching each role to the right model size, and choosing when to let a model think, mattered as much as the prompts.

What's next for Dojo

Team mode: a sales leader builds a team, invites their agents, assigns Worlds and tracks each person's progress. After that come tailored Worlds built from a prospect profile (never real client details), and more fields beyond sales: any hard conversation people dread.

Built With

Share this project:

Updates

Submission history