Implementing Product Comparison and Discovery Features with LLMs at Scale

idealo · E-commerce · 2023 · source Agentic: no · promotional bias: low · source-backed · extracted with prompt 0.5.6 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: LLM-powered product discovery and comparison for e-commerce

idealo wanted to improve product comparison and category discovery for shoppers without building hype-driven chatbots or relying on an LLM's ungrounded world knowledge. The team needed LLM features that solved concrete user needs, used idealo's proprietary product and expert-content data, produced structured downstream outputs, and could be evaluated through both quality checks and business KPIs.

Constraints:

Architecture

idealo treated LLMs as language interfaces over product data and expert content. For product comparison, the system feeds long product-attribute lists to an LLM so it can choose the comparison-relevant attributes and highlight meaningful differences such as lower weight or higher camera resolution. For guided discovery, the system uses expert category content from the page, asks one prompt to select the next consideration, maps that consideration to available filters, then generates a user-facing question and answer options. Evaluation combines rule-based checks, traditional precision/recall where applicable, LLM-as-judge prompts, manual review over hundreds of examples, and live A/B tests against business KPIs.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  Shopper["Shopper"] --> Product_comparison_UI["Product comparison UI"]
  Shopper --> Guided_product_finder_UI["Guided product finder UI"]
  Product_comparison_UI --> Product_attribute_catalog["Product attribute catalog"]
  Product_attribute_catalog --> Comparison_attribute_selector["Comparison attribute selector"]
  Comparison_attribute_selector --> LLM_provider["LLM provider"]
  Comparison_attribute_selector --> Structured_output_parser["Structured output parser"]
  Structured_output_parser --> Product_comparison_UI
  Guided_product_finder_UI --> Next_consideration_prompt["Next-consideration prompt"]
  Expert_category_content["Expert category content"] --> Next_consideration_prompt
  Next_consideration_prompt --> LLM_provider
  Next_consideration_prompt --> Filter_mapping_prompt["Filter mapping prompt"]
  Available_filter_catalog["Available filter catalog"] --> Filter_mapping_prompt
  Filter_mapping_prompt --> LLM_provider
  Filter_mapping_prompt --> Question_and_answer_generator["Question-and-answer generator"]
  Expert_category_content --> Question_and_answer_generator
  Question_and_answer_generator --> LLM_provider
  Question_and_answer_generator --> Structured_output_parser
  Structured_output_parser --> Guided_product_finder_UI
  Evaluation_harness["Evaluation harness"] --> Rule_based_evaluation_checks["Rule-based evaluation checks"]
  Evaluation_harness --> LLM_as_judge_evaluator["LLM-as-judge evaluator"]
  Evaluation_harness --> Manual_review_set["Manual review set"]
  LLM_as_judge_evaluator --> LLM_provider
  Product_attribute_catalog --> Rule_based_evaluation_checks
  Shopper --> A_B_test_measurement["A/B test measurement"]
  Guided_product_finder_UI --> A_B_test_measurement
  A_B_test_measurement --> Evaluation_harness
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Shopper End user trying to compare products or narrow category search results. Product comparison UI, Guided product finder UI, A/B test measurement
Product comparison UI Product-page feature that displays LLM-selected attributes and highlighted product differences. Shopper, Product attribute catalog, Comparison attribute selector, Structured output parser
Product attribute catalog idealo product data containing long attribute lists for each comparable product. Product comparison UI, Comparison attribute selector, Rule-based evaluation checks
Comparison attribute selector LLM prompt workflow that extracts meaningful attributes from dozens of product specifications and determines useful differences. Product attribute catalog, Product comparison UI, LLM provider
Guided product finder UI Category-page feature that asks contextual questions and answer options to narrow search results. Shopper, Next-consideration prompt, Question-and-answer generator, A/B test measurement
Expert category content idealo proprietary buying-guide content used as grounding context for product-finder prompts. Next-consideration prompt, Question-and-answer generator
Next-consideration prompt Prompt that decides which question should be asked next to narrow product results. Expert category content, Filter mapping prompt, LLM provider
Filter mapping prompt Prompt that maps a natural-language consideration, such as dryer type, to an available idealo filter and value set. Next-consideration prompt, Available filter catalog, LLM provider, Question-and-answer generator
Available filter catalog Existing category-page filters and values that the LLM maps user considerations onto. Filter mapping prompt, Guided product finder UI
Question-and-answer generator Prompt workflow that turns selected filters and expert content into user-facing questions, answer options, and explanations. Filter mapping prompt, Expert category content, Structured output parser, Guided product finder UI
LLM provider Model service used for language understanding, summarization, structured extraction, mapping, generation, and LLM-as-judge evaluation. Comparison attribute selector, Next-consideration prompt, Filter mapping prompt, Question-and-answer generator, LLM-as-judge evaluator
Structured output parser JSON or XML contract used to pass LLM outputs into downstream product logic. Comparison attribute selector, Question-and-answer generator, Product comparison UI, Guided product finder UI
Evaluation harness Mixture of rule-based checks, traditional metrics, LLM-as-judge prompts, and manual review used to evaluate generated features. Rule-based evaluation checks, LLM-as-judge evaluator, Manual review set, A/B test measurement
Rule-based evaluation checks Deterministic checks such as verifying that actual product values appear in generated comparison tables. Evaluation harness, Product attribute catalog
LLM-as-judge evaluator Evaluation prompt that assesses output quality, relevance, instruction following, and hallucination risks for fuzzy outputs. Evaluation harness, LLM provider
Manual review set Human-reviewed example set used to build confidence that product comparison outputs did not hallucinate. Evaluation harness
A/B test measurement Experiment layer measuring live business KPIs such as bounce rate and conversion against a control group. Shopper, Guided product finder UI, Evaluation harness

