[
  {
    "startMs": 1309,
    "text": "[music]"
  },
  {
    "startMs": 13520,
    "text": ">> Uh hey everyone, I'm Dustin Macholic. Uh"
  },
  {
    "startMs": 15840,
    "text": "I work at Indeed."
  },
  {
    "startMs": 18240,
    "text": "Uh we're the number one job site in the"
  },
  {
    "startMs": 19760,
    "text": "world. And I have to apologize for my"
  },
  {
    "startMs": 22160,
    "text": "voice. I'm recovering from a cold that I"
  },
  {
    "startMs": 24280,
    "text": "had last week."
  },
  {
    "startMs": 25920,
    "text": "Um"
  },
  {
    "startMs": 26880,
    "text": "Yeah, so at Indeed, we build"
  },
  {
    "startMs": 30040,
    "text": "uh"
  },
  {
    "startMs": 30760,
    "text": "job search. And uh I also work on a team"
  },
  {
    "startMs": 34840,
    "text": "that does AI platform. And I do like AI"
  },
  {
    "startMs": 37800,
    "text": "guardrails and and gateways and"
  },
  {
    "startMs": 40560,
    "text": "compliance stuff. Uh occasionally uh my"
  },
  {
    "startMs": 43120,
    "text": "team gets cool projects to work on"
  },
  {
    "startMs": 45680,
    "text": "because we have relationships with the"
  },
  {
    "startMs": 46920,
    "text": "vendors. Uh MCP apps is one of those."
  },
  {
    "startMs": 49880,
    "text": "And um"
  },
  {
    "startMs": 51120,
    "text": "MCP connectors. So, this is a little bit"
  },
  {
    "startMs": 53400,
    "text": "of like practical MCP apps. They gave a"
  },
  {
    "startMs": 56200,
    "text": "great introduction uh to MCP apps. This"
  },
  {
    "startMs": 59480,
    "text": "is a little bit of a lessons from the"
  },
  {
    "startMs": 61040,
    "text": "trenches, uh which is a little bit of"
  },
  {
    "startMs": 63240,
    "text": "like what did we learn in building MCP"
  },
  {
    "startMs": 66400,
    "text": "and MCP apps for Claude chat chat GPT"
  },
  {
    "startMs": 69480,
    "text": "and our own internal"
  },
  {
    "startMs": 71760,
    "text": "uh"
  },
  {
    "startMs": 72680,
    "text": "uh career scout, which is our uh agent"
  },
  {
    "startMs": 75040,
    "text": "that we have for job seekers."
  },
  {
    "startMs": 78200,
    "text": "So, this is the this is the chat-based"
  },
  {
    "startMs": 80880,
    "text": "interface. So, a lot of my examples are"
  },
  {
    "startMs": 82680,
    "text": "going to be job search. This will I have"
  },
  {
    "startMs": 84720,
    "text": "a lot of screenshots of job searches."
  },
  {
    "startMs": 87360,
    "text": "Um So, this is this is a job search,"
  },
  {
    "startMs": 90320,
    "text": "which is basically uh you know, I'm"
  },
  {
    "startMs": 92480,
    "text": "looking for barista in Austin. And this"
  },
  {
    "startMs": 94880,
    "text": "is a text-based response. And this works"
  },
  {
    "startMs": 97680,
    "text": "pretty well. Uh as we kind of discussed,"
  },
  {
    "startMs": 100080,
    "text": "like there's no branding here. There's"
  },
  {
    "startMs": 101960,
    "text": "no Indeed branding. Uh you know, Claude"
  },
  {
    "startMs": 105160,
    "text": "decided to say these are some jobs in"
  },
  {
    "startMs": 107280,
    "text": "Austin. These are some jobs in some"
  },
  {
    "startMs": 108720,
    "text": "suburbs of Austin. That's cool. That's"
  },
  {
    "startMs": 110920,
    "text": "probably good for the user. There may be"
  },
  {
    "startMs": 112720,
    "text": "some limitations uh"
  },
  {
    "startMs": 115320,
    "text": "of like what we can do for branding or"
  },
  {
    "startMs": 118160,
    "text": "how we can uh"
  },
  {
    "startMs": 119960,
    "text": "you know, how we can control things. And"
  },
  {
    "startMs": 122480,
    "text": "you'd be actually be surprised uh unless"
  },
  {
    "startMs": 124800,
    "text": "you've tried to do this yourself that um"
  },
  {
    "startMs": 127560,
    "text": "it's really hard to get Claude or"
  },
  {
    "startMs": 129160,
    "text": "ChatGPT to link to things cuz they don't"
  },
  {
    "startMs": 132080,
    "text": "want you to leave their environment. It"
  },
  {
    "startMs": 134240,
    "text": "makes complete sense, but uh if you get"
  },
  {
    "startMs": 137520,
    "text": "back, here's five jobs that are"
  },
  {
    "startMs": 139480,
    "text": "somewhere on the internet uh without any"
  },
  {
    "startMs": 142080,
    "text": "links, that's a terrible user"
  },
  {
    "startMs": 144120,
    "text": "experience. Uh so it's it took us a"
  },
  {
    "startMs": 147280,
    "text": "ridiculous number of hours and evals to"
  },
  {
    "startMs": 149920,
    "text": "make sure that like Claude would"
  },
  {
    "startMs": 151680,
    "text": "consistently link to things."
  },
  {
    "startMs": 154160,
    "text": "So with MCP apps and with uh apps SDK,"
  },
  {
    "startMs": 157600,
    "text": "uh we could kind of control that. Uh we"
  },
  {
    "startMs": 160360,
    "text": "can decide"
  },
  {
    "startMs": 162080,
    "text": "uh you know, that we've got an apply"
  },
  {
    "startMs": 163360,
    "text": "button. We can decide what stuff is"
  },
  {
    "startMs": 166280,
    "text": "important that we want to highlight at"
  },
  {
    "startMs": 167720,
    "text": "the top. We can provide a link to view"
  },
  {
    "startMs": 170680,
    "text": "details"
  },
  {
    "startMs": 172240,
    "text": "um so that when you click it, you get uh"
  },
  {
    "startMs": 175360,
    "text": "a a pop-up, a a modal that has all the"
  },
  {
    "startMs": 178160,
    "text": "job details so you don't have to leave"
  },
  {
    "startMs": 180560,
    "text": "the environment. So it's it's a win-win"
  },
  {
    "startMs": 183800,
    "text": "uh for for both for both uh for both"
  },
  {
    "startMs": 186800,
    "text": "companies."
  },
  {
    "startMs": 189320,
    "text": "So uh MCP apps is really good, but if"
  },
  {
    "startMs": 193120,
    "text": "you're thinking about hey, I want to"
  },
  {
    "startMs": 195200,
    "text": "build an MCP app or I want to take my"
  },
  {
    "startMs": 196800,
    "text": "website, I want to put it in ChatGPT or"
  },
  {
    "startMs": 198959,
    "text": "Claude, uh it's not quite just as easy"
  },
  {
    "startMs": 202360,
    "text": "as like dragging and dropping into a"
  },
  {
    "startMs": 204640,
    "text": "chat interface. Uh you really want to"
  },
  {
    "startMs": 206760,
    "text": "think about how you are representing the"
  },
  {
    "startMs": 209400,
    "text": "data, how you're making it available to"
  },
  {
    "startMs": 211400,
    "text": "the user."
  },
  {
    "startMs": 212600,
    "text": "So if you do a very naive thing,"
  },
  {
    "startMs": 215560,
    "text": "uh which is you still call your existing"
  },
  {
    "startMs": 217560,
    "text": "APIs uh for loading data, um then it"
  },
  {
    "startMs": 222400,
    "text": "basically becomes a black box to the"
  },
  {
    "startMs": 224320,
    "text": "model, right? So you say, \"Hey, I want"
  },
  {
    "startMs": 226959,
    "text": "to do something.\" The model says, \"Cool,"
  },
  {
    "startMs": 228600,
    "text": "I'll call a tool.\""
  },
  {
    "startMs": 230120,
    "text": "The tool says, \"Okay, I'm going to show"
  },
  {
    "startMs": 232960,
    "text": "some stuff, but the model has no idea"
  },
  {
    "startMs": 236080,
    "text": "what what you're displaying.\" So,"
  },
  {
    "startMs": 238640,
    "text": "there's all these like follow-up"
  },
  {
    "startMs": 239880,
    "text": "questions, like tell me about the first"
  },
  {
    "startMs": 241840,
    "text": "result, or please rank this list of"
  },
  {
    "startMs": 243920,
    "text": "companies. The model has no idea what"
  },
  {
    "startMs": 246160,
    "text": "data is being displayed."
  },
  {
    "startMs": 247959,
    "text": "So, the very first rule"
  },
  {
    "startMs": 250400,
    "text": "uh for me"
  },
  {
    "startMs": 251880,
    "text": "uh building MCP apps, anything that you"
  },
  {
    "startMs": 253920,
    "text": "show to the user also needs to be"
  },
  {
    "startMs": 256079,
    "text": "provided as data to the model. I think"
  },
  {
    "startMs": 259400,
    "text": "this makes sense, but uh I've definitely"
  },
  {
    "startMs": 262160,
    "text": "seen some MCP apps where they just, you"
  },
  {
    "startMs": 264480,
    "text": "know, use it to inject some HTML on the"
  },
  {
    "startMs": 266880,
    "text": "page and then call some APIs,"
  },
  {
    "startMs": 269320,
    "text": "uh and that's that just makes a big"
  },
  {
    "startMs": 271400,
    "text": "black box for the model. So, this is"
  },
  {
    "startMs": 273640,
    "text": "really easy to do"
  },
  {
    "startMs": 275360,
    "text": "uh using MCP spec and the MCP app spec."
  },
  {
    "startMs": 278400,
    "text": "Uh this structured content, this is what"
  },
  {
    "startMs": 280480,
    "text": "you would already be returning if you"
  },
  {
    "startMs": 281960,
    "text": "were doing just text-based MCP. Um and"
  },
  {
    "startMs": 285040,
    "text": "then this resource URI, that's points to"
  },
  {
    "startMs": 287840,
    "text": "where the HTML is. You need to return"
  },
  {
    "startMs": 290040,
    "text": "both of these, and you need to keep them"
  },
  {
    "startMs": 291560,
    "text": "in sync, right? If you add something new"
  },
  {
    "startMs": 293320,
    "text": "to the API, you make sure you add"
  },
  {
    "startMs": 295160,
    "text": "something add that same data"
  },
  {
    "startMs": 297919,
    "text": "uh back."
  },
  {
    "startMs": 300440,
    "text": "So, kind of the next step um that uh"
  },
  {
    "startMs": 305320,
    "text": "that once you do that,"
  },
  {
    "startMs": 307600,
    "text": "uh you'll find is that now you've"
  },
  {
    "startMs": 310480,
    "text": "provided data to the model,"
  },
  {
    "startMs": 312720,
    "text": "and you provided this black box that it"
  },
  {
    "startMs": 314520,
    "text": "has no idea about, it's still going to"
  },
  {
    "startMs": 316560,
    "text": "try and describe the it's still going to"
  },
  {
    "startMs": 319200,
    "text": "try and take the output and describe it"
  },
  {
    "startMs": 321720,
    "text": "as it normally would. So, you end up"
  },
  {
    "startMs": 323520,
    "text": "with like, \"Here's your display.\" and"
  },
  {
    "startMs": 324840,
    "text": "then here's the model doing basically"
  },
  {
    "startMs": 327120,
    "text": "the same thing that it would normally"
  },
  {
    "startMs": 328400,
    "text": "do. Um so, what you need to do is you"
  },
  {
    "startMs": 330919,
    "text": "need to update your description in order"
  },
  {
    "startMs": 333160,
    "text": "to tell it that you're going to be"
  },
  {
    "startMs": 334400,
    "text": "displaying stuff in your MCP app. Uh"
  },
  {
    "startMs": 337120,
    "text": "that way you get this like nice, you"
  },
  {
    "startMs": 339240,
    "text": "know, here's a list of you know, here's"
  },
  {
    "startMs": 341360,
    "text": "a little summary of things, and you"
  },
  {
    "startMs": 343680,
    "text": "know, the results are are are showed"
  },
  {
    "startMs": 345480,
    "text": "above the links, rather than it trying"
  },
  {
    "startMs": 347440,
    "text": "to like do a whole text-based display."
  },
  {
    "startMs": 350440,
    "text": "Um"
  },
  {
    "startMs": 351080,
    "text": "you'll end up with this a little bit of"
  },
  {
    "startMs": 352520,
    "text": "a battle between like what gets"
  },
  {
    "startMs": 354200,
    "text": "displayed in UI and what gets displayed"
  },
  {
    "startMs": 356720,
    "text": "by the model. You can try and steer that"
  },
  {
    "startMs": 360240,
    "text": "with descriptions. So, even something as"
  },
  {
    "startMs": 362760,
    "text": "simple as results were automatically"
  },
  {
    "startMs": 364960,
    "text": "displayed to the user as UI components"
  },
  {
    "startMs": 367440,
    "text": "at the top of your description, your"
  },
  {
    "startMs": 369360,
    "text": "tool description,"
  },
  {
    "startMs": 370880,
    "text": "uh that covers that covers quite a bit"
  },
  {
    "startMs": 373640,
    "text": "of the cases. Um"
  },
  {
    "startMs": 376720,
    "text": "So, that's one of the next things that"
  },
  {
    "startMs": 378480,
    "text": "you're going to want to do uh once"
  },
  {
    "startMs": 380480,
    "text": "you're providing both data and API"
  },
  {
    "startMs": 383400,
    "text": "access."
  },
  {
    "startMs": 384760,
    "text": "Uh the next thing is there's these"
  },
  {
    "startMs": 386360,
    "text": "interactable pieces, right? There's the"
  },
  {
    "startMs": 388320,
    "text": "apply button, there's a view details"
  },
  {
    "startMs": 390640,
    "text": "button, which pops up a big job"
  },
  {
    "startMs": 392080,
    "text": "description."
  },
  {
    "startMs": 393640,
    "text": "Um this is the same case where, you"
  },
  {
    "startMs": 396200,
    "text": "know, as you interact with those, the"
  },
  {
    "startMs": 398280,
    "text": "model's not going to know necessarily"
  },
  {
    "startMs": 400480,
    "text": "what you're looking at. So, you click"
  },
  {
    "startMs": 401840,
    "text": "view details, you get a big modal that's"
  },
  {
    "startMs": 404320,
    "text": "here's everything about the job."
  },
  {
    "startMs": 407840,
    "text": "There's once again a whole bunch of"
  },
  {
    "startMs": 409160,
    "text": "questions that the user could ask."
  },
  {
    "startMs": 411680,
    "text": "Uh write a cover letter for this job,"
  },
  {
    "startMs": 413800,
    "text": "summarize this job description. It has"
  },
  {
    "startMs": 416160,
    "text": "no idea because you've loaded that data"
  },
  {
    "startMs": 418080,
    "text": "in either in via API or you loaded it in"
  },
  {
    "startMs": 421440,
    "text": "dynamically,"
  },
  {
    "startMs": 422960,
    "text": "uh you know, hit you return 10 jobs and"
  },
  {
    "startMs": 425880,
    "text": "user clicks on one,"
  },
  {
    "startMs": 427600,
    "text": "the model has no idea which one you"
  },
  {
    "startMs": 429800,
    "text": "clicked on."
  },
  {
    "startMs": 431120,
    "text": "Uh so, any information about user"
  },
  {
    "startMs": 434600,
    "text": "interactions, you also need to provide"
  },
  {
    "startMs": 437520,
    "text": "to the model."
  },
  {
    "startMs": 440560,
    "text": "And"
  },
  {
    "startMs": 441919,
    "text": "uh once again, MCP abstract has a pretty"
  },
  {
    "startMs": 444320,
    "text": "easy way to handle it. There's this"
  },
  {
    "startMs": 445840,
    "text": "update model context"
  },
  {
    "startMs": 447919,
    "text": "um method, which lets you pass in a"
  },
  {
    "startMs": 450040,
    "text": "string"
  },
  {
    "startMs": 451520,
    "text": "uh that is"
  },
  {
    "startMs": 453160,
    "text": "So, for MCP apps, there's a single"
  },
  {
    "startMs": 455000,
    "text": "string. Uh so, if you like want to track"
  },
  {
    "startMs": 457720,
    "text": "multiple events over time, you kind of"
  },
  {
    "startMs": 459600,
    "text": "have to append"
  },
  {
    "startMs": 461280,
    "text": "uh multiple things to the string, but"
  },
  {
    "startMs": 463360,
    "text": "this is this is this is an example from"
  },
  {
    "startMs": 466360,
    "text": "the MCP apps uh documentation where"
  },
  {
    "startMs": 469320,
    "text": "basically, you know, this is a shopping"
  },
  {
    "startMs": 471200,
    "text": "cart application and they add the total"
  },
  {
    "startMs": 473760,
    "text": "cost and all the items that are on the"
  },
  {
    "startMs": 476120,
    "text": "shopping cart so the user can ask for"
  },
  {
    "startMs": 479360,
    "text": "uh you know, \"Tell me information about"
  },
  {
    "startMs": 481400,
    "text": "the items that are in my shopping cart.\""
  },
  {
    "startMs": 483395,
    "text": ">> [snorts]"
  },
  {
    "startMs": 485880,
    "text": ">> So, these"
  },
  {
    "startMs": 487840,
    "text": "two things give you an app that like the"
  },
  {
    "startMs": 490320,
    "text": "model could kind of see what's going on."
  },
  {
    "startMs": 493040,
    "text": "Um but it doesn't necessarily make a"
  },
  {
    "startMs": 495240,
    "text": "really good MCP app yet"
  },
  {
    "startMs": 499000,
    "text": "uh because it gives you it gives you"
  },
  {
    "startMs": 500960,
    "text": "some UI that looks like what you want,"
  },
  {
    "startMs": 503840,
    "text": "but"
  },
  {
    "startMs": 505040,
    "text": "the thing that I usually do, I don't"
  },
  {
    "startMs": 507240,
    "text": "give I don't give the I don't I don't"
  },
  {
    "startMs": 509880,
    "text": "give Claude"
  },
  {
    "startMs": 511360,
    "text": "uh my easy problems to solve. I give"
  },
  {
    "startMs": 513880,
    "text": "Claude my really hard problems to solve,"
  },
  {
    "startMs": 516000,
    "text": "right? Like if I just wanted to do one"
  },
  {
    "startMs": 517640,
    "text": "search, I would go to the web and do one"
  },
  {
    "startMs": 520039,
    "text": "search. I want to do a whole bunch of"
  },
  {
    "startMs": 521400,
    "text": "searches. Uh"
  },
  {
    "startMs": 523200,
    "text": "this is this is out of date cuz there's"
  },
  {
    "startMs": 525800,
    "text": "no Sonic 5 here yet, but uh this is"
  },
  {
    "startMs": 529640,
    "text": "screenshot from 2 days ago."
  },
  {
    "startMs": 531560,
    "text": "Uh but yeah, so that So, like this job"
  },
  {
    "startMs": 533240,
    "text": "search is \"Hey, I'm looking for this I'm"
  },
  {
    "startMs": 535480,
    "text": "looking for this title."
  },
  {
    "startMs": 537800,
    "text": "I'm willing to relocate, so I want to"
  },
  {
    "startMs": 539680,
    "text": "search across a whole bunch of different"
  },
  {
    "startMs": 541240,
    "text": "cities."
  },
  {
    "startMs": 542440,
    "text": "Um you know, I'm looking for the highest"
  },
  {
    "startMs": 544280,
    "text": "paying option, so I want you to just"
  },
  {
    "startMs": 545800,
    "text": "cherry-pick a few out of there. There's"
  },
  {
    "startMs": 547680,
    "text": "some industries that I absolutely don't"
  },
  {
    "startMs": 549360,
    "text": "want to work in.\""
  },
  {
    "startMs": 551720,
    "text": "Text-based MCP"
  },
  {
    "startMs": 554200,
    "text": "does really well. Like"
  },
  {
    "startMs": 555880,
    "text": "we all see this, right? Claude will do"
  },
  {
    "startMs": 558640,
    "text": "10 different searches, 15 different"
  },
  {
    "startMs": 560720,
    "text": "searches. It'll filter, it'll pull out"
  },
  {
    "startMs": 563320,
    "text": "all the individual pieces,"
  },
  {
    "startMs": 565560,
    "text": "uh and then it gives you a nice table at"
  },
  {
    "startMs": 566960,
    "text": "the bottom, uh which is which is super"
  },
  {
    "startMs": 569200,
    "text": "nice."
  },
  {
    "startMs": 570511,
    "text": ">> [snorts]"
  },
  {
    "startMs": 570600,
    "text": ">> But with the MCP app that we were just"
  },
  {
    "startMs": 572600,
    "text": "discussing, you know, we we said, \"Hey,"
  },
  {
    "startMs": 576080,
    "text": "uh you know, my results are going to be"
  },
  {
    "startMs": 578480,
    "text": "displayed in this UI. Uh"
  },
  {
    "startMs": 583480,
    "text": "We know Claude Claude will call it once"
  },
  {
    "startMs": 586200,
    "text": "and then it'll be like, \"Oh, I guess the"
  },
  {
    "startMs": 587480,
    "text": "results are already displayed. I'm not"
  },
  {
    "startMs": 588840,
    "text": "going to like do a deep dive, right?\""
  },
  {
    "startMs": 590400,
    "text": "Like it doesn't It's you as a user are"
  },
  {
    "startMs": 593240,
    "text": "not going to want 10 different carousels"
  },
  {
    "startMs": 596960,
    "text": "and Claude"
  },
  {
    "startMs": 598440,
    "text": "will also notice that like it's already"
  },
  {
    "startMs": 599920,
    "text": "been displaying some stuff and it won't"
  },
  {
    "startMs": 602120,
    "text": "call to show 10 different carousels."
  },
  {
    "startMs": 605400,
    "text": "Um"
  },
  {
    "startMs": 606080,
    "text": "and so what you really want to do, and"
  },
  {
    "startMs": 607640,
    "text": "this is rule three, this like supersedes"
  },
  {
    "startMs": 610200,
    "text": "all the other rules,"
  },
  {
    "startMs": 612040,
    "text": "uh which is basically you want to"
  },
  {
    "startMs": 613240,
    "text": "separate your data processing from your"
  },
  {
    "startMs": 615920,
    "text": "UI rendering."
  },
  {
    "startMs": 618120,
    "text": "And this particular wording I stole uh"
  },
  {
    "startMs": 622080,
    "text": "from OpenAI uh"
  },
  {
    "startMs": 624877,
    "text": ">> [snorts]"
  },
  {
    "startMs": 624880,
    "text": ">> OpenAI"
  },
  {
    "startMs": 626480,
    "text": "uh"
  },
  {
    "startMs": 627160,
    "text": "Apps SDK documentation. There's a couple"
  },
  {
    "startMs": 629960,
    "text": "places where they say this."
  },
  {
    "startMs": 632040,
    "text": "Um but basically they want to You want"
  },
  {
    "startMs": 634400,
    "text": "to separate your data processing from"
  },
  {
    "startMs": 636920,
    "text": "your UI rendering. So the job search"
  },
  {
    "startMs": 641120,
    "text": "that we had"
  },
  {
    "startMs": 642680,
    "text": "we're just going to have that be a"
  },
  {
    "startMs": 643760,
    "text": "standard text-based MCP application."
  },
  {
    "startMs": 647040,
    "text": "Claude can call that as many times as it"
  },
  {
    "startMs": 649240,
    "text": "wants. And then we have a render tool"
  },
  {
    "startMs": 652200,
    "text": "that either"
  },
  {
    "startMs": 653720,
    "text": "you can pass"
  },
  {
    "startMs": 655839,
    "text": "you can have the model basically pass"
  },
  {
    "startMs": 657680,
    "text": "all the data that it wants to render in"
  },
  {
    "startMs": 659600,
    "text": "or you can do a reference uh to it. So"
  },
  {
    "startMs": 662400,
    "text": "in our particular case"
  },
  {
    "startMs": 664440,
    "text": "uh you know, we had search jobs. Now we"
  },
  {
    "startMs": 667320,
    "text": "have a search jobs that doesn't return"
  },
  {
    "startMs": 669400,
    "text": "any UI and we have a render jobs widget"
  },
  {
    "startMs": 672040,
    "text": "that takes a list of IDs."
  },
  {
    "startMs": 674520,
    "text": "Um and so that list of IDs"
  },
  {
    "startMs": 677280,
    "text": "uh"
  },
  {
    "startMs": 678200,
    "text": "can be, you know, Claude can do a"
  },
  {
    "startMs": 679640,
    "text": "search. It can get"
  },
  {
    "startMs": 682200,
    "text": "a hundred different jobs that it cares"
  },
  {
    "startMs": 683920,
    "text": "about. It can filter those. It can find"
  },
  {
    "startMs": 686040,
    "text": "five that it cares about and it can show"
  },
  {
    "startMs": 688800,
    "text": "those five to the user."
  },
  {
    "startMs": 690680,
    "text": "Um now as you make these like render"
  },
  {
    "startMs": 694360,
    "text": "uh as you make these render calls, you"
  },
  {
    "startMs": 696840,
    "text": "need to update the descriptions to say"
  },
  {
    "startMs": 698440,
    "text": "like where did they get the data, what"
  },
  {
    "startMs": 700720,
    "text": "format the data should be."
  },
  {
    "startMs": 702920,
    "text": "But it's a fairly easy fairly easy"
  },
  {
    "startMs": 705240,
    "text": "mechanism to update your tool"
  },
  {
    "startMs": 706720,
    "text": "description to say you need to always"
  },
  {
    "startMs": 708880,
    "text": "call one of these three tools first in"
  },
  {
    "startMs": 711680,
    "text": "order to get"
  },
  {
    "startMs": 713360,
    "text": "the data that you're going to be using"
  },
  {
    "startMs": 714680,
    "text": "for rendering."
  },
  {
    "startMs": 716320,
    "text": "So, search jobs, this is a pretty good"
  },
  {
    "startMs": 719960,
    "text": "um"
  },
  {
    "startMs": 720960,
    "text": "It's a pretty good example"
  },
  {
    "startMs": 723480,
    "text": "of of how we where we want to split data"
  },
  {
    "startMs": 726360,
    "text": "from rendering. I think there's a ton of"
  },
  {
    "startMs": 728800,
    "text": "other like"
  },
  {
    "startMs": 730560,
    "text": "in most industries, you can kind of come"
  },
  {
    "startMs": 732840,
    "text": "up with like, \"Hey, where do I want to"
  },
  {
    "startMs": 735080,
    "text": "you know, where do I want to split?\""
  },
  {
    "startMs": 736240,
    "text": "Like I want to be I want"
  },
  {
    "startMs": 738400,
    "text": "the model to be able to explore this"
  },
  {
    "startMs": 740040,
    "text": "data and then I want it to turn around"
  },
  {
    "startMs": 742640,
    "text": "and choose to be able to render it."
  },
  {
    "startMs": 744960,
    "text": "Right? Like there's there's examples of"
  },
  {
    "startMs": 748640,
    "text": "you know"
  },
  {
    "startMs": 749960,
    "text": "e-commerce, right? Like"
  },
  {
    "startMs": 752120,
    "text": "a bunch of e-commerce options."
  },
  {
    "startMs": 754520,
    "text": "If you've got a map, you know, maybe you"
  },
  {
    "startMs": 756680,
    "text": "want to come up with like five different"
  },
  {
    "startMs": 758680,
    "text": "addresses and then you pass in"
  },
  {
    "startMs": 760000,
    "text": "addresses."
  },
  {
    "startMs": 761600,
    "text": "The other thing that you can do is you"
  },
  {
    "startMs": 762880,
    "text": "can let the model be a lot more"
  },
  {
    "startMs": 764960,
    "text": "creative. Like one of the things that"
  },
  {
    "startMs": 766400,
    "text": "we've seen in some of this text-based"
  },
  {
    "startMs": 769920,
    "text": "stuff is that"
  },
  {
    "startMs": 772520,
    "text": "you know, the model will say like, \"This"
  },
  {
    "startMs": 773960,
    "text": "is a"
  },
  {
    "startMs": 774218,
    "text": ">> [clears throat]"
  },
  {
    "startMs": 774240,
    "text": ">> This is a reason why I picked this one.\""
  },
  {
    "startMs": 776440,
    "text": "Or \"This is a reason why this is really"
  },
  {
    "startMs": 778040,
    "text": "good.\""
  },
  {
    "startMs": 779320,
    "text": "And so, you know, potentially we can add"
  },
  {
    "startMs": 781880,
    "text": "something to the render jobs widget"
  },
  {
    "startMs": 783360,
    "text": "where you say give us an ID and a reason"
  },
  {
    "startMs": 787320,
    "text": "why you think that this is a good fit."
  },
  {
    "startMs": 789720,
    "text": "Or give us an ID and highlight a section"
  },
  {
    "startMs": 793240,
    "text": "of the job description that is really"
  },
  {
    "startMs": 794920,
    "text": "good. Um, so you can get really creative"
  },
  {
    "startMs": 798360,
    "text": "with your render tools to be able to"
  },
  {
    "startMs": 800800,
    "text": "have to be able to give some extra"
  },
  {
    "startMs": 803480,
    "text": "character that the model can inject"
  },
  {
    "startMs": 806760,
    "text": "into those so that"
  },
  {
    "startMs": 809320,
    "text": "so that you've got a much better"
  },
  {
    "startMs": 810480,
    "text": "experience for the user."
  },
  {
    "startMs": 814120,
    "text": "So [snorts] the key takeaways"
  },
  {
    "startMs": 816760,
    "text": "right"
  },
  {
    "startMs": 817720,
    "text": "when building MCP apps, you want to"
  },
  {
    "startMs": 819440,
    "text": "focus on the data before you focus on"
  },
  {
    "startMs": 822000,
    "text": "the UI which sounds sounds opposite of"
  },
  {
    "startMs": 824920,
    "text": "you know how we were thinking about it"
  },
  {
    "startMs": 826120,
    "text": "of like hey there's all these there's"
  },
  {
    "startMs": 827600,
    "text": "these MCP apps like it's how I put UI"
  },
  {
    "startMs": 830440,
    "text": "into chat GPT."
  },
  {
    "startMs": 832840,
    "text": "I think if you want to really have a"
  },
  {
    "startMs": 835240,
    "text": "good MCP apps experience, you need to"
  },
  {
    "startMs": 838920,
    "text": "you need to look at and see what data do"
  },
  {
    "startMs": 841440,
    "text": "I want to what data do I want to give to"
  },
  {
    "startMs": 842880,
    "text": "the model, what data do I want it to be"
  },
  {
    "startMs": 844120,
    "text": "able to do and then"
  },
  {
    "startMs": 847200,
    "text": "rendering is a side effect of of that or"
  },
  {
    "startMs": 850240,
    "text": "it's a result of the the model exploring"
  },
  {
    "startMs": 854000,
    "text": "the data."
  },
  {
    "startMs": 855160,
    "text": "And then I think small composable tools,"
  },
  {
    "startMs": 858840,
    "text": "right? So"
  },
  {
    "startMs": 860800,
    "text": "uh"
  },
  {
    "startMs": 862200,
    "text": "basically, you know"
  },
  {
    "startMs": 864240,
    "text": "maybe there's like two or three"
  },
  {
    "startMs": 865400,
    "text": "different ways you can search for jobs."
  },
  {
    "startMs": 867360,
    "text": "We could build two or three different"
  },
  {
    "startMs": 868440,
    "text": "search tools and then there's one render"
  },
  {
    "startMs": 870600,
    "text": "tool or maybe there's like maybe there's"
  },
  {
    "startMs": 873680,
    "text": "two render tools there's one that's"
  },
  {
    "startMs": 875080,
    "text": "render a list of jobs, one that's, you"
  },
  {
    "startMs": 877240,
    "text": "know, highlight one particular job. So"
  },
  {
    "startMs": 880080,
    "text": "you could build a bunch of much smaller"
  },
  {
    "startMs": 881880,
    "text": "tools. The descriptions can be fairly"
  },
  {
    "startMs": 884000,
    "text": "simple so you don't overload the model,"
  },
  {
    "startMs": 886600,
    "text": "but it gives the model flexibility about"
  },
  {
    "startMs": 889160,
    "text": "how it wants to explore the data and how"
  },
  {
    "startMs": 891280,
    "text": "it wants to render the tools."
  },
  {
    "startMs": 894600,
    "text": "So that's"
  },
  {
    "startMs": 896160,
    "text": "basically basically my talk. I'm a few"
  },
  {
    "startMs": 899040,
    "text": "minutes few minutes fast."
  },
  {
    "startMs": 901839,
    "text": "But I don't have a booth that I'm going"
  },
  {
    "startMs": 904400,
    "text": "to hang out in, but I'll I'll hang out"
  },
  {
    "startMs": 905960,
    "text": "in the hall if anyone has any questions."
  },
  {
    "startMs": 908960,
    "text": "And I am either my last name or my first"
  },
  {
    "startMs": 912400,
    "text": "initial last name on most social media"
  },
  {
    "startMs": 914760,
    "text": "platforms."
  },
  {
    "startMs": 915960,
    "text": "Thank you."
  },
  {
    "startMs": 932075,
    "text": ">> [music]"
  },
  {
    "startMs": 933600,
    "text": ">> Mhm."
  }
]
