agents/catalog-enrichment
The answer was on page 14 of a PDF nobody opened.
Your supplier sent nine usable fields. They also sent a 24-page datasheet, a folder of packaging artwork and an email thread — containing about eighty more. This agent reads all of it, and cites where every value came from.
9
populated fields
84
each with a source
Every row carries page, table and raw string · switch source documents below
The data exists. It is just not in a database.
Almost no catalog is missing information in the sense of nobody knowing it. The thread pitch is printed on a drawing. The allergen matrix is on the back of the carton. The power budget is in table 2 on page 14. The new lead time is in an email from March.
It is all in the building. It is simply in formats a database cannot query, and reading it costs a human being roughly four minutes per document.
Which is why enrichment projects historically stall. The work is not difficult, it is enormous — and the moment it is finished the suppliers issue revisions and it begins decaying.
This agent reads by layout rather than keyword, so it retrieves the value in a specific cell of a specific table rather than whatever text sits near a matching word. That distinction is the difference between extraction and guessing.
Four documents. Same product. Different truths.
Each source document class yields a different slice of the record. Note what each one cannot tell you — that is the row that escalates.
MFR-9921-DS-rev4.pdf
24-page PDF · text + tables
41
1
The value is genuinely not present in this document. The agent names the attribute, the supplier to request it from, and the document class that would satisfy it — rather than filling the gap with a figure from a comparable product.
This agent produces catalogs with holes in them, on purpose. The alternative is catalogs with confident errors in them.
Reads the documents you already have — spec sheets, packaging artwork, dimensioned drawings, certificates, and the supplier emails where half the real information lives.
Extracts by layout rather than by keyword, so a value in row 3 of table 2 on page 14 is retrieved as that value, not as adjacent prose.
Normalises every extracted value to GS1 unit codes and controlled vocabularies so records from different suppliers become genuinely comparable.
Stores the page, table and raw string behind each attribute, so any published value can be traced back to the document it came from.
Re-extracts when a supplier issues a revision, and raises a drift event rather than silently overwriting the previous value.
Infer an attribute from a similar SKU. If this product's documents do not state it, it stays empty.
Resolve a bare number into a unit. 0.285 with no unit and no context escalates rather than becoming grams.
Treat the absence of a warning as the presence of a guarantee — no 'may contain' printed is not a clean allergen record.
Pick a winner when two supplied documents disagree. Both are surfaced and neither publishes.
Extract from a document older than the evidence window configured for that attribute class.
Point it at a folder, a mailbox, or an SFTP drop. No supplier onboarding required.
Give it the documents you already have.
POST /v1/agents/catalog-enrichment/run
{
"sku": "SKU-9921",
"sources": [
"s3://feeds/sonicpro/MFR-9921-DS-rev4.pdf",
"s3://feeds/sonicpro/artwork/*.ai"
],
"min_confidence": 0.97,
"on_conflict": "surface_both"
}{
"run_id": "run_2c77ae10",
"resolved": 84,
"escalated": 1,
"conflicts": 0,
"gaps": [
{ "field": "recycled_content_pct",
"reason": "not_in_any_source",
"request_from": "supplier:sonicpro",
"document_class": "sustainability_declaration" }
]
}Watches an SFTP folder or S3 prefix and processes whatever lands.
Reads a shared supplier inbox, including attachments and reply chains.
Re-extracts when a supplier issues a new document version.
Sweeps existing sources to catch documents that changed quietly.
This agent runs first. Everything downstream is only as good as the record it produces.
Taxonomy & Categorization
taxonomy-categorization
Resolves the leaf category that determines which rules and templates apply.
Content Copywriter
content-copywriter
Writes titles and bullets per channel and locale, grounded in resolved attributes.
Template Listing
ai-template-listing
Maps the resolved record into each channel's native template and emits it.
Compliance Validator
compliance-validator
Checks every claim against the rule that governs it, and blocks what cannot be substantiated.
Image Enhancement Studio
image-enhancement-studio
Derives per-channel image assets to each marketplace's ratio and background rules.
Send the worst supplier folder you own.
Not the clean one. The folder with scanned PDFs, an XLSX nobody can open, and artwork in a proprietary format. We will enrich a thousand SKUs from it and return the resolved records, the provenance trail, and the list of gaps worth chasing.
1,000 SKUs · Read-only · Nothing published · Output in 5 working days