Applied AI automation / Pistachio Internship
Catalog Intelligence Automation
An AI extraction pipeline built during my Pistachio internship to convert 20-200 page furniture catalogs into structured product records and linked product imagery.
OpenAI / OCR / YOLO / Python / Structured JSON Extraction
Highlights
- Led a three-person project team replacing manual catalog data entry with an AI-assisted extraction workflow.
- Evaluated Gemini, OpenAI, Claude, and OCR-based approaches to determine which produced the most reliable structured product data.
- Standardized the extraction pipeline around OpenAI for structured JSON output.
- Added YOLO-based image detection to extract product visuals from catalog pages and associate them with the corresponding product records.
- Reduced supported catalog-processing workflows from hours of manual work to minutes.
Problem
Furniture catalogs can contain hundreds of products spread across 20-200 pages, with product names, descriptions, dimensions, identifiers, pricing, and images embedded in layouts designed for people rather than software.
At Pistachio, turning those catalogs into usable product data required substantial manual work.
The challenge was not simply extracting text from a PDF. The system needed to turn semi-structured catalog pages into consistent product records while also identifying the correct product imagery and connecting it back to the extracted data.
What I built
During my Pistachio internship, I led a three-person team working on an automated catalog-ingestion pipeline.
We evaluated several approaches for extracting product information, including Gemini, OpenAI, Claude, and traditional OCR tools.
The goal was to determine which approach could most consistently take messy catalog content and return structured product information in a format the rest of the system could use.
After testing the alternatives, we standardized the structured extraction workflow around OpenAI, which provided the most reliable JSON output for the supported catalogs.
The resulting pipeline converted catalog content into structured product records rather than leaving the output as raw OCR text.
Connecting product data with images
Text extraction solved only part of the problem.
Furniture catalogs are highly visual, and each structured product record also needed to be associated with the correct product imagery.
I added a YOLO-based computer vision stage that detected and extracted product images from catalog pages.
Those extracted visuals could then be connected with the corresponding structured product records produced by the extraction pipeline.
That made the workflow multimodal:
catalog PDF -> product information + product imagery -> structured product dataset
rather than treating text and images as separate manual processes.
Technical approach
The project involved combining multiple AI techniques instead of relying on a single model.
Document extraction
OCR and LLM-based approaches were evaluated for turning semi-structured catalog pages into usable product information.
Structured output
The extraction workflow produced JSON product records, allowing downstream systems to consume the result programmatically instead of requiring another manual cleanup step.
Computer vision
YOLO was used to detect and extract product imagery from catalog pages.
Product association
The final workflow brought the extracted data and imagery together so each product could be represented as a structured record with its associated visual assets.
The engineering challenge was therefore not simply "run an LLM over a PDF." It was building a pipeline where several imperfect extraction steps produced a useful combined result.
Result
For the supported internal workflow, the system reduced catalog-processing work from hours to minutes.
More importantly, it replaced a largely manual process with a repeatable AI pipeline:
large catalog -> extraction -> structured JSON -> image detection -> linked product records
The project gave me experience evaluating competing AI approaches against a real business requirement rather than choosing a model based only on benchmark performance.