How LotScout Works
LotScout is a platform for used car dealerships and savvy buyers that aggregates private-party vehicle listings from across the internet, enriches them with VIN decoding, AI-powered analysis, and comparable-based market valuations — so you can find underpriced inventory before your competition.
What Is LotScout?
LotScout is a B2B/B2C platform that helps used car dealerships source inventory directly from private sellers. Instead of competing at auction or relying on trade-ins, dealers can browse thousands of private-party listings from multiple classifieds sites — all in one place, updated hourly.
Every listing is automatically enriched with VIN decoding (to verify vehicle specs), AI-powered classification (to detect red flags and extract structured data from messy seller descriptions), and market valuations based on comparable listings across all platforms. The result is a scored, searchable inventory feed that surfaces the best deals first.
Individual buyers benefit too: saved search alerts notify you within minutes when a new listing matches your criteria, and market analysis tools help you understand whether a price is fair before you reach out to the seller.
Where We Source Data
LotScout monitors major classifieds platforms and local dealership websites, scanning for new listings every hour.
Craigslist
LiveTwo-phase scraper: search pages for listing URLs, then individual detail pages for full descriptions, attributes (odometer, title status, drivetrain), images, and map coordinates. Uses TLS impersonation to handle bot detection. Rate-limited to 40 requests/minute.
Method: HTML parsing + detail page fetching
Volume: 200-500 listings/region
Fields: Title, description, price, mileage, VIN, location (lat/lng), title status, seller phone, images
Facebook Marketplace
LiveExtracts listing data from server-rendered Relay JSON embedded in HTML. Uses price-range segmentation (5 buckets) since each page returns ~24 listings max. Fetches every listing's detail page for full seller descriptions, VINs, and all photos. No login required.
Method: Embedded JSON extraction + detail pages
Volume: 50-100 listings/region
Fields: Title, description, price, mileage, VIN (from text), images, seller type, location
OfferUp
LiveQueries OfferUp's public GraphQL API with two operations: feed search (GetModularFeed) and individual detail fetch (GetListingDetailByListingId). Price-range segmentation across 10 buckets maximizes coverage. Vehicle attributes come from structured vehicleAttributes fields.
Method: GraphQL API (public, no auth)
Volume: 150-300 listings/region
Fields: Title, description, price, mileage, VIN, year/make/model, transmission, drivetrain, fuel type, images
CarMax
LiveCarMax used-vehicle inventory used as dealer comp data — structured API returns complete vehicle specs and pricing, used to anchor estimated market values for popular models.
Method: REST API (structured JSON)
Volume: 150-300 listings/region
Fields: VIN, mileage, year/make/model/trim, price, images, location
AutoTrader
LiveExtracts rich structured data from Next.js server-rendered JSON on search pages — no detail page fetching needed. Includes precise coordinates, full vehicle specs, and dealer/private seller classification. Requires TLS impersonation to pass Akamai bot detection.
Method: Embedded __NEXT_DATA__ JSON extraction
Volume: 150-300 listings/region
Fields: Title, description, price, mileage, VIN, year/make/model/trim, transmission, body type, fuel type, colors, lat/lng, images
Cars.com
LiveParses the srp_results JSON blob embedded in search page HTML. All listing data is available on search pages without needing individual detail page fetches. Primarily dealer inventory with some private-party listings.
Method: Embedded search results JSON
Volume: 200-500 listings/region
Fields: Title, description, price, mileage, VIN, year/make/model/trim, transmission, fuel type, images
60+ Arizona Dealerships
LiveDirect inventory API access from 60+ dealerships across the Phoenix and Tucson metro areas, including Chapman, Larry H. Miller, AutoNation, Peoria Nissan, and others. Three platform integrations (Dealer.com, Chapman Apps, Team Velocity) cover different dealer website vendors. Always returns complete, structured data.
Method: REST APIs (Dealer.com, Chapman Apps, Team Velocity)
Volume: 50-500 per dealer
Fields: All fields: VIN, mileage, full specs, stock number, pricing, images
Data is refreshed hourly by automated scraping that runs on a local Mac with a residential IP address (required by the listing sources); the app and scoring pipeline run on Cloudflare.
How Scraping Works
Each source requires a different collection strategy. Here is what happens behind the scenes.
API-Based Collection
OfferUp uses a public GraphQL API, CarMax and dealer sites expose inventory REST endpoints. These provide the cleanest, most structured data with the highest field coverage — structured APIs return 100% of vehicle spec fields without detail page fetching.
Embedded JSON Extraction
AutoTrader embeds __NEXT_DATA__ JSON in its pages, Cars.com embeds srp_results, and Facebook embeds Relay JSON in __bbox blocks. We extract structured listing data from these server-rendered blobs without needing to execute JavaScript.
Detail Page Fetching
Craigslist, Facebook, and eBay require visiting each listing's individual page to get the full description, VIN, images, and vehicle attributes. This is slower (3-5 seconds per listing with rate limiting) but captures data not available on search pages.
TLS Impersonation
Platforms like Craigslist and AutoTrader use bot detection (Akamai, Cloudflare) that blocks standard HTTP clients. Our scrapers use TLS fingerprint impersonation to appear as a real Chrome browser, bypassing these protections without using a full browser engine.
Post-Normalization Pipeline
Every listing — regardless of source — passes through shared text extraction that mines VINs, mileage, title status, phone numbers, and urgency signals from unstructured description text. Make names are standardized (Chevy to Chevrolet, VW to Volkswagen) and implausible prices are filtered out.
Rate-Limited & Respectful
All scrapers include per-source token-bucket rate limiting (5-40 requests/minute depending on source), request delays between pages, and automatic backoff on errors. External APIs are capped at 1,000 requests/hour. We collect only publicly available listing data.
The Enrichment Pipeline
Every listing passes through a multi-step enrichment pipeline before it reaches your dashboard.
Automated Collection
Hourly Scraping Pipeline
Automated scrapers run every hour, collecting new and updated listings from 8 platforms. Each source uses a different collection technique — REST APIs (CarMax, OfferUp), embedded JSON extraction (AutoTrader, Cars.com, Facebook), HTML parsing with detail page fetching (Craigslist), auction feeds (Copart, IAAI), and direct dealer APIs (Dealer.com, Chapman Apps, Team Velocity). All scrapers are rate-limited and include error handling with graceful degradation.
Text Extraction & Normalization
Regex-Based Data Mining
Every listing passes through a post-normalization pipeline that extracts data from unstructured title and description text. This includes: VIN extraction (17-character pattern matching), mileage parsing (handles formats like "95k miles", "95,000 mi", "odom: 95000"), title status detection (salvage, rebuilt, clean, branded, flood), year extraction, phone number parsing, make normalization ("Chevy" to "Chevrolet", "VW" to "Volkswagen"), price sanity checks ($100-$500K range), and urgency signal detection ("must sell", "price reduced", "OBO", "below market").
VIN Decoding
NHTSA vPIC API
When a VIN is present — either from structured data or extracted from the description text — we decode it against the free NHTSA Vehicle Product Information Catalog to verify the exact year, make, model, engine, transmission, and trim. This catches misrepresented vehicles and fills in missing specs that sellers omitted from their listings.
AI Classification
Claude AI Analysis
Every listing is analyzed by Claude AI to extract structured data — year, make, model, trim, mileage — even when sellers use inconsistent formatting. The AI also detects red flags (salvage titles, flood damage, odometer rollback, potential scams), urgency signals ("must sell today"), and classifies seller type (private vs. dealer).
Market Valuation
Dealer-Anchored Pricing
Estimated values are anchored against live dealer pricing from 60+ Arizona dealerships, AutoTrader, and Cars.com — the same data dealers use to price-match weekly. Mileage adjustment uses a per-model regression (typically −$0.10 to −$0.30/mile) derived from the dealer comp pool. A safety discount is applied to represent realistic acquisition price below retail. Confidence is rated by comp sample count: high (5+ comps), medium (3–4), or low (2).
Deal Scoring
Profit Opportunity Ranking
After enrichment, we compare each listing's asking price to the estimated market value. Listings priced well below market receive high profit scores (70+), while overpriced listings score low. This lets you instantly spot the best deals without manually researching comparables across multiple platforms.
How We Estimate Car Values
Our market valuations are built from real listing data across all platforms we monitor.
Dealer-Anchored Valuation
Estimated values are anchored against live dealer pricing from 60+ Arizona dealerships, AutoTrader, Cars.com, and CarMax — the same comp data dealers use to price-match weekly. For each make/model/year we compute the median dealer retail price, then apply a mileage adjustment using a per-model regression (typically −$0.10 to −$0.30/mile) derived from the dealer comp pool. A safety discount is applied on top to represent a realistic acquisition price below retail.
Confidence Score
Each estimate includes a confidence rating based on the number of dealer comps found for that make/model/year: high (5+ comps), medium (3–4 comps), or low (2 comps). A popular model like a Toyota Camry will have a high-confidence estimate; a rare or recently discontinued trim may be flagged low-confidence.
Important Disclaimer
Estimated values are a reference tool based on dealer retail pricing and historical sold data — not a guarantee of what you will pay or receive in any specific transaction. Always conduct your own due diligence, including a physical inspection and vehicle history check, before purchasing any vehicle.
Known Limitations
We believe in transparency. Here is what LotScout does well and where there are gaps.
Field coverage varies by source
Not all sources provide the same data fields. Craigslist has ~60% mileage coverage (from detail page attributes + description parsing). Facebook and OfferUp have lower mileage coverage since it depends on sellers filling in vehicle details. VINs are rare on private-party platforms — only ~5-10% of Craigslist, Facebook, and OfferUp listings include them.
Estimated values are reference prices, not guarantees
Our market valuations are anchored against dealer retail prices and historical sold data — a reasonable proxy for what the market will bear, but not a guarantee of what you will pay or receive at any specific transaction. Use them as one input alongside your own inspection and knowledge of the local market.
Bot detection can affect coverage
Some platforms (eBay, AutoTrader, Craigslist) employ bot detection that can temporarily block our scrapers. When this happens, the scraper gracefully degrades — it returns whatever listings it collected before being blocked and retries on the next hourly cycle. Coverage may be lower during these periods.
Listing accuracy depends on sellers
Some listings may contain inaccurate information from the original poster — wrong year, incorrect mileage, or misleading descriptions. Our AI classification and VIN decoding catch many of these issues, but not all. Always verify vehicle details in person before purchasing.
Geographic coverage is expanding
LotScout currently covers Arizona statewide (Phoenix, Tucson, Flagstaff, Yuma, and surrounding areas). We plan to expand to additional metro areas across the Southwest as the platform grows.
55%+ of listings lack precise coordinates
Many platforms only provide city-level location (not lat/lng coordinates). LotScout uses city-based filtering rather than radius-based filtering to ensure these listings are not silently excluded from search results.
Privacy & Data Handling
Public Data Only
All listing data we collect is publicly available information posted by sellers on classifieds platforms. We do not access private accounts or non-public data.
Minimal Seller Data
We only store seller data that is publicly included in the listing — a first name, general location, and contact number when the seller includes it in their listing description. We do not scrape private profiles or non-public information.
Secure User Accounts
User accounts are protected by Supabase Auth with row-level security policies on all user-facing database tables. Your saved searches and preferences are private to your account.
For full details, see our Privacy Policy and Terms of Service.
Ready to find your next deal?
Browse listings right now — no account required.