MCP Apps: Give the Model Data, Give the User a UI — Dustin Mihalik, Indeed
Adding a nice interface made the product worse. With plain text results the model would run ten or fifteen job searches, filter them, and assemble a table. Once a rendering widget was attached, it called the tool once, saw results already on screen, and stopped exploring. Dustin Mihalik is a technical fellow at Indeed working on AI platform and guardrails, and this is a lessons from the trenches account of building MCP apps for Claude, ChatGPT, and Indeed's own job seeker agent. He starts with why a UI is worth having. A text response carries no branding, and getting a host chat app to link out is genuinely hard, since it would rather you stayed; hours of eval work went into that alone. A widget gives you an apply button and a detail view without leaving the conversation. Then three rules. Anything shown to the user must also reach the model as data, or the widget is a black box and every follow up question fails. The tool description has to say a UI exists, otherwise the model narrates the same results underneath it. And the rule that supersedes the others, separate data processing from UI rendering. At Indeed that meant a plain search tool the model can call freely, plus a render widget taking a list of ids, so it can search a hundred jobs, filter to five, and show only those. Interactions need the same treatment, pushed back through update model context, or the model cannot tell which job was opened. He closes on data first design, small composable tools, and letting the render tool carry the model's own reasoning about why a result fits. Speaker info: - https://www.linkedin.com/in/dmihalik/ - https://dmihalik.com Timestamps: 0:00 - MCP apps at Indeed, and why UI matters 1:22 - Text based results, and the linking problem 3:13 - Rule one, show the model everything you show the user 5:06 - Rule two, tell the description a UI exists 6:16 - Interactions the model cannot see 8:19 - Rule three, split data processing from rendering 10:50 - A search tool and a separate render tool 12:39 - Letting the model add its own reasoning 13:34 - Takeaways, data first and small composable tools
More like this

Hyper3D Review (2026) - Is Rodin Gen 2.5 Good Enough for Real 3D Work?

The Universal Remote Control for AI — Alex Hancock, Block

How long can your skills be before your agent forgets what you told it? — Laurie Voss, Arize AI

Your agents lack context: Here's how to fix "You're absolutely right!" — Brandon Waselnuk, Unblocked
Join the discussion
Sign in to join the discussion
Sign in