LLM-Powered Product Attribute Extraction from Unstructured Marketplace Data

etsy · E-commerce · 2025 · source Agentic: yes · 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: Marketplace product attribute extraction

Etsy needed to convert unstructured titles, descriptions, and listing photos into structured product attributes across a highly diverse marketplace so search filters, comparisons, and discovery systems could work without adding seller friction.

Constraints:

Architecture

Etsy built an LLM attribute-extraction pipeline that curates listing context, prompts LLMs to extract attributes in parallel, routes requests through LiteLLM across regions, parses responses into Pydantic dataclasses, validates them with business logic, and exports structured outputs to filestores, database tables, and search systems. Evaluation combines human-labeled ground truth, LLM-generated silver labels reviewed by domain experts, performance regression checks, tracing, logging, metrics, and alerting.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  Context["Listing context builder"] --> Prompts["Parallel attribute prompts"]
  Prompts --> Router["LiteLLM regional router"]
  Router --> Validation["Pydantic validation layer"]
  Validation --> PostProcess["Post-processing job"]
  PostProcess --> Sinks["Search and data sinks"]
  Evaluation["Evaluation and observability loop"] --> Prompts
  Evaluation --> Router
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Listing context builder Combines titles, descriptions, photos, taxonomy logic, category rules, and few-shot examples into model context. Parallel attribute prompts
Parallel attribute prompts Prompt set that extracts product attributes from the assembled JSON context. Listing context builder, LiteLLM regional router
LiteLLM regional router Routes LLM requests across regions for parallelization and reduced single-cloud-location dependency. Parallel attribute prompts, Pydantic validation layer
Pydantic validation layer Parses LLM responses into dataclasses and enforces type and business-logic validation. LiteLLM regional router, Post-processing job
Post-processing job Formats validated structured attributes for downstream data and search systems. Pydantic validation layer, Search and data sinks
Search and data sinks Filestores, database tables, and search platform consumers that use inferred attributes. Post-processing job
Evaluation and observability loop Uses human labels, silver labels, performance metrics, traces, logs, alerts, and baseline comparisons to guard quality. Parallel attribute prompts, LiteLLM regional router

Data flow

Seller-provided titles, descriptions, photos, taxonomy rules, category-specific extraction rules, and few-shot examples are assembled into JSON context. The context is injected into prompts for parallel attribute extraction, routed through LiteLLM, parsed into Pydantic dataclasses, validated, post-processed, and exported to downstream search and data systems.

4 supporting quotes
“Each listing is represented as a JSON string of context information. This context is injected into a series of prompts to extract product attributes in parallel.”article, stated
“LLM requests are routed through LiteLLM to different regions, ensuring higher parallelization and removing a dependency on one singular cloud location.”article, stated
“Finally, LLM responses are parsed into Pydantic dataclasses, which provide both basic type validation and custom validation based on business logic.”article, stated
“The data is then exported to filestores, database tables, and our search platform for consumption by partner teams.”article, stated

Why this architecture

Etsy used LLMs because traditional classifiers and sequence taggers struggled with sparse long-tail attributes, while question-answering transformers still required expensive application-specific training data. The architecture focuses on context engineering, validation, and monitoring because Etsy needed scalable extraction without trusting raw LLM output directly.

3 supporting quotes
“Supervised product attribute extraction models had limited efficacy; even if we could enumerate all possible product attributes and values, many of them would be so sparse”article, stated
“Transformer-based question-answering models (e.g. AVEQA, MAVEQA ) allowed for generalization to unseen attribute values, but still required large amounts of application-specific training data.”article, stated
“This required robust evaluation frameworks/processes that measured quality through various metrics.”article, stated

Models used: foundational LLMs · high-performance, state-of-the-art LLMs · more scalable LLM

Scale

Alternatives considered (roads not taken)

Seller-required structured attributes

Rejected because: Making every field required would increase seller friction and undermine flexibility for unique items.

“most fields are not required. This reduces friction in the listing process and gives sellers the flexibility to represent their often unique items accurately.”article, stated

Search-time processing of descriptions and photos

Rejected because: Long context and image processing at query time would hurt latency for buyer search.

“passing in long context and images directly to search poses latency concerns. For these algorithms, every millisecond counts”article, stated

Traditional supervised classification and sequence tagging

Rejected because: Sparse long-tail attributes and multi-attribute extraction made them hard to scale.

“Sequence tagging approaches also had difficulty scaling to multiple attributes.”article, stated

Human-only ground-truth labeling

Rejected because: Human annotation was slow, costly, and itself error-prone across thousands of categories.

“human labeling is more time-consuming and expensive. To start scaling attribute inference across thousands of categories, we needed to come up with an automated process for labeling”article, stated

Patterns

context-engineering (prompting)

Etsy explicitly curated listing titles, descriptions, images, few-shot examples, taxonomy logic, and category rules into the prompt context for extraction.

“The core of our LLM pipeline is context engineering. We’ve worked with partners in product, merchandising, and taxonomy to ensure that the LLM has the right context for attribute extraction”article, stated

structured-output-contract (validation)

LLM outputs are parsed into Pydantic dataclasses and validated with both type checks and business logic before downstream export.

