Back to selected work
PERSONAL PROJECT · DATA ENGINEERINGpersonal

Swing Scene Radar

Dance events are scattered across accounts and websites. I built a pipeline that brings those details together without treating every model response as a fact.

126 communities and festivals · 26 countries

What I worked on

A vision LLM classifies unknown source accounts from profile screenshots. An OCR-to-LLM parsing cascade turns the source content into structured event records, with content-addressable artifact caching.

Single-call parsing was too non-deterministic for unattended ingestion. I used a 2-of-3 model consensus vote, plus a separate tiebreaker when all three disagree. A priority cascade reconciles conflicts across four source types per entity; schema validation, pre-commit hooks, and smoke tests guard the resulting records.

The documented project scope is 126 dance communities and festivals across 26 countries, refreshed automatically on a three-day smart schedule. Those figures are a CV snapshot, not a live counter. The implementation is AI-assisted.

Tools and methods Node.js · Puppeteer · LLM consensus · PostgreSQL / SQLite · Docker

Browse all work