Case study · AureliaBeta
Turning a dead business card into a live relationship record
Building a capture-to-follow-up pipeline where optical character recognition, retrieval-grounded enrichment, and relationship scoring all have to agree in about three seconds, on a phone.
Context
What existed
before this.
Contact capture apps solve the wrong half of the problem. Digitising a card is a solved technical task; remembering why the contact mattered is not. We built Aurelia around the second half and treated scanning as the entry point rather than the product.
The problem, as constraints
- Optical character recognition on a photographed card produces noisy, unordered text with no field semantics.
- Enrichment from the open web is unreliable and will confidently return the wrong company if unconstrained.
- A relationship score is worthless if the user cannot see why it moved.
Approach
How we
built it.
The shape of the solution, described at the level a reviewing engineer could argue with.
Structured extraction runs server-side over the raw text so the field mapping can be improved without shipping a new app build.
Enrichment is retrieval-grounded with mandatory source attribution, so every claim in a company brief can be traced to a page.
Scoring uses only observable signals, data completeness and interaction recency, so it can be explained in one sentence.
The free tier deliberately excludes model calls, which keeps unit economics viable without a paywall on the core capture flow.
Decision records
Every call,
with what we rejected.
These are the calls that shaped the product, each with the option we turned down and the reasoning that decided it. Where one has since looked wrong, we leave it in.
Server-side extraction rather than on-device
Field mapping accuracy improves weekly. On-device parsing would have locked each improvement behind an app store review cycle.
Mandatory source attribution on enrichment
An unsourced company brief is indistinguishable from a hallucination. Attribution makes the output auditable by the user.
Tiered access to model calls
Inference cost scales per scan. Bundling it into a free tier would make growth directly loss-making.
Outcome
Where it
stands now.
Described in words where no measurement exists yet. Market figures carry their source.
Result
- Card to structured record in roughly three seconds
- Over forty fields extracted and enriched per contact on paid tiers
- Six-stage workflow from capture through to a shareable hosted profile
Status: In beta on Android. iOS in progress.
What it runs on
Other case studies
Nine modules, one backbone, adopted one piece at a time
Engineering for an operator who does not want another GPS app
Same discipline, applied to your platform
Decision records like the ones above are a deliverable on every engagement, written as the work happens.