NEXSUM_LABS
  1. Home
  2. Work
  3. A retailer enriched 8,000 product records from supplier PDFs — with humans at the gate
Book a call

[ Case study ]

Specialty retailLLM extraction pipelineSchema mappingReview queueIdempotent sync

A retailer enriched 8,000 product records from supplier PDFs — with humans at the gate

Supplier catalogs arrived as PDFs and spreadsheets with incompatible structures. Enriching the store's 8,000 products — dimensions, materials, care, compatibility — was a two-person-quarter job that never happened, and incomplete listings demonstrably didn't sell.

CLIENT a specialty online retailer — FOCUS Normalize supplier formats into one schema

AI API IntegrationsAI & AutomationAI API IntegrationsSpecialty retailRepresentative example
Client
a specialty online retailer
Industry
Specialty retail
Engagement
8 weeks — systems pod — engineer + automation specialist
Service
AI & Automation / AI API Integrations
Headline outcome
Products with complete specification data, over the 8-week enrichment run: 38% → 91%, read from Catalog completeness report

Representative examplesEvery case study in this library is an illustrative composite of the kind of engagement we deliver — written to show our method and standards, not to name clients.

Where they started

Eight thousand products across a specialist catalogue, each one expected to carry dimensions, materials, care instructions, and compatibility notes that suppliers publish inconsistently or not at all. The retailer's merchandising is one experienced person with strong opinions about accuracy, and the suppliers — dozens of them — send catalogs as PDFs and spreadsheets in structures that change mid-season. The store platform is stable and loved; the data feeding it is the problem, and everyone knows exactly which listings sell badly because their spec fields are empty.

What it was costing

Supplier catalogs arrived as PDFs and spreadsheets with incompatible structures. Enriching the store's 8,000 products — dimensions, materials, care, compatibility — was a two-person-quarter job that never happened, and incomplete listings demonstrably didn't sell.

What they could see

  • Thousands of listings were missing specification fields entirely, and the gaps concentrated in exactly the categories that convert best when complete.
  • Specification-related returns kept recurring for the same products, with customers citing dimensions or materials that turned out to be guesses.
  • Enrichment was the task everyone agreed to schedule and nobody could staff — the last serious attempt stalled in a single category.
  • Suppliers sent corrected catalogs mid-season, and the corrections never reached the listings that were already live.

The constraints we worked inside

  • Wrong specs on a product page create returns and complaints — accuracy beats completeness.
  • Suppliers update catalogs mid-season; the pipeline had to re-run without duplicating.
  • The merchandiser had to own the merge — no field updates without her approval.

What had been tried before

Seasonal data-entry staff were hired twice to work through the backlog manually.
Speed came at accuracy's expense, the wrong specs created returns that outlasted the contract, and the backlog refilled each season.
A product information management tool was purchased and partially implemented.
The PIM stored enriched data but didn't produce it; the mapping from supplier PDFs stayed manual, so it stalled at a few hundred SKUs.

What we proposed

We proposed an extraction pipeline that maps each supplier's format — however arrived — into the store's product schema, flags every conflict with existing data into a review queue, and merges only what the merchandiser approves. Nothing overwrites silently, and re-runs are idempotent so mid-season supplier updates can arrive as often as they like. The design accepts the PDFs suppliers actually send instead of wishing for structured feeds, because two suppliers would have complied and thirty wouldn't. Accuracy beats completeness: a field left empty costs a sale, a field filled wrongly costs a return and a complaint.

Just as important is what we ruled out, and why:

  • A full PIM-led replatform of catalog operationsThey already owned a PIM that wasn't the bottleneck — extraction was; another system would have added a queue without clearing one.
  • Requesting structured feeds from every supplierTwo suppliers agreed promptly, thirty didn't; waiting on feeds meant waiting another quarter with the same eight thousand incomplete records.
  • Fully automated merging without reviewWrong specs create returns and complaints; the merchandiser's approval gate was a requirement, not a preference, and the design keeps it.

How the work ran

01Normalize supplier formats into one schema

Each supplier format got an extraction mapping into the store's product schema, with per-supplier quirks documented as code, not tribal knowledge.

02Flag conflicts instead of resolving them

Where the AI's extraction disagrees with existing data, the record goes to a review queue — the system never silently overwrites the merchandiser's decisions.

03Make re-runs idempotent

Seasonal re-syncs merge by product identifier with a change log, so running twice never doubles anything.

Delivered by the systems pod — engineer + automation specialist over 8 weeks, with working increments reviewed with the client every week.

The stack, and the reasoning

LLM extraction pipeline
Supplier catalogs are unstructured prose and tables in dozens of shapes; extraction handles that variance where templates and parsers gave up.
Schema mapping
Every supplier format maps explicitly into the store's product schema, with per-supplier quirks recorded as code and comments rather than tribal memory.
Review queue
Conflicts between extracted and existing data route to the merchandiser with both values visible — the system proposes, she decides, nothing overwrites silently.
Idempotent sync
Suppliers update mid-season, so re-runs merge by product identifier with a change log; running twice must never double anything.
Eval set
A fixed sample of hand-checked records runs after every pipeline change, catching silent regressions before they reach the live catalogue.

What went wrong

Obstacle

The first full run flooded the review queue — not because extraction was wrong, but because years of existing catalog data were wrong, and the pipeline correctly flagged every clash.

Handled: We triaged the queue by bestselling SKUs, let the merchandiser set per-field trust rules for categories she knew were sound, and worked the remainder down over two weeks.

Obstacle

Two suppliers shipped their mid-season catalog updates with new column names and no changelog, which the first design would have merged as new attributes.

Handled: Format checks now diff every supplier file against its last version, and unmapped columns hold the record in review instead of inventing fields.

How we worked together

Cadence
A Monday review with the merchandiser over the queue analytics, and a written weekly progress note against the category backlog.
Client side
The merchandiser owned every approval and the per-field trust rules; the store's part-time developer handled platform questions.
Decisions
The merchandiser's call was final on any conflict — the workflow was built so her decision only ever took one click.
They provided
Sample catalogs from the messiest suppliers, approval time most mornings, and the undocumented conventions the old listings quietly followed.

What changed

The headline: products with complete specification data, over the 8-week enrichment run38% → 91%, read from Catalog completeness report. A second check: specification-related return reasons, next quarter at −22%.

The merchandiser describes her job differently: she curates instead of excavating. Complete listings stopped being a seasonal aspiration and became the default state of the catalogue, and the returns ledger stopped adding the same dimension-and-material complaints every season — a cost the finance side stopped carrying before anyone said it aloud. The returns conversation with customers changed shape too, from apologizing for guesses to answering questions the listings now preempt. When she is on holiday, the queue holds without her, which the previous two enrichment attempts never managed.

The result was read from Catalog completeness report against the pre-engagement baseline over the stated window, with a guardrail check on specification-related return reasons, next quarter. Where platform-reported numbers and business outcomes differ, this record says which layer it is quoting.

What they own now

  • The extraction pipeline with its per-supplier mapping code and comments.
  • The review queue and the merchandiser's per-field trust configuration.
  • The eval set with hand-checked records and a scheduled post-change run.
  • An idempotency runbook covering mid-season re-runs and the change log.
  • Training for the part-time developer on adding a new supplier format.

What we would do differently

We would have started with the ten best-selling categories — completeness gains there move revenue first, and we learned that from the queue analytics.

AI & AutomationAI API IntegrationsSpecialty retailLLM extraction pipeline

Next case study

A travel platform answers four languages from one support knowledge base