cd /news/structured-data/reading-any-marketplace-product-page… · home › topics › structured-data › article
[ARTICLE · art-143432] src=dev.to ↗ pub= topic=structured-data verified=true sentiment=· neutral

Reading any marketplace product page from a Chrome extension: JSON-LD first, selectors second

A developer building AI Product Page Optimization, a Chrome extension that reads an open product page and returns marketplace-ready title, description, and image suggestions in about 30 seconds, described the extraction pipeline behind it: parse application/ld+json Product blocks first, then fall back to URL-scoped, platform-specific DOM selectors, then apply each marketplace's field constraints. The implementation detects page language so output matches the listing locale and never auto-pastes, routing extracted data and suggestions to a dashboard for human review before publishing.

by read2 min views3 publishedOct 1, 2026

If you have ever tried to build a tool that "reads" a product page — an Amazon listing, a Shopify storefront, an eBay item, an Etsy shop page — you already know the problem: every marketplace renders the same conceptual data (title, bullets, description, images, price) in completely different DOM shapes.

We ran into this while building AI Product Page Optimization, a Chrome extension that reads the product page you already have open and returns marketplace-ready title, description, and image suggestions in about 30 seconds. This post is the technical breakdown of how the reading step works. (This article is disclosed as AI-assisted; the extraction design and constraints below are from our actual implementation.)

Most marketplaces embed structured data in the page. Before touching a single DOM selector, we look for application/ld+json blocks and parse them for Product-shaped objects:

const ldjson = Array.from(
  document.querySelectorAll('script[type="application/ld+json"]')
).map((s) => {
  try { return JSON.parse(s.textContent); } catch { return null; }
}).filter(Boolean);

Why JSON-LD first:

Product schema block rarely moves.name, images are an image array, and offers carry price/currency regardless of which marketplace you are on. But JSON-LD is never the whole story. Marketplaces routinely put richer or more current data in the DOM than in their structured data: bullet points that are not in any schema field, variant-specific copy, A/B-tested titles.

After JSON-LD, we apply platform-specific DOM selectors to fill the gaps — and the key word is scoped: we detect the marketplace from the URL first, then load only that platform's selector set.

The four surfaces we read today:

Reading the page is half the job. The other half is knowing what each marketplace will accept when you write the optimized copy back:

One more detail that surprised us: output language follows the detected page language. Cross-border catalogs mix English with other locales, and returning English suggestions for a Japanese listing page is worse than useless — it breaks the seller's workflow.

Two things worth knowing if you build this on Manifest V3:

We deliberately never auto-paste anything. Extracted data and generated suggestions land on a web dashboard with a before/after comparison, history, and optional share links — the seller copies and publishes only what they approve. Optimization is credit-based (text 1 credit, AI-enhanced image 2, keeping an original image is free; a typical product page uses about 5 credits, and new accounts start with 5 free credits).

If you are building anything that reads product pages — price trackers, feed tools, listing optimizers — the pattern is the same: structured data first, scoped selectors second, platform constraints third, and a human review step before anything goes back to the marketplace.

Try the extension: aiproductpageoptimization.com

── more in #structured-data 4 stories · sorted by recency
── more on @ai product page optimization 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/reading-any-marketpl…] indexed:0 read:2min 2026-10-01 · —