Data flow

A user views either a product page or a category page. On product pages, idealo passes product attributes into an LLM-backed comparison workflow that extracts relevant attributes and highlights differences. On category pages, expert content is inserted into a next-consideration prompt, the selected consideration is mapped to an available filter, and another prompt generates a question plus answer options. Outputs are expected in structured formats such as JSON or XML so downstream logic can render product tables, filters, or evaluation results. Quality is checked with rule-based assertions, LLM-as-judge evaluations, manual hallucination review, and A/B-test metrics.

3 supporting quotes
“we started to map these two opportunities we saw and and how to address user needs and what if you then sort of prioriti prioritize by the degree to which you leverage these large language model abilities”transcript, stated
“for this we give the the the context of this rat gabber that I showed you before this expert content and we put it into the prompt”transcript, stated
“we take a large language model for that again because it's very good at that you know and it it can translate um dryer type to our available filter product type”transcript, stated

Why this architecture

The architecture deliberately narrows LLM responsibility to language-interface tasks where the model is strong: extracting salient attributes, mapping natural language to existing filters, generating structured questions, and judging fuzzy outputs. It avoids using the LLM as an all-knowing shopping database by grounding prompts in idealo's product attributes and expert content, then validating outputs with structured formats and evaluation loops.

3 supporting quotes
“it's actually beneficial to not think of large language models as this all encompassing knowledge machines but more as a language interface”transcript, stated
“we don't rely on World Knowledge but we we rely on our propri proprietary data”transcript, stated
“they can do so many things and you see all these great prototypes and blog articles and um it's it's it's just so inspiring but on the other hand it's like do you really need a large language model to do arithmetics”transcript, stated

Models used: large language models for product comparison · large language models for product finder prompt chain · LLM-as-judge evaluator · GPT-4 · Claude 2 · Claude 2.1 · OpenAI JSON mode

Scale

Alternatives considered (roads not taken)

Build a generic shopping chatbot

Rejected because: User testing showed idealo users did not necessarily want to type or read lots of text, so a chat interface did not address their actual problems.

“we user tested it and pretty quickly found out okay this is actually not really what the user needs right or at least our users don't necessarily want to type”transcript, stated
“they don't want to read a lot of text you know they have a very short attention span so like a chat interface was actually not really what was addressing any user problems”transcript, stated

Treat the LLM as a world-knowledge database

Rejected because: That increases hallucination risk and reduces trust for purchase decisions, so idealo grounded generation in proprietary data and references.

“it has this vast knowledge on so many topics but it's of course also very dangerous because it might hallucinate and it might hallucinate in a very convincing way”transcript, stated
“we don't rely on World Knowledge but we we rely on our propri proprietary data”transcript, stated

Rule-based product-comparison logic

Rejected because: The team could encode all comparison rules manually, but maintaining rules over many products and attributes would be costly.

“of course you could create all of these rules and and create a rule based system it takes a lot of effort and it's very difficult to maintain”transcript, stated

Free-form LLM output

Rejected because: Pipeline integration required outputs that downstream systems could parse and use reliably, so the team preferred JSON, XML, or strict schema outputs.

