Duck Tales: How we build, design, and trigger instant answers on DuckDuckGo search (Ep.26)
08 April 2026

Duck Tales: How we build, design, and trigger instant answers on DuckDuckGo search (Ep.26)

Inside DuckDuckGo

About

In this episode, Greg (Product) and Karl (Design Engineering) discuss how we build, design and decide when to show Instant Answers. Plus, how we’re balancing instant answers with optional AI generated answers.

Disclaimers: (1) The audio, video (above), and transcript (below) are unedited and may contain minor inaccuracies or transcription errors. (2) This website is operated by Substack. This is their privacy policy.

Greg: Hello and welcome to DuckTales where we go behind the scenes at DuckDuckGo and discuss the stories, technology and people that help build privacy tools for everyone. In each episode you hear about our vision, product updates, engineering, our approach to AI from employees at DuckDuckGo. I’m Greg, I work on the search engine here at DuckDuckGo and with me today is Karl. Karl, would you like to introduce yourself?

Karl: Yeah, sure. Yeah, so I’m Karl. I’m a design engineer here at DuckDuckGo and I work across the search engine on instant answers and our Search Assist AI module.

Greg: Awesome. And that’s actually what we want to talk about today. DuckDuckGo Instant Answers, how we show instant answers for different search queries. Obviously, in a search engine, we show links to websites. But there’s a lot of other content that we show on the page as well, which I think broadly we sort of refer to as instant answers. You know things like if you search for the weather, you know, we might show a weather module at the top of the page. I’ll just share a couple examples of these. You know, so you search for weather and we try to show, you know, relevant information about the weather at the top of the page in addition to then all of the, you know, the links to different websites.

Karl: Nice.

Greg: We have things like unit conversions. If you search for a temperature and you want to convert it from Celsius to Fahrenheit, different calculations, all of these things are kind of within the umbrella of instant answers. We have had instant answers for a long time. I think really early in the history of the company and the product, recognized that when you’re pulling information from a lot of different sources, you have the ability to present that information in different ways to help the user find what they’re looking for, whether that is looking for a website that they want to navigate to, looking for an answer to a question, or looking for something a little bit more complicated. So yeah, we have lots of different instant answers, and thought we’d talk a little bit more about that today. So I guess as a starting point, I’m curious to talk about, and you mentioned being a design engineer, what are some of the challenges involved in designing and building instant answers?

Karl: So I think one of the things that I’ve always found working on these is it’s very easy to just basically take everything we get. So we will work with like a provider. Let’s say if we’re doing where to watch something, let me share my screen actually as well and we can have a look at this. We are working with a provider. So in this case, we’re working with JustWatch and using their API data. When you come to design something like this, it’s very easy to look at that and say like, okay, cool, let’s go to JustWatch’s website and have a look at what’s available. We can see their website, how they present the information they have and they give us. And you could kind of jump to say like, well, we’ll just take what they’ve done. They’ve got that data, we’re using the same data, let’s just copy the way that they’ve presented that information. That would be like the easy solution. But then you’ve got all of these sort of legacy things to deal with, like we talked about a bit earlier, we’ve had instant answers for a long time. We’ve got ways that we present our information on the search engine and we need these modules, whether they’re pre-existing or they’re new, like we need them to all feel like they belong together in some way. So it needs to sit in the search engine nicely, you know, and feel kind of like it belongs. So we can’t just do like a one-to-one copy, which, you know, as designers anyway, we don’t want to just copy what someone else has done. But when the data is so vast and so complex, it can be kind of hard if you’re not familiar with the domain so much as an individual to just figure out like, what do I even care about here? So like, here’s an example with a movie, we were trying to figure out where you can watch this, but like, where are you in the world? You know, because that’s like the first thing that’s probably one of the biggest challenges is we can’t show you the same thing if you’re in the US or the UK or Australia. You’re going to see something different.

Greg: I think you touched on a lot of important pieces to this that make this challenging. One is just understanding the user’s context. Obviously, we have limited information about our users based on our privacy policy and our privacy standards. We can approximate things like location accurately enough to be able to do things like the weather one that I showed, or this where to watch example. But that does limit us in what we are trying to do where we’re not trying to overly personalize the things that we’re showing down to a very specific user profile. And so, we have to kind of generalize and try to figure out just from the search query and that limited bit of information, what is it that we’re going to show to try to answer the user’s query. The other thing you touched on that I think is important to highlight is just the fact that this search query here is very specific and I think has a pretty clear intent where to watch a specific movie. Sometimes the intent is a little bit harder to unpack. And so you might have more different things that you could show. If you just searched for the movie title, for example, maybe someone’s trying to figure out where to watch it. Maybe they’re interested in the release date or different news about it. If it’s an upcoming movie, maybe they want to know what the cast is like. So trying to figure that out and then present the information in a way that gives users the ability to see what they’re looking for and also then refine their search down to the more specific thing. I think that adds some challenge as well.

