AI Product · Conversational AI · Custom Build

Sous-Chef

The AI chatbot that converts visitors into briefed leads, live on theappchefs.com and doubling as a working demo of what the studio builds.

Role

AI Product Design & Engineering

Scope

Conversational AI · Lead Capture

Built with

Claude Haiku 4.5 · Claude API · Vercel AI SDK

Year

2026

Sous-Chef, preview

The challenge

For a studio claiming “AI-Native,” a generic contact form isn't a credential; it's a liability. Visitors needed proof, not promises: a tangible AI experience that demonstrated the studio's capability and moved them through the funnel automatically.

The chatbot also had to work as a portfolio piece in its own right, not just a service tool: every visitor interacting with Sous-Chef is experiencing a live demo of what The App Chefs builds.

My approach

What I did

01

Built Sous-Chef from scratch as a Claude Haiku 4.5–powered conversational agent, embedded as a floating widget on theappchefs.com.

02

Designed the conversation to walk visitors through services with interactive inline cards (a services grid, plan tiers, and an embedded Calendly modal) instead of static text.

03

Used Claude's tool calling to capture qualified leads automatically: once real intent is in context, it emails the lead via Resend; no form required.

04

Gave it a chef-themed personality (a “Whisking… Sautéing…” status indicator) and sub-second streaming so it feels alive, not scripted.

05

Built a custom security layer: per-IP rate limiting, origin allowlist, input validation, plus prompt caching that cuts repeat-input cost ~90%, keeping it fast and cheap to run at scale.

User flow

How someone actually uses it

User message

A visitor types in the floating widget, sent to /api/chat as JSON over HTTPS.

Security gate

Per-IP rate limit (10/min, 60/hr), origin allowlist, and hard input caps block abuse before it ever reaches the model.

System prompt + knowledge base

Sous-Chef's persona plus The App Chefs' services, pricing, and FAQs, marked cache_control: ephemeral, so repeat input costs ~90% less.

Claude Haiku 4.5 decides

Just chat

Streams a normal conversational reply, in character.

Call capture_lead

Once name, email, and a brief are in context, it calls the tool with a structured payload (never invented) and Resend emails the lead instantly.

Tool Use

Emit a UI directive

Emits a component token mid-stream; the widget swaps it for an interactive services, plans, or Calendly card.

Inline UI

Every path streams back token-by-token over Server-Sent Events, with a chef-themed “Whisking… Sautéing…” indicator while it thinks.

Impact

Real numbers, real users.

<0s

Time to first streamed token

0

Inline rich components (services, plans, Calendly, lead badge)

$0.000

Avg. cost per full lead-capture conversation