← Back to Work
Agentic SystemLive

Junction

Hyperlocal intelligence for small towns — news, events, deals, and grounded Q&A that discovers and verifies itself.

A hyperlocal platform serving news, events, deals, verified local businesses, and evidence-grounded Q&A — one town at a time, from a single codebase that works for any US town. Cold-start autonomy means a first visit to a town JNCTN has never seen triggers business discovery, source hunting, and content extraction automatically, with no human seeding at any step.

// Architecture

Stack

Astro 5 (server-rendered) + raw PostgreSQL, Docker Compose behind Traefik, plus a self-hosted OpenClaw agent gateway for comprehension tasks

Deterministic-First Ingestion

Chain deals pulled straight from Flipp's structured flyer API and RSS parsed in-process — zero LLM involvement, roughly 90% of all deals. Agents are dispatched only where a machine must actually read and understand a webpage

Trust Tiers

Every item carries a label from merchant-verified down to candidate-review-only (never rendered publicly), with a source URL, verbatim evidence quote, and confidence score required for anything agent-extracted

Cold-Start Autonomy

A first visit to an unknown town triggers Google Places business discovery, chain-deal linking, and local-source hunting automatically — the town keeps assembling itself even if the visitor never returns

// What's Actually Hard Here

The interesting engineering call here isn't the AI part — it's how little of the system depends on it. The highest-volume content (chain deals via Flipp, news via RSS) flows through deterministic code that can't hallucinate; agents are reserved for the minority of cases where a machine genuinely has to read and comprehend a webpage. That discipline was earned the hard way: a real billing incident (a misfired retry loop fired 125 agent dispatches in 30 minutes during an outage) rewrote the ingestion pipeline into today's fail-closed, cost-governed version — pinned cheap models with no fallback chain, and a 6-hour backoff instead of a 15-minute one.

[View Live Site]