AI Product Intelligence Engine avatar

AI Product Intelligence Engine

Pricing

from $0.50 / 1,000 deterministic check units

Go to Apify Store
AI Product Intelligence Engine

AI Product Intelligence Engine

Pricing

from $0.50 / 1,000 deterministic check units

Rating

0.0

(0)

Developer

Peter Tomko

Peter Tomko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Categories

Security

Limited permissions

Share

CatalogSentry — Product Feed Semantic Validator

What does CatalogSentry do?

CatalogSentry scans a product feed (CSV, JSON, or Google Merchant XML) and finds the issues that field-format validators miss: a title that says "256GB" while the description says "128GB," two SKUs with the same GTIN, a product missing its brand, or two "variants" in the same item group that are actually identical. Every finding is evidence-backed — it names the exact SKU, quotes the conflicting values, and recommends a fix — never a vague "this looks off" opinion. Run it on Apify with a feed URL or a small inline product list.

Why use CatalogSentry?

Inconsistent catalogs cost merchants marketplace suspensions, confused customers, and lost conversions. Traditional feed validators check that a field exists and is the right type — they don't check that two fields agree with each other. CatalogSentry adds that layer: deterministic, explainable checks on top of your existing feed, runnable on a schedule via Apify so drift gets caught before it reaches the storefront.

How to use CatalogSentry

  1. Point feedUrl at your product feed, upload a file directly via feedFile, or pass a small products array inline for testing. If your file's own column headers don't match our field names, set columnMapping too — no need to reformat the file first.
  2. Pick which checks to run (default: the 8 deterministic checks; 7 more are opt-in).
  3. Run the Actor. Findings land in the default dataset; a summary lands in the key-value store.
  4. Review findings, fix the source data, re-run to confirm.

Input

FieldDescription
feedUrlURL of the feed to download.
feedFileUpload a feed file directly instead of a URL — resolves to a URL the same way feedUrl does.
columnMappingMap your own column names to our schema when they don't already match, e.g. {"Product Name": "title"}. Optional — most standard headers are already auto-detected.
feedFormatcsv | json | google_merchant_xml.
productsInline product records instead of feedUrl — handy for MCP tool calls.
checksWhich checks to run: missing_attributes, title_description_contradiction, duplicate_detection, variant_consistency, image_technical_qa, gtin_checksum_validator, thin_content_description, price_outlier_detector (all 8 on by default), plus 7 opt-in checks: semantic_cannibalization (deterministic, O(n²), with an optional AI-assisted embedding pass when configured), semantic_duplicate_detection / image_description_alignment / seo_keyword_gap / visual_brand_consistency / category_voice_consistency / translation_consistency (AI-assisted — no setup needed, just enable them).
requiredAttributesAttribute keys required on every product (for missing_attributes).
targetLanguagesRequired for translation_consistency — ISO codes to translate into and check for number drift, e.g. ["cs", "pl", "sk", "de"].
categoryVoiceBriefsRequired for category_voice_consistency — maps category names to a tone/positioning brief. A category with no brief is skipped, no cost.
searchQueriesReal search queries from your site, e.g. [{"query": "red running shoes"}], for catalog-gap analysis. Persisted across runs — a gap is flagged only after showing up repeatedly.
minDescriptionWordsWord-count floor for thin_content_description (default 10).
minCategorySize / priceOutlierZThresholdTuning for price_outlier_detector (defaults: 5 products, z-score 3.5).
maxProductsSafety limit on feed size per run (default 5000).
maxVisionProductsSeparate, smaller safety limit for the opt-in vision checks (default 50) — each costs one real inference call per product.
maxEstimatedCostUsdA hard ceiling on this run's projected billing, checked before any check runs. If exceeded, semantic_cannibalization's input (the one check whose cost grows with the square of catalog size) is trimmed to fit — other checks aren't auto-trimmed by this, bound those with maxVisionProducts or by disabling them. 0 = unlimited.
maxFindingsPerCheckKeeps only the highest-severity findings from each check, independently per check, up to this many — doesn't reduce cost, just keeps a noisy catalog's output focused. Nonzero values below 10 are raised to 10. 0 = unlimited.
brandStyleBriefDescribe your expected product image style (e.g. "white background, studio lighting"). Required for visual_brand_consistency — leave empty to skip it.

See .actor/input_schema.json for the full schema, and actor_input/demo--input.json for a worked example with a capacity contradiction, a duplicate GTIN, a missing brand, and an indistinguishable variant pair.

Output

Each dataset item is one finding:

{
"type": "title_description_contradiction",
"severity": "high",
"sku": "SGS24-256",
"entity": "Samsung Galaxy S24 256GB",
"evidence": "title mentions capacity [262144.0] MB; description mentions capacity [131072.0] MB.",
"explanation": "Storage/memory capacity differs between fields describing the same product.",
"recommendation": "Verify the authoritative capacity and correct the inconsistent field.",
"confidence": "high"
}

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Data table

FieldFormat
skutext
typetext
severitytext (low | medium | high)
evidencetext
recommendationtext
confidencetext (low | medium | high)

Pricing / Cost estimation

Most checks are deterministic — no inference calls — so cost is driven entirely by feed size and compute time. Enabling the optional AI-assisted check (semantic_duplicate_detection) costs slightly more per product; no setup or external account needed on your end.

Tips

  • Pass a small products array while developing a new check before pointing it at a full feed.
  • Set requiredAttributes to match your taxonomy's mandatory fields.

FAQ, disclaimers, and support

This is an early-stage tool, validated once end-to-end against a real 995-product public catalog (not yet against a real customer's own feed). Eight checks are fully deterministic (no AI inference call) and run by default. Seven more are opt-in: semantic_cannibalization is deterministic by default with an optional AI-assisted embedding pass; semantic_duplicate_detection, image_description_alignment, seo_keyword_gap, visual_brand_consistency, category_voice_consistency, and translation_consistency use this Actor's own built-in AI-assisted detection — all off by default, just enable them in checks, no configuration needed on your end. Open an issue in this repo for bugs or feature requests.