AI · Conversation Design

A chatbot you can trust, and talk to right now

Type

Self-initiated
conversation-design project

My role

Solo: conversation & AI design, content, front-end build

Build

Vanilla JS, keyless and static
architected to upgrade to a Claude LLM

Live

Running on this very site, tap the chat bubble in the corner

Ask my portfolio with Potter 👔

The opening move

Hi! 👋 Who would you like to speak to?

🦖 My 5-year-old nephew 👔 Potter, my digital avatar

A real answer

how does he handle conflict?
My go-to is the “Color Wars”: three senior stakeholders each wanted their colour to win a shared dashboard. I ran WCAG contrast and colour-blind tests so the data decided, not taste, and turned a standoff into agreement.
The opening move, then a real answer: visitors pick a voice, then ask what they actually came to find out. Two registers, one goal: earn enough trust to keep asking.

The problem I keep solving

Support chatbots rarely fail on the technology. They fail on trust. People don't believe the bot understands them, so they bail to a human or just leave. Designing my way out of that, earning user confidence through the conversation itself, is the work I'm known for: clear intent handling, honest answers, and the right voice for the moment. I've done it for enterprise support assistants. Here I turned the same craft on myself.

The brief

Recruiters skim. So I built a bot that answers their real questions in my voice, and proves the skill by being the artifact. No NDA material, no client data, this one is entirely about me, which is exactly why it's the cleanest demonstration of how I think about conversation.

Two voices, one trust strategy

Confidence comes from the right register, so the bot opens by asking who you'd like to talk to:

  • Potter: my professional voice. Crisp, senior, straight answers. Built for a hiring manager who wants competence, fast.
  • Boy: my five-year-old nephew, who calls me Abah. He disarms, humanises, and makes the same facts delightful. Built for the moment someone wants to smile.

You can switch between them at any point and the conversation carries on, because the goal isn't novelty, it's meeting each visitor in the register that makes them comfortable enough to keep asking.

The conversation flow

The whole experience is one designed flow, from the launcher to a graceful dead-end recovery. The same map lives in FigJam; here it is in brief:

Launcher bubblePresent on every page; opens the panel without covering the content behind it.
↓
"Who would you like to speak to?"The first decision, register before content.
🦖 The nephew (Boy)Warm, playful, calls me Abah.
👔 Digital avatar (Potter)Professional, concise, senior.
↓
Greeting + a cultural ice-breaker"Auntie or Uncle?" is a Malaysian way of greeting elders. Boy adds a "What do you mean?" branch that explains the custom, then re-asks.
↓
Open conversation: intent routingWhole-word matching over a grounded knowledge base across five clusters: about & experience · leadership (team, style, mentoring, conflict, process) · case studies · logistics (location, remote, salary, visa, availability) · résumé & contact.
↓
Always availableSwitch voice (keeps the thread) · Restart (confirm) · Minimize (keep) · Close (clear). No dead ends: an unmatched question returns suggested next steps, never a shrug.

Designing for confidence, in the details

Trust is built in the small moments. A few of the decisions I'm proudest of:

Honesty on the hard question

why did he leave his last role?
Ahmadsyah's engagement on the Dell account at UST Global ran September 2022 to October 2025. Since then he's been freelancing for public-sector clients under NDA. He's available now for a full-time role and happy to walk you through any of it directly.

The easy design move is to deflect an awkward question into a strength. I routed it to a straight, human answer instead, because dodging is exactly what erodes confidence.

Warmth, with a teachable moment

Are you my Auntie or my Uncle? 😄
what do you mean?
Oh! In Malaysia, kids call ALL the grown-ups Auntie or Uncle, even if they're not really our auntie or uncle! It's just a polite way to say hi to big people. 😊 So... are you my Auntie or my Uncle?

A confused user is a lost user. The "What do you mean?" branch turns a potential stumble into a small, charming explanation, then gets back on track.

Depth when it's tested

how do you handle conflict between stakeholders?
My go-to example is what I called the Color Wars: three senior stakeholders each wanted their own colour to dominate a shared dashboard. Rather than pick on taste and make two enemies, I ran WCAG AAA contrast tests and colourblind simulations that ruled options in or out objectively. Reframing it from "which colour do you prefer" to "which colours work for everyone" turned a standoff into unanimous agreement.

A hiring manager screening for a lead asks leadership questions. Each one routes to a real, specific story, so the bot can actually answer "can he lead?", not just "what did he ship?"

Built for real, ready for an LLM

Today the bot is fully scripted and keyless: instant, free to run, nothing to break, and private (no data leaves the page). But the conversation layer and the answer engine are deliberately separate. The widget calls one respondTo() function; swap that for a fetch('/api/chat') to a small serverless endpoint and the same experience runs on a real Claude (Sonnet) model, grounded in the same knowledge base, with the API key safe on the server. The conversation design doesn't change, only the brain behind it.

2 voicesDistinct personas a visitor can switch between mid-chat
35 intentsMapped, grounded, and ranked by match specificity
LLM-readyOne function swap upgrades it to a Claude agent

It's also built to WCAG habits I don't drop for side projects: a labelled region, a live message log, 40px touch targets, full keyboard operation, and reduced-motion support.

Try it, it's right here

This is the rare case study where the product is on the page with you. Tap the chat bubble in the bottom corner and ask it something real, "how does he lead?", "why did he leave his last role?", "can I see your résumé?", or meet my nephew and ask "who's Potter?". The thing you're evaluating me on is the thing you can use.

Open the chatbot

Why this is the hire

If you're looking for a conversation, LLM, or AI designer who can make an assistant people actually trust, you don't need to take my word for it, you just used my work. I designed the flow, wrote every line in two voices, handled the edge cases, and built it to upgrade into a real model. That is the interview.

Next case study

Product Comparison Redesign