{"id":373,"date":"2026-06-11T17:06:42","date_gmt":"2026-06-11T17:06:42","guid":{"rendered":"https:\/\/geekabhi.com\/blog\/?p=373"},"modified":"2026-06-11T17:35:29","modified_gmt":"2026-06-11T17:35:29","slug":"zeptos-llm-search-works-great-unless-youre-a-new-user","status":"publish","type":"post","link":"https:\/\/geekabhi.com\/blog\/zeptos-llm-search-works-great-unless-youre-a-new-user\/","title":{"rendered":"Zepto&#8217;s LLM Search Works Great. Unless You&#8217;re a New User."},"content":{"rendered":"\n<p>This week Zepto published a 15-minute engineering deep-dive called &#8220;Building Search for a 10-Minute World.&#8221; It is genuinely good architecture writing. Llama 3-8B for query correction, a custom bi-encoder for semantic retrieval, Mixture of Experts ranking, a four-stream exploit\/explore recall design. The kind of post that gets bookmarked.<\/p>\n\n\n\n<p>Then I opened zepto.com without logging in and typed five queries. Three of them returned a blank page.<\/p>\n\n\n\n<p>Then I logged in and typed the same five queries. All five worked perfectly.<\/p>\n\n\n\n<p>This post is the teardown: what fails for guests, why their own architecture blog says this should be impossible, and why the broken path is the one that matters most for their business.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The experiment<\/h2>\n\n\n\n<p>All queries were run at the same dark store (Arjun Nagar, Delhi), on 11th June, with products in stock. Each query was run twice: once logged out, once logged in.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Query<\/th><th>Logged out<\/th><th>Logged in<\/th><\/tr><\/thead><tbody><tr><td><code>maggi noodles<\/code><\/td><td>Perfect<\/td><td>Perfect<\/td><\/tr><tr><td><code>maggis noodles<\/code><\/td><td><strong>0 results<\/strong><\/td><td>Works<\/td><\/tr><tr><td><code>maggi's noodles<\/code><\/td><td><strong>0 results<\/strong><\/td><td>Works<\/td><\/tr><tr><td><code>mother dairy dudh<\/code><\/td><td>Works<\/td><td>Works<\/td><\/tr><tr><td><code>dudh of mother dairy<\/code><\/td><td><strong>0 results<\/strong><\/td><td>Works<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"570\" src=\"https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-220151-1024x570.png\" alt=\"\" class=\"wp-image-375\" srcset=\"https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-220151-1024x570.png 1024w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-220151-300x167.png 300w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-220151-768x427.png 768w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-220151-1536x855.png 1536w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-220151-1568x873.png 1568w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-220151.png 1592w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"519\" src=\"https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-215724-1024x519.png\" alt=\"\" class=\"wp-image-376\" srcset=\"https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-215724-1024x519.png 1024w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-215724-300x152.png 300w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-215724-768x389.png 768w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-215724-1536x778.png 1536w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-215724-1568x795.png 1568w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-215724.png 1691w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"666\" src=\"https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-215323-1024x666.png\" alt=\"\" class=\"wp-image-377\" srcset=\"https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-215323-1024x666.png 1024w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-215323-300x195.png 300w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-215323-768x499.png 768w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-215323.png 1470w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"548\" src=\"https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-225315-1024x548.png\" alt=\"\" class=\"wp-image-384\" srcset=\"https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-225315-1024x548.png 1024w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-225315-300x161.png 300w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-225315-768x411.png 768w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-225315-1536x822.png 1536w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-225315-1568x839.png 1568w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-225315.png 1570w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"562\" src=\"https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-225419-1024x562.png\" alt=\"\" class=\"wp-image-385\" srcset=\"https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-225419-1024x562.png 1024w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-225419-300x165.png 300w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-225419-768x421.png 768w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-225419-1536x843.png 1536w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-225419.png 1560w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"532\" src=\"https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-225507-1024x532.png\" alt=\"\" class=\"wp-image-386\" srcset=\"https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-225507-1024x532.png 1024w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-225507-300x156.png 300w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-225507-768x399.png 768w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-225507-1536x798.png 1536w, https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-225507.png 1561w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Look at the failure pattern. One missing apostrophe. One extra apostrophe. One English stopword. For a guest, each of these kills a query for a brand sitting in stock at the store. Log in, and the exact same characters return a full page of products.<\/p>\n\n\n\n<p>A side note that still makes me laugh: on the guest path, <code>maggis<\/code> alone works fine (a popular enough typo to be handled), but <code>maggis noodles<\/code> returns nothing. Adding a correct, clarifying word makes the results strictly worse.<\/p>\n\n\n\n<p>For reference, I ran the same queries on Swiggy Instamart at the same location, also logged out. Every single one returned correct results. Whatever Zepto&#8217;s guest path is missing, their competitor does not require an account to provide it.<\/p>\n\n\n\n<p>And one more detail. Zepto&#8217;s zero-results page for <code>maggi's noodles<\/code> still served me an ad. For Yippee, a competing noodle brand. The ads engine understood and monetized the exact query the search engine claimed does not exist, on the same page, in the same request.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Their own blog says this should be impossible<\/h2>\n\n\n\n<p>This is the genuinely interesting part.<\/p>\n\n\n\n<p>Zepto&#8217;s architecture post is explicit about the separation of concerns in their search stack. The retrieval service, search-platform, is described as a pure function that &#8220;knows nothing about users.&#8221; No delivery address, no order history, no experiment cohort. It receives a query, a city identifier, and eligible delivery hub IDs, and returns candidates. Personalization, session data, and experiment assignment all live downstream, in the orchestration layer, where candidates get ranked and assembled into a page.<\/p>\n\n\n\n<p>Take that description at face value and walk through my results. Same query string. Same city. Same store, therefore the same hub IDs. By their stated design, retrieval inputs are identical for my guest session and my logged-in session, so the candidate set must be identical too. Personalization can reorder candidates. It cannot create candidates out of a recall that returned zero.<\/p>\n\n\n\n<p>Yet logging in took three queries from a blank page to a full one. Recall itself changed with login status, which is exactly what the published architecture says cannot happen.<\/p>\n\n\n\n<p>I can think of three explanations, and none of them flatter the blog:<\/p>\n\n\n\n<ol>\n<li><strong>Guest traffic routes through a different pipeline entirely.<\/strong> Possibly a legacy or stripped-down search path that skips query understanding, fuzzy handling, and semantic recall. If so, the architecture in the blog describes the logged-in experience only, and a large share of real-world traffic never touches the system they wrote 15 minutes about.<\/li>\n\n\n\n<li><strong>Experiment or feature gating by login status.<\/strong> The richer recall stack (live correction, semantic fallback, relaxed matching) may be enabled only for authenticated cohorts. Defensible as an experiment strategy, but it means the blog&#8217;s claim that retrieval knows nothing about users is not true in practice, the user&#8217;s auth state is determining which retrieval stack runs.<\/li>\n\n\n\n<li><strong>Guest sessions fall back to a default configuration<\/strong> that happens to have the strictest possible matching and no recovery behavior. Less a decision than an accident of defaults, which is its own kind of finding.<\/li>\n<\/ol>\n\n\n\n<p>I do not know which it is, and I would genuinely welcome a correction from anyone on the Zepto search team. But from the outside, the observable fact is: the search described in the blog is not the search a new user gets.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why the guest path is the one that matters<\/h2>\n\n\n\n<p>It is tempting to file this under &#8220;edge case.&#8221; It is the opposite. The logged-out experience is Zepto&#8217;s front door:<\/p>\n\n\n\n<ul>\n<li>Every first-time visitor evaluating Zepto against Blinkit and Instamart before creating an account<\/li>\n\n\n\n<li>Every person landing on zepto.com from a Google search<\/li>\n\n\n\n<li>Every shared product or search link opened by someone without the app<\/li>\n\n\n\n<li>Every lapsed user checking whether something is available before bothering to sign back in<\/li>\n<\/ul>\n\n\n\n<p>These are precisely the sessions where search quality decides whether an account gets created at all. A returning logged-in user who hits a bad result will retype and move on; they have already committed. A guest who types &#8220;maggi&#8217;s noodles&#8221;, sees &#8220;could not find any products&#8221;, and gets shown a competitor&#8217;s ad instead has every reason to conclude the catalogue is thin and close the tab. The broken path is pointed directly at customer acquisition.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The four fundamentals the guest path is missing<\/h2>\n\n\n\n<p>Whatever the guest pipeline is, its failure modes are textbook. All four of the following are decades-old search engineering, none involve an LLM, and the logged-in path clearly has some or all of them.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Fuzzy matching: a config flag, not a project<\/h3>\n\n\n\n<p>Zepto runs on OpenSearch, which ships with built-in typo tolerance: set <code>\"fuzziness\": \"AUTO\"<\/code> on a match query and terms match within one or two character edits. <code>maggis<\/code> matches <code>maggi<\/code>. That is the entire fix for two of the three guest failures.<\/p>\n\n\n\n<p>Their blog argues that &#8220;standard edit-distance correctors fail entirely here&#8221; because vernacular queries like &#8220;kothimbir&#8221; share no characters with &#8220;coriander.&#8221; True, and a good argument for the LLM layer. But the guest path then fails on <code>maggis<\/code>, the exact case edit-distance handles in microseconds. The hard 5% got an 8-billion-parameter model; the easy 80% did not get the one-line config.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. A relaxation ladder: never show a blank page<\/h3>\n\n\n\n<p>Mature search systems have a zero-results recovery path: if the full query finds nothing, drop the weakest token and retry, repeating until something matches. <code>dudh of mother dairy<\/code> relaxes to <code>mother dairy<\/code>, which returns a full brand page at my store. The user never sees the retries. They just see milk.<\/p>\n\n\n\n<p>The guest path has no ladder. One out-of-vocabulary token vetoes the whole query, even when the remaining tokens exactly match a stocked brand. A query containing the literal string &#8220;mother dairy&#8221; returned nothing while Mother Dairy products sat on the shelf.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Semantic fallback: the net exists, but not here<\/h3>\n\n\n\n<p>The blog&#8217;s biggest investment is a custom bi-encoder that retrieves by meaning instead of spelling. Vector search has a useful property: it cannot return zero results, there is always a nearest neighbour. <code>maggis noodles<\/code> and <code>maggi noodles<\/code> are practically the same point in any embedding space. If semantic recall backstopped empty lexical results, a blank guest page would be nearly impossible. Three blank pages later, it evidently does not run on this path.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. One guardrail: smart search must never lose to dumb search<\/h3>\n\n\n\n<p>The floor of any search system should be what a naive substring match would return. <code>LIKE '%maggi%'<\/code> finds Maggi products for every one of my five queries. The guest pipeline failed three of them. When the clever path returns empty, fall back to the dumb path. It is one comparison at the end of the pipeline, and it would have made every failure in this post invisible.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Bonus: the caching claim does not hold either<\/h2>\n\n\n\n<p>Unrelated to the guest issue, one more design observation from the blog. Zepto says full result caching &#8220;doesn&#8217;t work at all&#8221; because personalization, session signals, and experiment assignment make the cardinality of valid pages too high. But by their own architecture, all that state lives in the orchestration layer. The retrieval service is stateless: query, city, and hub set in, candidates out. That is a pure function, and pure functions are perfectly cacheable.<\/p>\n\n\n\n<p>For head queries, which they admit are stable and which dominate their traffic, a short-TTL candidate cache keyed on query, city, and hub set would skip lexical recall, semantic ANN, and all four candidate streams. Stale inventory does not matter because their own Product Assortment Service re-resolves ground truth downstream anyway. They built the perfect cacheable boundary, then wrote a paragraph about why caching is impossible.<\/p>\n\n\n\n<p>Ironically, the guest finding strengthens this point. If guest search must remain fully anonymous anyway, it is the most cacheable traffic they have.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The lesson<\/h2>\n\n\n\n<p>I have spent 14 years building and scaling search systems, including Elasticsearch clusters past 500 million documents, and the meta-lesson here is one I keep relearning.<\/p>\n\n\n\n<p>An architecture blog describes the system at its best, on its best path, for its best-instrumented users. The product your next customer experiences may be a different system entirely, an older pipeline, a default config, a path nobody dogfoods because every employee is logged in. Zepto&#8217;s engineers almost certainly never see what I saw, because Zepto&#8217;s engineers all have accounts.<\/p>\n\n\n\n<p>Test your product the way a stranger meets it. Logged out, on the web, with a typo. That is the search system you actually shipped.<\/p>\n\n\n\n<p><em>Methodology: all queries tested on 11th June 2026 at the Arjun Nagar, Delhi dark store, each run in a logged-out session and a logged-in session. Logged-out failures were reproduced across multiple sessions. Zepto&#8217;s original post, which is worth reading despite everything above, is here: <a href=\"https:\/\/blog.zepto.com\/building-search-for-a-10-minute-world-43b1992f5dca\">https:\/\/blog.zepto.com\/building-search-for-a-10-minute-world-43b1992f5dca<\/a>. If you work on the Zepto search team and any of my inferences are wrong, I would genuinely love the correction, that is what the comments are for.<\/em><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This week Zepto published a 15-minute engineering deep-dive called &#8220;Building Search for a 10-Minute World.&#8221; It is genuinely good architecture writing. Llama 3-8B for query correction, a custom bi-encoder for semantic retrieval, Mixture of Experts ranking, a four-stream exploit\/explore recall design. The kind of post that gets bookmarked. Then I opened zepto.com without logging in&hellip; <a class=\"more-link\" href=\"https:\/\/geekabhi.com\/blog\/zeptos-llm-search-works-great-unless-youre-a-new-user\/\">Continue reading <span class=\"screen-reader-text\">Zepto&#8217;s LLM Search Works Great. Unless You&#8217;re a New User.<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":375,"comment_status":"open","ping_status":"open","sticky":true,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Zepto&#039;s LLM Search Works Great. Unless You&#039;re a New User. - Learner at life<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/geekabhi.com\/blog\/zeptos-llm-search-works-great-unless-youre-a-new-user\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Zepto&#039;s LLM Search Works Great. Unless You&#039;re a New User. - Learner at life\" \/>\n<meta property=\"og:description\" content=\"This week Zepto published a 15-minute engineering deep-dive called &#8220;Building Search for a 10-Minute World.&#8221; It is genuinely good architecture writing. Llama 3-8B for query correction, a custom bi-encoder for semantic retrieval, Mixture of Experts ranking, a four-stream exploit\/explore recall design. The kind of post that gets bookmarked. Then I opened zepto.com without logging in&hellip; Continue reading Zepto&#8217;s LLM Search Works Great. Unless You&#8217;re a New User.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/geekabhi.com\/blog\/zeptos-llm-search-works-great-unless-youre-a-new-user\/\" \/>\n<meta property=\"og:site_name\" content=\"Learner at life\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/abhij89\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-11T17:06:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-11T17:35:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-220151.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1592\" \/>\n\t<meta property=\"og:image:height\" content=\"886\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Abhishek Jain\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@abhij89\" \/>\n<meta name=\"twitter:site\" content=\"@abhij89\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Abhishek Jain\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/geekabhi.com\/blog\/zeptos-llm-search-works-great-unless-youre-a-new-user\/\",\"url\":\"https:\/\/geekabhi.com\/blog\/zeptos-llm-search-works-great-unless-youre-a-new-user\/\",\"name\":\"Zepto's LLM Search Works Great. Unless You're a New User. - Learner at life\",\"isPartOf\":{\"@id\":\"https:\/\/geekabhi.com\/blog\/#website\"},\"datePublished\":\"2026-06-11T17:06:42+00:00\",\"dateModified\":\"2026-06-11T17:35:29+00:00\",\"author\":{\"@id\":\"https:\/\/geekabhi.com\/blog\/#\/schema\/person\/75cf5ee8cc7d8c1a9ba81628bb57443e\"},\"breadcrumb\":{\"@id\":\"https:\/\/geekabhi.com\/blog\/zeptos-llm-search-works-great-unless-youre-a-new-user\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/geekabhi.com\/blog\/zeptos-llm-search-works-great-unless-youre-a-new-user\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/geekabhi.com\/blog\/zeptos-llm-search-works-great-unless-youre-a-new-user\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/geekabhi.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Zepto&#8217;s LLM Search Works Great. Unless You&#8217;re a New User.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/geekabhi.com\/blog\/#website\",\"url\":\"https:\/\/geekabhi.com\/blog\/\",\"name\":\"Learner at life\",\"description\":\"Blog to help you learn stuff\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/geekabhi.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/geekabhi.com\/blog\/#\/schema\/person\/75cf5ee8cc7d8c1a9ba81628bb57443e\",\"name\":\"Abhishek Jain\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/geekabhi.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/85387a40fe2c6954082743d1a8aa6c0f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/85387a40fe2c6954082743d1a8aa6c0f?s=96&d=mm&r=g\",\"caption\":\"Abhishek Jain\"},\"description\":\"Engineering Lead | Full-Stack + AI Integrations | 10+ SaaS Products | HFCM 600k+ installs\",\"sameAs\":[\"http:\/\/www.geekabhi.com\",\"https:\/\/twitter.com\/abhij89\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Zepto's LLM Search Works Great. Unless You're a New User. - Learner at life","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/geekabhi.com\/blog\/zeptos-llm-search-works-great-unless-youre-a-new-user\/","og_locale":"en_US","og_type":"article","og_title":"Zepto's LLM Search Works Great. Unless You're a New User. - Learner at life","og_description":"This week Zepto published a 15-minute engineering deep-dive called &#8220;Building Search for a 10-Minute World.&#8221; It is genuinely good architecture writing. Llama 3-8B for query correction, a custom bi-encoder for semantic retrieval, Mixture of Experts ranking, a four-stream exploit\/explore recall design. The kind of post that gets bookmarked. Then I opened zepto.com without logging in&hellip; Continue reading Zepto&#8217;s LLM Search Works Great. Unless You&#8217;re a New User.","og_url":"https:\/\/geekabhi.com\/blog\/zeptos-llm-search-works-great-unless-youre-a-new-user\/","og_site_name":"Learner at life","article_publisher":"http:\/\/abhij89","article_published_time":"2026-06-11T17:06:42+00:00","article_modified_time":"2026-06-11T17:35:29+00:00","og_image":[{"width":1592,"height":886,"url":"https:\/\/geekabhi.com\/blog\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-11-220151.png","type":"image\/png"}],"author":"Abhishek Jain","twitter_card":"summary_large_image","twitter_creator":"@abhij89","twitter_site":"@abhij89","twitter_misc":{"Written by":"Abhishek Jain","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/geekabhi.com\/blog\/zeptos-llm-search-works-great-unless-youre-a-new-user\/","url":"https:\/\/geekabhi.com\/blog\/zeptos-llm-search-works-great-unless-youre-a-new-user\/","name":"Zepto's LLM Search Works Great. Unless You're a New User. - Learner at life","isPartOf":{"@id":"https:\/\/geekabhi.com\/blog\/#website"},"datePublished":"2026-06-11T17:06:42+00:00","dateModified":"2026-06-11T17:35:29+00:00","author":{"@id":"https:\/\/geekabhi.com\/blog\/#\/schema\/person\/75cf5ee8cc7d8c1a9ba81628bb57443e"},"breadcrumb":{"@id":"https:\/\/geekabhi.com\/blog\/zeptos-llm-search-works-great-unless-youre-a-new-user\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/geekabhi.com\/blog\/zeptos-llm-search-works-great-unless-youre-a-new-user\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/geekabhi.com\/blog\/zeptos-llm-search-works-great-unless-youre-a-new-user\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/geekabhi.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Zepto&#8217;s LLM Search Works Great. Unless You&#8217;re a New User."}]},{"@type":"WebSite","@id":"https:\/\/geekabhi.com\/blog\/#website","url":"https:\/\/geekabhi.com\/blog\/","name":"Learner at life","description":"Blog to help you learn stuff","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/geekabhi.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/geekabhi.com\/blog\/#\/schema\/person\/75cf5ee8cc7d8c1a9ba81628bb57443e","name":"Abhishek Jain","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/geekabhi.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/85387a40fe2c6954082743d1a8aa6c0f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/85387a40fe2c6954082743d1a8aa6c0f?s=96&d=mm&r=g","caption":"Abhishek Jain"},"description":"Engineering Lead | Full-Stack + AI Integrations | 10+ SaaS Products | HFCM 600k+ installs","sameAs":["http:\/\/www.geekabhi.com","https:\/\/twitter.com\/abhij89"]}]}},"_links":{"self":[{"href":"https:\/\/geekabhi.com\/blog\/wp-json\/wp\/v2\/posts\/373"}],"collection":[{"href":"https:\/\/geekabhi.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/geekabhi.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/geekabhi.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/geekabhi.com\/blog\/wp-json\/wp\/v2\/comments?post=373"}],"version-history":[{"count":6,"href":"https:\/\/geekabhi.com\/blog\/wp-json\/wp\/v2\/posts\/373\/revisions"}],"predecessor-version":[{"id":389,"href":"https:\/\/geekabhi.com\/blog\/wp-json\/wp\/v2\/posts\/373\/revisions\/389"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/geekabhi.com\/blog\/wp-json\/wp\/v2\/media\/375"}],"wp:attachment":[{"href":"https:\/\/geekabhi.com\/blog\/wp-json\/wp\/v2\/media?parent=373"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/geekabhi.com\/blog\/wp-json\/wp\/v2\/categories?post=373"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/geekabhi.com\/blog\/wp-json\/wp\/v2\/tags?post=373"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}