“LLM responses are parsed into Pydantic dataclasses, which provide both basic type validation and custom validation based on business logic.”article, stated

eval-driven-development (evaluation)

The team compares sample inferences against ground truth, tracks precision and recall, and terminates the pipeline when metrics drift from baselines.

“If any metrics deviate significantly, the pipeline is terminated. This process allows us to confirm that third-party LLMs are working as expected before we run production-scale inference.”article, stated

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

Domain experts review silver labels and iterate on prompts before Etsy uses them for larger evaluation datasets.

“Human-in-the-loop is still an essential part of this process: Etsy domain experts review silver labels and iterate on the prompt to ensure high quality results.”article, stated

observability-tracing (operations)

Etsy logs inference errors, exposes error metrics, alerts on failure thresholds, and samples traces in Honeycomb.

“Rather than failing the pipeline for any individual error, errors are logged, and error metrics are surfaced via our observability platform.”article, stated
“To support debugging, we log a sample of traces to HoneyComb.”article, stated

model-routing (infrastructure)

LiteLLM routes requests to different regions to improve parallelization and avoid single-region dependency.

“LLM requests are routed through LiteLLM to different regions, ensuring higher parallelization and removing a dependency on one singular cloud location.”article, stated

Tradeoffs

Infer attributes instead of requiring sellers to fill every field

Chose LLM extraction from unstructured listing data over mandatory seller-provided structured attributes.

Rationale: Etsy could improve search and comparison without increasing listing friction for unique handmade items.

“most fields are not required. This reduces friction in the listing process and gives sellers the flexibility to represent their often unique items accurately.”article, stated

Precompute structured data

Chose distill unstructured product information into structured attributes before search use over feeding long text and images directly into search at query time.

Rationale: Every millisecond matters in search, so direct query-time interpretation was too slow.

“unstructured product information needs to be distilled into structured data to power both ML models and buyer experiences.”article, stated

Use silver-label evaluation with expert review

Chose LLM-generated labels reviewed by domain experts over exclusive reliance on third-party human annotation.

Rationale: This reduced labeling cost and time while keeping expert oversight in the loop.

“we’ve started using high-performance, state-of-the-art LLMs to generate ground truth labels (often called “silver labels”).”article, stated

Continue on individual inference errors

Chose log failures and alert on thresholds over fail the entire pipeline for any individual error.

Rationale: At marketplace scale, partial inference failures are expected and should be managed through observability rather than total aborts.

“Rather than failing the pipeline for any individual error, errors are logged, and error metrics are surfaced via our observability platform.”article, stated

Gotchas (what bit them)

Unstructured product data is too slow to interpret at query time.

Root cause: Long descriptions and images are useful but expensive to process inside search request latency.

Resolution: Precompute structured attributes from unstructured listing data.

“Spending time filtering through unstructured data for every query is just not feasible.”article, stated

Human annotation is not a perfect evaluation source.

Root cause: Annotators make mistakes and labeling thousands of listings becomes slow and expensive.

Resolution: Use LLM-generated silver labels reviewed by Etsy domain experts.

“In many cases, we found that human annotators made mistakes, especially when annotating thousands of listings (after all, no one’s perfect).”article, stated

Individual inference failures cannot halt a marketplace-scale batch pipeline.

Root cause: Failures can come from code bugs, permissions, transient errors, quota limits, safety filters, and other causes.

Resolution: Log individual errors, surface metrics, and alert only when failures exceed thresholds.

“Inference itself may fail for many reasons: code bugs, permissions issues, transient errors, quota exceeded errors, safety filters, and more.”article, stated

Low error rates can still hide model-performance regressions.

Root cause: Third-party model behavior or prompt changes may degrade extraction quality without obvious pipeline errors.

Resolution: Run sample inferences against ground truth, compare precision and recall with baselines, and terminate on significant drift.

“Even if the error rate is low, it’s possible that model performance has degraded.”article, stated

Evaluation

Etsy evaluates attribute extraction with human-annotated datasets, silver labels reviewed by domain experts, precision, recall, Jaccard index, baseline comparisons, pre-production sample inference, tracing, logging, metrics, alerting, and automatic termination when metrics drift.

Metrics: precision · recall · Jaccard index · complete attribute coverage from 31% to 91% · search-filter engagement · post-click conversion rate

3 supporting quotes
“We evaluated performance by comparing LLM inferences to this human-annotated dataset and calculated metrics like precision, recall, and Jaccard index.”article, stated
“First, we run LLM inference on a sample of a ground-truth dataset, and calculate performance metrics like precision, and recall.”article, stated
“The combination of tracing, logging, metric tracking, model performance evaluation, and alerting provides a complete understanding of both pipeline health and model performance metrics”article, stated

Outcomes

The implementation targets Etsy's more than 100 million items, more than 5 million sellers, and thousands of categories, with reported target-category coverage improving from 31% to 91%.

3 supporting quotes
“In target categories, we’ve increased the number of listings with complete attribute coverage from 31% to 91%.”article, stated
“we added LLM-inferred attributes to search filters, leading to more engagement from buyers:”article, stated
“Overall post-click conversion rate increased”article, stated