← Selected work

Case 02 / 04

AI / Data

AI Matching Businesses

Project brief

An LLM-powered pipeline that turns messy business data into structured profiles, then matches and recommends partners — with every score explainable.

Timeline
2024 —
Scope
4 responsibilities
Outcome
Every recommendation ships with the reasons behind it
An analyst comparing business profiles while two business owners discuss a potential partnership
Editorial project visualization · reconstructed from the delivered workflow

The problem

Business data arrives in every shape imaginable: free-text descriptions, half-filled forms, inconsistent categories, websites that say one thing and registries that say another. Matching companies on top of that — and recommending who should talk to whom — breaks down fast if you only compare keywords.

What I built

I designed and implemented the matching pipeline end to end:

  • Normalisation with an LLM. Heterogeneous inputs become one structured representation of each business — what it does, who it serves, what it needs.
  • Retrieval. Structured profiles are searchable by meaning, so match candidates are pulled semantically instead of by exact terms.
  • Scoring. Candidates are ranked by combining semantic similarity with explicit business signals.
  • Enrichment. Missing fields are filled where the data allows, so sparse profiles still get reasonable matches.

The decision that mattered: explainability

A match nobody can explain is a match nobody trusts. Every recommendation keeps a trail — which attributes aligned, what was retrieved, how the score was composed — so the people acting on it can check the reasoning instead of taking the model’s word for it. It also made debugging honest: when a match was wrong, the trail showed which stage was wrong.

Stack

OpenAI for understanding and structuring, Python for the pipeline, PostgreSQL as the system of record.