Skip to content
← All client work/SaaS · Local AI
Full SaaSSaaS · Local AI

Event data platform case studyScattered event pages became a searchable catalog, collected and de-duplicated automatically.

A client needed a continuously updated, searchable database of industry events — without a copy-paste team.

ClientConference Finder · Liam
ProjectConference / Event-Intelligence Platform
My roleSenior developer
StatusFull SaaS
Discuss a similar build
Conference Finder calendar for a month with events on their start dates and a sidebar of date, location, price and attendee filters.

The real product, shown with demo data.

2 stagesFast collection and slow extraction run on separate queues, each rate-limited on its own
Local LLMPhi-3 run locally, so there is no per-page API bill as volume grows
CheckedModel output is repaired, validated and confidence-scored before a record is saved
Full SaaSSign-in, an admin back office and monitoring — not a prototype
In short

A client needed a continuously updated database of industry events from thousands of inconsistent sites. I built a full SaaS with a two-stage pipeline and a local AI model for extraction — clean, de-duplicated records at a sustainable cost.

01 · The situation

Event data is scattered and goes stale fast.

Finding relevant industry events is manual and never-ending: the data is scattered across thousands of differently-built sites, goes stale fast, and is unstructured.

02 · The challenge

Thousands of inconsistent pages, at an affordable cost.

Collect data reliably from thousands of inconsistent, often JavaScript-heavy, anti-bot-protected pages; and extract clean records from messy free-text — at a volume where paying a hosted AI per page would be far too expensive.

03 · What I built

An end-to-end event SaaS.

Discovers event pages via targeted search, collects them at scale, understands each page with a local AI model, validates and de-duplicates the results, and serves them through a fast, filterable web app — plus an admin back office for non-engineers.

Screens from the real product, captured with demo data. No client or customer data is shown.

04 · How it works

Two stages that scale independently

  1. 01DiscoverTargeted search for event pages
  2. 02CollectProxies, retries, rendered pages
  3. 03Pre-filterReject junk before AI
  4. 04AILocal LLMPhi-3, run locallyValidated JSON
  5. 05Clean & dedupDates, prices, fuzzy matching
  6. 06Catalog + adminFilterable app, back office
Fast, network-bound collection is separated from slow AI extraction. Junk pages are rejected before the expensive step, and the local model’s output is checked before anything is saved.
05 · The hard engineering

Two stages, one local model.

From a messy event page to a database-ready recordIllustrative example
Page text (after pre-filter)

“Join us for FinServ Leaders Summit — 14th Oct, ExCeL London. Early-bird passes £495 until Sept 30! Speakers TBA…”

Phi-3 + validation →
{
  "name": "FinServ Leaders Summit",
  "start_date": "2026-10-14",
  "city": "London",
  "venue": "ExCeL",
  "price": { "amount": 495, "currency": "GBP" },
  "topics": ["fintech"]
}✓ repaired, validated, scored
01

Two-stage pipeline

Fast network-bound collection separated from slow AI extraction, so each scales independently.

02

Local LLM, checked output

Microsoft Phi-3 run locally through llama.cpp. Its JSON is repaired and validated, and a record is saved only above a confidence threshold.

03

Relevance pre-filter

Rejects junk pages before the expensive AI step, plus cleaning, normalisation and fuzzy de-duplication.

04

Resilient scraping

Rotating residential proxies, retries with backoff, rendered pages for JavaScript-heavy sites, and error monitoring.

06 · Key decisions

The calls that shaped the build

Why a local model instead of a hosted API?

At this volume, paying a hosted AI per page would be far too expensive. A local model keeps costs sustainable.

How is the model’s output kept trustworthy?

Its JSON is repaired and validated, dates and prices are sanity-checked, and each record gets a confidence score. Only records above the threshold are saved.

07 · The outcome

A production SaaS with sustainable costs.

✓ A searchable event catalog with list and calendar views✓ Clean, de-duplicated event records✓ Costs kept sustainable by the local model
08 · Stack
FastAPIReact/TypeScriptMongoDBCelery/RedisLocal Phi-3 (llama.cpp)ZyteClerkSentry
Is this like your product?

Any product that turns thousands of messy web pages into clean records.

Directories & catalogscontinuously updated listings
Market intelligencestructured data from unstructured pages
High-volume AIlocal models when hosted APIs cost too much