“always use structured output formats so it's for us like it's really key whatever we ask the the the llm to produce it should be in a structured format”transcript, stated
“we used Json quite a bit but we've used also XML formats that we can then use Downstream with some other logic or to feed it into another large language model”transcript, stated

Leave evaluation until after feature development

Rejected because: The team found that evaluation becomes the bottleneck once prototypes scale, so evaluation should be planned up front.

“before you start with a project you need to make up your mind how are you going to evaluate its performance”transcript, stated
“the bottleneck is always that we we cannot evaluate it um quickly enough and we cannot iterate in a in an informed way”transcript, stated

Patterns

rag-retrieval (knowledge-architecture)

idealo grounds product-finder generation in expert category content and uses proprietary product data rather than model world knowledge.

“we don't rely on World Knowledge but we we rely on our propri proprietary data”transcript, stated
“we use our expert content from the bottom of the page but we just use the large language model to create these questions and answer options”transcript, stated

prompt-chaining (workflow-orchestration)

The product finder chains a next-consideration prompt, a filter-mapping prompt, and question/answer generation.

“first we have a prompt I called it next consideration which is basically trying to find out what is the the question I should ask the user now”transcript, stated
“then we have another prompt where we actually map this information now dryer type to the available filters that we have on this category page”transcript, stated

structured-output-contract (quality)

LLM outputs are constrained to structured formats such as JSON or XML so downstream logic can consume them.

“whatever we ask the the the llm to produce it should be in a structured format so we used Json quite a bit but we've used also XML formats”transcript, stated
“you guaranteed to get your desired Json output it's not only a valid Json object it actually follows the exact schema you give it”transcript, stated

eval-driven-development (quality)

idealo treats evaluation as an up-front design concern and combines rule-based checks, LLM-as-judge prompts, manual examples, and A/B-tested business metrics.

“evaluation is key and it should be one of the first principles before you start with a project”transcript, stated
“you should probably put as much development of effort into the solution as into the evaluation”transcript, stated

human-in-the-loop-gate (governance)

Human user feedback and manual review gate feature direction and hallucination confidence before broader rollout.

“show it to users as early as possible and we we actually showed this chatbot or other applications in in qualitative user tests”transcript, stated
“we still manually went through hundreds and hundreds of examples and and in the end we got like a a really high confidence level that there are zero hallucinations”transcript, stated

Tradeoffs

Product feature selection

Chose focused product comparison and guided discovery features over generic chatbot or shopping assistant.

Rationale: User tests showed idealo users did not want a typing-heavy chat interface, while comparison and filtering were concrete shopping problems.

“we user tested it and pretty quickly found out okay this is actually not really what the user needs right or at least our users don't necessarily want to type”transcript, stated
“users want to quickly compare products right so for example if they're using if they're looking at an iPad from 2022 they want to know what is the difference”transcript, stated

Grounded language interface

Chose LLMs over idealo data and expert content over ungrounded LLM world knowledge.

Rationale: Grounding preserves the language benefits while reducing hallucination risk for purchase decisions.

“it's actually beneficial to not think of large language models as this all encompassing knowledge machines but more as a language interface”transcript, stated
“we don't rely on World Knowledge but we we rely on our propri proprietary data”transcript, stated

LLM comparison logic

Chose LLM-selected comparison attributes and differences over hand-maintained rule-based comparison logic.

Rationale: The rule-based alternative was possible but costly to build and maintain across many product categories and attributes.

“out of 70 attributes it will for example extract six or seven meaningful ones for a comparison table”transcript, stated
“of course you could create all of these rules and and create a rule based system it takes a lot of effort and it's very difficult to maintain”transcript, stated

Structured integration

Chose JSON/XML or strict schema outputs over free-form text responses.

Rationale: Structured outputs make it possible to integrate LLM outputs into downstream product logic and additional model calls.

“we used Json quite a bit but we've used also XML formats that we can then use Downstream with some other logic or to feed it into another large language model”transcript, stated
“you have a Json mode now which actually is like a strict schema mode which really follows your Json schema Key by key”transcript, stated

Evaluation investment

Chose early evaluation effort comparable to solution-building effort over prototype-first development with evaluation later.

Rationale: The team learned that iteration stalls when evaluation is not fast enough or informative enough.

“before you really start actually putting a lot of development effort into your solution you should probably put as much development of effort into the solution as into the evaluation”transcript, stated
“the bottleneck is always that we we cannot evaluate it um quickly enough and we cannot iterate in a in an informed way”transcript, stated

