# Multi-channel AI sales agent

Haris Muhibić is the primary architect of a production AI agent that replies to car-dealership leads over SMS, email, web chat and voice, using live inventory and CRM data.

- Role: Primary architect (from April 2026)
- When: 2026
- Stack: AWS Bedrock, Claude, Lambda, DynamoDB Streams, API Gateway WebSocket, ECS Fargate, CDK, LiveKit

## The problem

Dealerships lose leads that wait hours for an answer. They need replies within minutes, at any hour, and those replies have to be correct about real cars, real prices and real availability.

## My role

I took over a partner-built scaffold in April 2026 and have been its primary architect since. I write the design specs, and I built the message processor, the recommendation service, inbound email, the voice proof of concept and the evaluation harness.

## How it works

- **Orchestration:** a tool-using orchestrator on Bedrock. Inventory, CRM, recommendation and lead-capture tools each run as a separate function.
- **Delivery:** messages are stored first, then processed from a stream. A durable event outbox and dead-letter queues mean no reply is lost when a downstream system fails.
- **Routing:** the router and extractors return probabilities instead of parsed JSON. Below a confidence threshold, the system falls back to a full model call. If a dependency is down, the reply comes slower; it doesn't stop.

## What's unusual

- **Speculative tool calls.** When the router says an inventory lookup is likely, the search starts before the model asks for it, with a hard time cap. First-turn CRM data is prefetched the same way.
- **Reply first, extract after.** The reply goes out, then lead details are extracted in a cascade: cheap classifiers first, and the expensive pass only when a real signal shows up.
- **Two-tier voice.** A real-time voice model handles the conversation and passes hard questions, such as finance maths or vehicle comparisons, to a stronger model. It then speaks the answer in its own words.
- **Evaluating the whole loop.** Candidate models run as the complete agent, with production tools, a golden set and replayed conversations. An independent judge scores them, and each run reports p50 and p95 latency and cost per reply.

---
Haris Muhibić · chern0.dev · haris@chern0.dev · Book a call: https://calendar.app.google/qiN9zJrS5gSqQPky8
