Skip to content
PROJECT 03 / 11

Turboscore

AI-powered Nordic used-car search with natural-language query and a 1–100 score.

→ Natural-language query → ranked, scored shortlist in one round-trip.

  • LLM
  • Search
  • Public product

Visit live site


A consumer-facing search and ranking tool for the Nordic used-car market. The big public listing portals have rich filters but no good way to express what people actually want in plain language: “a reliable manual diesel hatchback under 200k that won’t be a rust trap by 2028”.

What it does

You type something like that, in either language. Turboscore parses the intent — body type, drivetrain, age, budget, region, the soft stuff like “reliable” and “not a rust trap” — and ranks every matching listing on a 1–100 score derived from a learned model trained on real depreciation curves, recall histories, owner-reported reliability, and the listing’s own signals (mileage, service history, photos that look honest, price relative to comparable trim).

The result is a shortlist where the top entries are not just “matches my filters” but “would be a defensible buy given what I asked for”. That is the whole product.

┌─[ 00 QUERY ]─────────────────────────────────────────┐
│ > reliable manual diesel hatchback under 200k        │
└─────────────────────────┬────────────────────────────┘
                          ▼
┌─[ 01 INGEST ]────────────────────────────────────────┐
│                                                      │
│   scrapers ──> normalise ──> Postgres + pgvector     │
│                                                      │
└─────────────────────────┬────────────────────────────┘
                          ▼
┌─[ 02 RANK ]──────────────────────────────────────────┐
│                                                      │
│   intent LLM ──> retrieve ──> score LLM (1–100)      │
│                                                      │
└─────────────────────────┬────────────────────────────┘
                          ▼
┌─[ 03 RESULTS ]───────────────────────────────────────┐
│   ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░░░  82  VW Golf 2019             │
│   ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░░░░  77  Toyota Auris 2018        │
│   ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░░░░░  71  Škoda Octavia 2017       │
│   ▓▓▓▓▓▓▓▓▓▓▓▒░░░░░░░░  58  ...                      │
└──────────────────────────────────────────────────────┘
One round-trip: natural-language query in, ranked listings with a 1–100 score out. Scores shown are illustrative.

Tech notes

  • Frontend: SvelteKit, Norwegian-first with Swedish locale switch
  • Backend: FastAPI, PostgreSQL for the listing snapshots, pgvector for the embedding-driven semantic match
  • Scrapers: modular Python crawlers (sibling to Crawler), respectful rate limits, full diff-based snapshotting so we can show price-history trails
  • LLM layer: Claude for query interpretation; locally-hosted embedding model for the vector index; a small ranker fine-tuned on resolved sales and time-on-market
  • Hosted on the same Linux infrastructure that runs everything else here — no third-party SaaS in the hot path

Status: live in soft launch. Public-facing product, no NDA.

← back to work

esc
nav open esc close