Karl: No, I agree. I think probably one of the biggest things that I found difficult around this is exactly that is the like figuring out the query, figuring out the query space, and then defining the data set, the golden data set, as we call it, that helps us to understand when do we trigger? How do we decide what we trigger? And entertainment is especially challenging because we have three different modules that are part of the class of entertainment. We have the titles module, which is the overarching piece that tells you, you know, this movie is from this date. This is a brief synopsis and you can get to the two other modules. So this where to watch module. And then also you can get to the cast module from that parent module. But like you say, you have to trigger these differently and figure it out. And so we can do these really clear ones where someone puts the keyword in that we’re looking for, but sometimes we’ve got to try and use all these other signals from what we get from the organics or like other pieces of information that we’re retrieving to say like, actually we think this is best and you will know better than I, but like it’s incredibly hard and sometimes, you know, it doesn’t matter how hard you try, the intent might feel really obvious to the person typing it, but as far as we can derive from that information, we can’t always figure out the right thing to show you. And so we do our best, but you know, there’ll be misses sometimes.

Greg: Yeah, I want to ask you about something that’s on your screen right now because you can see, you searched the query Project Hail Mary cast and we’ve got the cast module at the top left there. We also have that Search Assist box to the right side that attempts to kind of answer the question. I guess, we’ve talked a little bit on previous episodes about Search Assist and what it’s doing. You know, how would you describe how we think about showing those two things next to each other, the different kind of roles they play, and maybe how that’s evolving over time?

Karl: I think, yeah, that’s been a big challenge for us because AI summarization is a really useful tool for some people. It’s not for everybody. And obviously, we’re super careful about giving people optionality and letting you say, I don’t want to see this. But for people who want it, people who are interested in seeing that, we don’t want to just always put that front and center as the key answer to every query. Because in a case like this, for example, Search Assist is giving you the same information, but it’s giving you it as text. And maybe we’re giving you a little bit extra too. But if I’m specifically trying to ask about the cast, there is a high chance it’s because I’m thinking of an individual who I’ve seen in the film, or I’ve heard is gonna be in the film, or what have you. And so I’m trying to see their face to be like, yes, okay, so it is Ryan Gosling who’s in Project Hail Mary. Okay, cool. And so in this case, like that is probably what we feel the most critical piece of information. So we want to give you that module upfront. But at the same time, if you’re someone who’s interested in getting a kind of AI summary as part of your query, we don’t want to then say, just, we won’t show you that tool then. And so we have this like convenient little right rail slot where we can say, actually, we’ll just move this over here. So you get kind of the what we think is the best of both worlds where we can deprioritize Search Assist in this case where the intent is really clear. And then in cases where we’re not so sure, we will do our best to try and figure out like maybe Search Assist is the best answer of this or maybe it’s a different module.

Greg: Yeah, I’ll also note, we have different sort of settings that you can use for Search Assist everywhere from, I never want to see Search Assist at all up through, show it to me as often as you can. You obviously have it set to show often here. I do too. But yeah, I mean, for this kind of query, certainly the use case you spoke to of like, I’m sitting with my family watching a movie, go, wait, who’s that? This is the type of thing where, okay, you can get that information really quickly. But I guess to your point, we recognize with a search engine, you’re walking a line between giving just the immediate information that a user is asking for and then giving them the ability to dive deeper, which a lot of people are using a search engine for. It’s sort of a, people come and type all manner of topics and things into that search box. And we kind of have to be ready for any of it and different user expectations. I would say we do, I’m curious to the extent to which you agree with this, like we do generally try to keep things relatively uncluttered, like we’re not trying to sort of throw everything at the page all at once. You know, I think from my perspective here, this is sort of one of the more kind of rich search results pages you would see on DuckDuckGo. You’ve got the news module down below. You’ve got some kind of imagery within the organic links. And that’s about it. You know, I guess from a design standpoint, how do you kind of see the role of just like the information layout and kind of how much we’re showing on the page at a time.