Gotchas (what bit them)

Hype-driven chatbot prototypes missed the actual user need.

Root cause: The team initially followed the general industry impulse to build a shopping assistant instead of validating whether idealo users wanted conversational interaction.

Resolution: Start from user problems, prototype quickly, and validate with qualitative user tests before productionizing.

3 supporting quotes
“management asked us okay we need to do something here if you asked around everyone said oh you need to build a a chatbot a shopping assistant”transcript, stated
“we user tested it and pretty quickly found out okay this is actually not really what the user needs right or at least our users don't necessarily want to type”transcript, stated
“show it to users as early as possible and we we actually showed this chatbot or other applications in in qualitative user tests”transcript, stated

LLM world knowledge creates trust and hallucination risk for purchase decisions.

Root cause: A model can answer convincingly from its own learned knowledge even when the answer is false.

Resolution: Use the model as a language interface over proprietary idealo data or retrieved/search-backed sources.

“it might hallucinate and it might hallucinate in a very convincing way right so it it it's actually people lose trust”transcript, stated
“we don't rely on World Knowledge but we we rely on our propri proprietary data”transcript, stated

Evaluation becomes the development bottleneck if it is delayed.

Root cause: Generative outputs such as question quality, answer options, and product-finder flow are fuzzy and hard to measure after the fact.

Resolution: Design evaluation alongside the feature using rule checks, traditional metrics, LLM-as-judge prompts, and business A/B metrics.

“how do you measure the quality of a question how do you measure the quality of an answer option how do you measure the flow of such a product finder”transcript, stated
“the bottleneck is always that we we cannot evaluate it um quickly enough and we cannot iterate in a in an informed way”transcript, stated

LLM-as-judge is useful but not a silver bullet.

Root cause: Judge prompts themselves require tuning and can only assess what the evaluation prompt captures.

Resolution: Treat LLM-as-judge as one evaluation technique and spend time tuning the evaluation prompt.

“it works to some degree but it's definitely not a silver bullet and you need to spend a lot of time to actually tune your evaluation prompt to make it useful”transcript, stated
“you create a prompt and where you where you instruct the model to to look at the output of of the other large language model”transcript, stated

Structured output is necessary for pipeline integration.

Root cause: Free-form generations are hard to use downstream in product logic or further LLM steps.

Resolution: Use JSON, XML, or strict schema outputs and feed those structures into downstream logic or other models.

“when you put the whole llm into a let's say pipeline do you prompt it as like give me back something technically I can use”transcript, stated
“whatever we ask the the the llm to produce it should be in a structured format so we used Json quite a bit but we've used also XML formats”transcript, stated

Evaluation

idealo evaluates LLM product features through several layers: rule-based checks for deterministic attributes, traditional metrics such as precision and recall where appropriate, LLM-as-judge prompts for fuzzy outputs, manual review of hundreds of examples to check hallucinations, and live A/B tests for business impact. The speaker emphasizes evaluation as a first principle rather than an afterthought.

Metrics: rule-based attribute-value correctness checks · precision and recall for named-entity-style tasks · LLM-as-judge quality, relevance, instruction-following, and hallucination checks · manual hallucination review over hundreds of examples · A/B-tested bounce rate · A/B-tested conversion rate

4 supporting quotes
“we could just check whether the actual values for the products are within this comparison table so this would be rule based”transcript, stated
“if it's more a named entity recognition problem you could also refer to more traditional machine learning metrics like precision and recall”transcript, stated
“we still manually went through hundreds and hundreds of examples and and in the end we got like a a really high confidence level that there are zero hallucinations”transcript, stated
“we measure the business kpis you know and bounce rate conversion rates all these kind of things and we see the difference between the two”transcript, stated

Outcomes

The source is especially useful for separating production LLM product engineering from agentic autonomy. idealo's system is not an autonomous agent; it is a grounded language-interface pipeline at e-commerce scale, backed by product data, structured outputs, evaluation prompts, manual checks, and A/B testing.

4 supporting quotes
“this is actually live on the web page and this is part of an AB test now so you need to be in a certain variant”transcript, stated
“out of 70 attributes it will for example extract six or seven meaningful ones for a comparison table”transcript, stated
“by answering like a a few questions you could narrow down your search results quite significantly”transcript, stated
“I wouldn't say there's a guarantee no um but I would argue that for example with the product comparison use case”transcript, stated