The product
Sales Lab is a real-time voice training studio. A rep takes a call, gets a scorecard, gets coached on the moments that matter, and earns a certification their team can verify.
01 — Live call
The rep opens Sales Lab, picks the call they are about to make, and hits start. The buyer answers. The buyer pushes back. The buyer interrupts. The rep practices the call before the call.
Sub-500ms turn latency
Verified end-to-end on production. Faster than the median human reply, which is what makes the call feel real instead of like a chatbot.
In-character buyer
A persona, a mood, a goal. The buyer escalates if the rep is sloppy and softens if the rep earns it.
Per-tenant knowledge base
Your pitch, your pricing, your top thirty objections. Indexed and retrieved at every turn.
“Help me understand why this hits your desk this quarter.”
02 — Scorecard
The scorecard returns a score, the best line, the line that cost the call, and a better version written in the rep's voice. Ten dimensions, every one tied to a category in the rubric.
Ten rubric dimensions
Opening. Discovery. Active listening. Objection handling. Value articulation. Control of call. Tone. Pace. Confidence. Next-step close.
Better-version line
The single edit that would have changed the outcome. Written in the rep’s voice. Not a generic suggestion.
Shareable session
A signed URL. The manager opens it without an account. The rep keeps the link in their notes.
Session 0247
Skeptical buyer · Refi scenario · 04:21
87
“You earned the meeting because you stopped pitching at minute two.”
Best line
“Compared to what specifically?”
Better version
“What is the budget you would defend?”
03 — Coach view
A coach opens a session, scrubs to the moment that matters, and drops a comment anchored to the line. The rep gets a notification with the timecode. The team learns from the call instead of forgetting it.
Line-anchored comments
Each comment hangs off a transcript line, not a sticky note at the top. The rep clicks it and lands at the moment.
Coach queue
A daily queue of the sessions a coach should open first. Scored low. Scored unexpectedly high. Flagged by the rubric for a specific failure mode.
Audio replay with regions
The waveform tracks the transcript. A region highlights what the coach is commenting on. The rep hears their own pause.
Coach view · Session 0241
02:14 / 04:00Honestly, we already have a tool for this.
Right, totally. What got you to adopt it?
Cost. And the rest of the stack already used it.
Cool. So I think the differentiator for us is really…
Coach · Maya
You jumped to pitch. Ask one more question first.
I have to jump in 90 seconds.
04 — Certifications
A rep earns a certification by clearing a defined threshold on a defined scenario. The certification is a signed URL the rep shares on LinkedIn, in email, in a cold open. The hiring manager clicks it and sees the rubric.
Verifiable URL
A stranger opens the link. The page shows the scenario, the score, the rubric breakdown, and the date. No login, no tracking pixel.
Threshold per scenario
The admin sets the bar. The rep clears it or does not. The certification is not a participation ribbon.
LinkedIn-ready
An Open Graph card with the rep name and the scenario. The share is one click from the cert page.
Sales Lab · Certification
Discovery, level two.
Issued 2026-05-14 · Verifiable at the URL below.
saleslab.cloud/cert/A7F2-29DK
05 — Real-call ingestion
Connect Gong or Chorus. Sales Lab pulls the recording, finds the objection your rep missed, and rebuilds it as a scenario for the rest of the team. The call you lost becomes the call the team rehearses.
Objection extraction
The scoring model isolates the unhandled objection in a real call and writes a scenario around it.
Scenario from transcript
A real prospect’s pushback becomes a persona. The team practices the next version of the same call.
Pilot integrations
Salesforce and HubSpot for the deal context. Slack for the notification. Resend for the manager digest. Stripe for billing. Nothing else is wired yet.
Real call · 2026-05-14 14:22 · 32 min
Detected · unhandled objection
“We are already paying for this elsewhere. Why would we add a line item?”
Generated · drill scenario
Pushy buyer. Existing vendor. Stacking-cost objection. Three minutes. Threshold 80.
Assigned to · 14 reps
Live
06 — Persona Engine
The same persona, played twelve different ways. Stage, mood, culture, communication style, accent, prior-vendor scars, named competitors, public surface area, emotional reality, scripted-move mind games, multi-touch follow-ups. Every capability ships with bounded rules so the practice stays training, not theatre.
Stage-aware buyer
Same persona behaves differently in Discovery, Demo, Negotiation, Procurement. The scoring rubric reweights per stage so the overall score reflects what mattered at that deal stage.
Backstory that bleeds into the call
A bad Q2, a new boss, a daughter starting at Stanford. The buyer holds the facts and surfaces them only when the rep earns it. Mood shifts mid-call based on what the rep says, with substring triggers and a 0.5-per-minute decay back to baseline.
Synthetic persona from a public profile
The rep pastes the prospect’s LinkedIn About + Experience text. Sales Lab swaps the name and company server-side before persistence, builds a calibrated persona, and auto-creates a starter scenario. Paste text only — no URL fetch, no scraper. Raw text is hashed, not stored. Synthetic personas auto-purge after 60 days.
Prior-vendor scar tissue
The buyer carries scars from named past vendors with the specific allergy they walked away with. Rep mentioning the scarred vendor in a positive frame drops mood; acknowledging the scar and differentiating raises it. A scar_navigation dimension lands on the scorecard.
Named-competitor pressure
The buyer brings up at least one named competitor mid-call, in context. Rep practises live competitive positioning instead of rehearsed slides. Ships with a seed library of twelve common B2B SaaS competitors with public differentiation; admins extend per-org.
Buyer reads the rep’s LinkedIn
The rep pastes their own About + recent posts. Same paste-only rules. During calls, the buyer references the rep’s public surface area once per call after turn four, around 20% of the time. A self_awareness dimension grades how the rep handles being called on what they’ve written.
Cross-cultural buyer modes
Five reviewed mode fragments shipped with citations: US direct, Japanese formal, German direct-technical, Brazilian relationship-first, Nordic low-affect. Framed as starting points with explicit “not stereotypes” guidance. A cultural_calibration dimension grades adaptation.
Neurodivergent communication style
Four 0-10 knobs (directness, small-talk tolerance, affect level, target WPM) translate to concrete buyer behaviour — cuts off rapport turns, refuses without softening, drops filler. Two seed personas frame the styles as preferences not deficits. No separate scoring axis by design.
Foreign accent voices
Six accent ids ship: Indian, German, Japanese, French, Brazilian, Nigerian. Each maps to an ElevenLabs voice id sourced from env so licensing belongs to the operator. An 8% WPM reduction forces the rep to listen rather than skim.
Buyer breakdown (org-admin opt-in, default off)
Buyer experiences emotional difficulty during the call. Off by default. Org admin opts in by typing a verbatim attestation phrase. Three reviewed bounded-vocabulary scenarios; rep selects one explicitly. The scorecard replaces the standard rubric with recognition, pacing, appropriate response, recovery. No “did you close” framing.
Former rep at the same company
A buyer who used to carry the bag at the rep’s own company. Admin uploads the org playbook once; the buyer prompt injects it and calls out the rep’s scripted moves by name. A meta_awareness dimension grades whether the rep abandoned the script.
Ghost revival flow
After a “let me think about it” call, a revival sequence starts. Each follow-up touch — email, voicemail, LinkedIn — is graded on hook, value, ask, and patience. Warm ghosts respond at touch two if earned; cold ghosts make the rep work for three. A queue UI shows active sequences with days-since-last-touch indicators.
Today
Five minutes. One scenario. One honest scorecard. The rest of your stack reports on what already happened.