Karl: Yeah, that’s a good question. I’m a huge clean freak when it comes to design as well. It’s kind of hard trying to walk the line because when we talk to people who use the search engine, we’ll try to understand, how do you feel about the page they’re presenting? Especially if we try and compare to anyone else, what do you think about it? And we always get kind of mixed results, I guess, because some people love a nice clean layout. Some people want to see loads of stuff because they’re just so used to being bombarded with richness of like images here, there and everywhere. And one of the biggest challenges is that we obviously want to meet people where they are. We want to help give them what they’re looking for, but we don’t want to go to the kind of degree that we just say like, we’ll absolve all responsibility and just give you everything that’s available. Like here’s every image and every kind of video and stuff’s auto playing and like just taking up all of your space. Like for me, like you said, this current SERP that we’re looking at is this layout of the page. Like this is very rich for us. And it’s like at that kind of point of balance where I think we are okay with it. And we’re like, that’s good. But you know, if we imagined that Search Assist also had an image at this point as well and other things in there, it starts to make it really difficult for somebody to figure out like, where does my eye need to go, what do I need to look at in this particular point? So we’re trying to kind of keep it really clean and say, you know, cast is this most important piece right now. That’s you’ve got big images, big module, and then we kind of de-prioritize as you go further down. But it is probably one of the hardest challenges and it’s why whenever we’re developing a module like this, it’s not the kind of thing that we can develop in isolation. You know, you can’t sit in a Figma file just with this design of a flat version of a cast module and be like, you know, that looks great. I love it. Because the minute you put it in the SERP, you realize, you know, okay, I’ve got to deal with all of these other visual things and maybe we need to turn some stuff off or change something. And that’s I think, you know, being a design engineer here, it made it possible when we developing these entertainment modules for me to do that. So I was given the kind of the rope to get into the code base and start to put these things in a SERP and play with them. And I guess you just, you get a different feel for what works and what doesn’t work when you actually see it in real place in the code base.

Greg: Yeah, definitely. I’ll also add, similar to the Search Assist setting, we have a setting that lets you basically turn the instant answers off if that’s what you want to, recognizing that some people like more and some people want less. Although I think in a lot of cases, we see users keeping them on and finding a lot of value in them. I’m curious, as we maybe get towards wrapping up our conversation, putting your user hat on for a minute. What are the instant answers that you use the most?

Karl: Well, I will say that I use my entertainment ones all the time, of course, but that’s also just as a kind of, I guess, a curious person who works on them. I have to keep an eye on them. Search Assist is obviously one of my, again, most frequently used, but I think conversions is a surprising one that I use a lot, and I think that’s especially the case because being from the UK but working with a lot of my American colleagues, when people are just chatting about Fahrenheit, I have no idea. So I have to end up getting in there and converting that. But also great for time zones and things like that when you’re trying to figure out when you can do a meeting, you know, like this meeting, for example, I can jump into that. And then weather, again, like one of the simple things that just, it saves a ton of time when you’re already in a search engine doing other things, just pulling up the weather. IA is a super handy one. What about you? I feel like you’re gonna be a sports fan.

Greg: Yeah, well, we haven’t talked much about sports, but I do use the sports modules a lot. The sports ones are interesting because, you know, with something like conversions, you know, that’s pretty consistent as far as the queries we see day in, day out, people like looking for conversions. Sports is going to depend on, you know, the events that are happening, right? Our American football module is probably not triggering very much right now. But when the season starts in the fall, it’ll start showing again. And certainly, the day of the Super Bowl, it’ll be shown quite a lot. I’m a big Philadelphia sports fan. I have some queries bookmarked that I just look at pretty frequently. I find, personally, the instant answers for sports are actually kind of my favorite way to get some of this information. You know, if I’m looking for like the NHL standings and, you know, or kind of, you know, when do the Flyers play their next game or when did they play their last game? Like this search query is really quick for me to do. It loads quickly. I kind of know what all the information is here and where it’s going to be. So I find this pretty handy. And we’ve actually just this week, I think we’ve shipped some new sports. We’ve shipped Formula One, we’ve shipped NASCAR, and we’re planning to add a bunch more sports as well for people who want to get their sports information from DuckDuckGo. So yeah, I guess anything else we missed that we want to talk about before we wrap up?

Karl: I think we’ve covered pretty much everything, yeah, I can think of.

Greg: Yeah, I’m sure we could do future episodes deep dive into more. We didn’t talk about local at all, which is its own answer that has a lot of complexity to it. But yeah, I guess we can wrap up there. Thanks, Karl. This was fun.

Karl: Yeah, awesome, thanks.

Greg: All right, bye.



This is a public episode. If you would like to discuss this with other subscribers or get access to bonus episodes, visit insideduckduckgo.substack.com