Auto-Ka
Every used vehicle for sale in Québec. One place.
Auto-Ka aggregates 17,698 used cars, motorcycles, and scooters from 138 connected dealerships into one searchable inventory with automatic price-drop tracking. Live at www.auto-ka.com.
17,698
Vehicles for sale
138
Dealerships connected
83
Brands covered
18
Administrative regions
~16
Photos per vehicle
2 h
Refresh cycle
Overview
Auto-Ka is an independent aggregator of used cars, motorcycles, and scooters for sale in Québec. Rather than opening dozens of dealership websites — each with its own navigation, filters, and format — buyers search 17,698 vehicles (17,082 cars, 591 motorcycles, 25 scooters) from 138 dealerships across 18 administrative regions, 72 cities, and 83 brands. Every listing keeps its full photo gallery (about 16 photos on average), standardized specs including year, mileage, transmission, fuel, and VIN, and a direct link to the original dealer listing.
One connector per dealership platform — D2C Media, SM360, AMVOQ, EvalAuto, Convertus, PowerGo, and more, with Firecrawl and Scrapfly for sites behind Cloudflare — visits each source, normalizes every vehicle to a single schema, and syncs on a two-hour cycle. Content hashing turns sites without webhooks into event streams: new arrivals, price drops, and sales are detected automatically, and a vehicle that disappears from its source is marked sold, its page returning a true 410 Gone. Data quality stays honest: 99.6% of listings show a real price and 95.1% carry a VIN.
The backend is Python and FastAPI over SQLite; the frontend is React 18 with Vite and TypeScript in an editorial-sharp design. A server-side SEO layer renders complete HTML with JSON-LD on every route, exposing 18,475 indexable URLs through dynamic sitemaps, plus an on-demand PDF market report. The app runs on MacLustr cluster node M4M64b under PM2 (web server, sync watcher, tunnel) and is exposed via ngrok at www.auto-ka.com.
Key Features
Full vehicle search
Filter by make, model, year, price, mileage, fuel, drivetrain, region, city, and dealership, with faceted values and sorting served by the API.
Two-hour sync cycle
A PM2 watcher resynchronizes all 138 sources every two hours; content hashing detects new arrivals, changes, and sales with a two-sync grace period and per-source drift detection.
Price-drop tracking
Every asking-price change is timestamped into a price history shown on the vehicle page, and recent price drops are surfaced on the live market dashboard.
Three verticals, one engine
A kind field (auto / moto / scooter) runs through the whole pipeline — connectors, database, API, and frontend — with dedicated motorcycle and scooter tabs fed by 13 PowerGo dealerships.
Programmatic SEO
Server-rendered HTML on every route with unique titles, JSON-LD Car and Motorcycle markup, and roughly 900 interlinked pages by make, model, region, city, and body type — 18,475 indexable URLs in dynamic sitemaps.
Live market dashboard
Summary tiles, price distribution, breakdowns by region, brand, and body type, recent price drops, and an on-demand PDF report on the used-vehicle market.
How It Works
Dealer connectors
One adapter per dealership website platform (D2C Media, SM360, AMVOQ Focus 360, EvalAuto, Convertus VMS, ADWS, EDealer, PowerGo) with one subclass per dealer, using JSON-LD, internal JSON APIs, and sitemaps — Firecrawl and Scrapfly handle sites behind Cloudflare.
Normalization
Every listing is mapped to a single Vehicle schema: make, model, year, price, mileage, transmission, fuel, drivetrain, body type, colors, VIN, photos, region, and kind — with price, mileage, and year parsed from text, canonical brand names, city-to-region mapping, and drivetrain/fuel inference from title badges.
Diff engine
Content-hash upserts into SQLite classify each vehicle as new, changed, or sold (with a two-sync grace period), record the full price history, and detect per-source drift.
API layer
FastAPI serves filtered vehicle search, facets, full listing pages with similar vehicles, market statistics, price drops, a generated PDF report, KA ID authentication, and hub-stored favorites.
Delivery and SEO
The React 18 + Vite SPA mounts over server-rendered HTML: every public route ships complete content, unique meta tags, JSON-LD, and dynamic sitemaps, while PM2 runs the web server, the two-hour sync watcher, and the ngrok tunnel to www.auto-ka.com.
Tech Stack
Backend
Frontend
Deployment
Highlights
- 138 dealerships are connected through platform adapters — D2C Media (50 dealers), PowerGo (13), EvalAuto (11), SM360 (8), AMVOQ (6), Convertus (4), and custom connectors for networks like HGrégoire and Automobile En Direct.
- Data quality is measured and honest: 99.6% of listings display a real price, 99.7% include mileage, and 95.1% carry a VIN — nothing is ever invented.
- A vehicle that disappears from its source site is automatically marked sold and its page returns a true 410 Gone to search engines.
- Cars, motorcycles, and scooters share one pipeline via a kind field, giving motos and scooters their own dedicated tabs.
- SEO exposes 18,475 indexable URLs — 17,698 vehicle pages plus 777 search pages — through server-rendered HTML, JSON-LD, and dynamic sitemaps regenerated on the fly.
- Adding a dealership takes about six lines of code: drop a connector subclass with a source_id into autoka/connectors/ and it is auto-discovered on the next sync.
Explore Auto-Ka
Every Québec used vehicle, one searchable place — the full source is on GitHub.