What does an AI customer support product get right that a generic chatbot does not?
Portside Assist answers phone calls from truck drivers and dispatchers at a shipping port, handling berth assignments, container lookups, and gate schedules. Ben Okafor leads support operations there and has run both a generic chatbot and Portside Assist on the same call volume.
- Let the caller correct one detail without restarting the whole request.Why: this single decision explains nearly the entire time and error gap between the two products.
- Optimize against the hidden error, not the visible one.Why: a caller repeating themselves is annoying but cheap. A wrongly logged berth number is expensive and often invisible until a truck is already there.
- Confirm high-stakes details out loud before committing them.Why: a berth number or container ID is exactly the kind of detail where a silent mistake is costly.
- Leave low-stakes chit-chat, like a greeting or sign-off, unconfirmed.Why: nothing bad happens if that gets slightly misheard.
- Watch for rising call-abandonment if confirmations get too frequent.Why: that's the one signal that would flip this pick back toward fewer confirmations.
- Re-measure the cost gap as call volume grows.Why: the gap between the two designs gets wider, not narrower, under heavier load.
How to answer this, stage by stage
Six moves. The interviewer wants to see you commit to a position fast, then defend it with a real cost, not a feature checklist.
Let's learn
Here is what happens the moment a phone support tool mishears one word: either it asks you to repeat just that word, or it throws away everything you've said so far and asks you to start over.
Portside Assist answers calls from truck drivers and dispatchers at a busy shipping port, handling berth assignments, container lookups, and gate schedule questions over the phone.
Before Portside Assist, Ben's team ran a generic chatbot for phone support. It handled straightforward calls just fine: clear speech, common requests, no background noise.
At its worst: a full restart doesn't just cost minutes, it costs a second guess at every detail the caller already gave correctly the first time, and each guess is one more chance to get something wrong.
What I would leave alone: a misheard greeting, "good morning" instead of "good afternoon," costs nothing and needs no confirmation step at all. Confirming that kind of detail would just slow every single call down for zero real benefit.
The lesson: the real skill in an AI support product isn't understanding speech perfectly. It's deciding what to do the moment it doesn't, and whether that moment costs the caller ten seconds or ten minutes.
Now here is the same thing as a story
The short version above is what you'd say defending this position live. Read this one for how the two designs actually compared on a real call.
Before Portside Assist, a call from a dispatcher named Marcus went like this: he stated his container ID, the berth he needed, and the pickup time, all in one breath, the way anyone in a hurry does. The chatbot caught the container ID and the pickup time, but misheard one digit in the berth number.
It didn't ask him to just repeat the berth number. It said "let's start over," and asked for the container ID again, then the berth, then the pickup time, this time in a different order, which confused him further.
Marcus hung up and called back a human dispatcher instead, the same shift he'd been assured the new AI line would handle. Somewhere in the call logs, that shows up as an "abandoned" AI call, no note about why.
Portside Assist handles the identical call differently. It catches the container ID and pickup time cleanly, and when the berth number comes through unclear, it asks just one question: "Did you say berth fourteen or berth forty?" Marcus answers in two seconds, and the call moves on with everything else intact.
Someone building the generic chatbot decided, early on, that any unclear detail should trigger a full restart, since it was simpler to build one clean reset path than to handle repair for every possible slot combination. That was a reasonable shortcut for a demo with clean audio and short requests.
It stopped being reasonable the moment real drivers, calling from a noisy truck cab with a rushed sentence covering three details at once, became the actual users. I would take that shortcut back and build the repair-in-place path instead, even though it takes more engineering work up front.
I picked the full-restart design because it was the fastest thing to ship, and every early test call had perfect audio and one detail at a time. It took hearing Marcus hang up and call a human instead, with no complaint logged anywhere in our system, to see that "simpler to build" and "cheaper to run" aren't the same thing.
PICK, in one screenFour letters, and the second one, cost asymmetry, is the one that actually decides the pick.
The recap, one line per letter: position is repair-in-place over full restart, impact is ten seconds versus twenty minutes, cost asymmetry is optimizing against the hidden, expensive error, and kill criteria is watching for rising call abandonment.
And if you want to be sure it really works, try it somewhere elseSame four letters, a community helpline instead of a shipping port. This time the caller has even less patience for a restart.
A regional nonprofit runs an AI-assisted phone line helping residents check eligibility and enroll in a local rent-assistance program. Callers are often stressed, sometimes on a shared or borrowed phone, and give their household size, income, and address in one anxious breath.
Mapped onto PICK: position is the same, repair one detail without a restart, this time applied to an address or a household size instead of a berth number. Impact: a caller asked to repeat one number loses a few seconds; a caller forced to restart the whole intake, after already working up the nerve to call, may simply hang up and never call back at all. Cost asymmetry: the hidden and expensive error here isn't a misrouted truck, it's a real family that needed help and didn't get it, because the design made "correcting a mistake" feel like being interrogated all over again. Kill criteria: if repair-in-place confirmations made the call feel slower without reducing actual restarts, that would flip the pick back toward a simpler, single confirmation at the very end instead of mid-call.
Swap the trigger and it still runs.
Speed: an interviewer caps you at sixty seconds. Say "repair one detail, don't restart the whole request, because the hidden cost of a full restart is far worse than a caller repeating one word" and stop.
Cost: no engineering budget to build slot-level repair this quarter. Say so, and start with the cheapest version: a single "did I get that right?" confirmation at the very end of the call, catching most silent errors without full slot-level repair.
The model gets better, for real: even if the underlying speech model's overall accuracy improves, calls with background noise or fast speech will still mishear something occasionally. A better model narrows how often repair is needed. It never removes the need for a repair path entirely.
Where people run it wrong.
They chase overall accuracy percentage as the whole answer, missing that what happens after a mistake matters more than how rarely it happens.
They assume more confirmation steps are always safer, without checking whether those steps are actually causing callers to hang up.
They compare two support tools on tone and personality, when the real gap is almost always a structural one: restart versus repair.
How to use it live. When asked to compare two AI support products, ask yourself one question first: when either one misunderstands something, what does the caller have to do next? That single question usually reveals the real difference faster than comparing their scripts.
Flashcards (tap any card to flip it)
Check yourself Score: 0 / 0
Show hint
Show answer
Show hint
Show answer
Show hint
Show answer
Show hint
Show answer
Show hint
Show answer
Show hint
Show answer
"Isn't this just a better speech-recognition model, not a design decision?" Response: no, even a perfect speech model still occasionally mishears in a noisy environment. The design decision is what happens next, and that's independent of how good the underlying model is.
From answering questions to owning outcomes.
A live workshop where you ship a working AI agent, defend a launch decision, and walk away with a portfolio recruiters can't wave off, not just more questions to study.
- A live AI agent you actually shipped
- A launch decision you can defend under pressure
- An interview-ready portfolio, not more flashcards
More on AI product case study teardowns
- #1 Tear down a coding assistant: what is the core loop and where does it break?
- #2 Analyze how a major AI search product handles citation and grounding.
- #3 What product decisions explain why some AI note-takers retain users and others do not?
- #4 Tear down the onboarding of an AI product you use and identify its weakest moment.
- #5 Analyze the pricing model of an AI product and what it reveals about its cost structure.
- #7 Examine an AI feature that failed publicly and identify the product decision behind it.