name: oem-build-price-discover description: Automated discovery of OEM build-and-price configurator patterns. Crawls configurator flows, captures network APIs, DOM selectors, and data structures. Outputs structured discovery reports for extraction skill configuration.
OEM Build & Price Discovery
Automated discovery of OEM vehicle configurator patterns for extraction skill configuration.
What It Discovers
- URL Patterns - How the configurator encodes variants, colors, options
- API Endpoints - JSON APIs called during configuration (via CDP network interception)
- DOM Selectors - CSS selectors for prices, colors, disclaimers, features
- Data Structures - Shape of variant/color/price data in APIs or DOM
- Interaction Flow - Steps required (clicks, selections) to reveal all data
Prerequisites
CDP_SECRETandWORKER_URLfor browser automationGROQ_API_KEYfor LLM classificationcloudflare-browserskill availableBRAVE_API_KEY(optional) for web search researchPERPLEXITY_API_KEY(optional) for AI-powered research
How It Works
Phase 1: Research (Brave + Perplexity)
- Search for existing knowledge about OEM's tech stack
- "Kia Australia website technology stack"
- "Kia configurator API endpoints"
- Research common automotive configurator patterns
- Check for known CMS (AEM, Sitecore, WordPress)
- Look for developer discussions or API documentation
Phase 2: Active Discovery (CDP)
- Navigate to OEM's build-price entry URL
- Enable CDP network interception
- Discover available models/variants via DOM inspection
- For each variant:
- Navigate to variant page
- Capture API calls returning JSON
- Extract DOM structure for colors, prices, disclaimers
- Screenshot key UI states
Phase 3: Analysis (Groq)
- Classify discovered APIs and their data
- Match patterns against research findings
- Generate extraction configuration
- Output structured discovery report
Input
{
"oem_id": "kia-au",
"entry_url": "https://www.kia.com/au/shopping-tools/build-and-price.html",
"max_variants": 3,
"capture_screenshots": true
}
Output
{
"oem_id": "kia-au",
"discovered_at": "2026-02-13T10:30:00Z",
"url_patterns": {
"variant_selection": "/build-and-price.trim.{model}.html",
"color_selection": "/build-and-price.color.{model}.{variant}.html",
"complete": "/build-and-price.complete.{model}.{variant}.{interior}.{color}.html"
},
"apis": [
{
"url": "https://www.kia.com/api/v1/vehicles/{model}/variants",
"method": "GET",
"provides": ["variants", "prices"],
"sample_response": { ... }
}
],
"selectors": {
"variant_cards": ".variant-card",
"variant_name": ".variant-card .name",
"variant_price": ".variant-card .price",
"color_swatches": ".color-picker .swatch",
"color_name": ".color-picker .selected .name",
"color_price": ".color-picker .selected .price-delta",
"disclaimer": ".legal-disclaimer",
"features_list": ".features-list li"
},
"interaction_required": true,
"screenshots": [
"r2://discoveries/kia-au/variant-selection.png",
"r2://discoveries/kia-au/color-selection.png"
]
}
Storage
Discoveries are stored in:
discovered_apistable — API endpoints with schema_json (unique: oem_id, url)oems.config_json.api_docs— Comprehensive API documentation per OEMmemory/oem-discovery/{oem_id}.md— Human-readable discovery notes (agent memory)discoveries/{oem_id}.json— Machine-readable extraction config (agent memory)
The agent can be prompted: "What patterns have you discovered for Kia's configurator?"
Usage Examples
Discover Single OEM
Discover Kia Australia's build-and-price configurator patterns.
Entry URL: https://www.kia.com/au/shopping-tools/build-and-price.html
Batch Discovery
Run discovery on all active OEMs that have build-and-price pages.
Store findings in memory for extraction skill configuration.
Re-verify Existing Discovery
Re-run discovery for Hyundai AU and compare with existing patterns.
Flag any changes in URL structure or selectors.