01 / 03Product

InsightFlow AI

Applied AIData analytics

An AI business analyst for small businesses that explains what changed in their sales data, with the evidence behind every figure.

InsightFlow AI overview dashboard showing revenue, orders, customers and average order value with a revenue trend chart.
InsightFlow AI on a phone, answering a question about a fall in revenue with its evidence.
Type
Product
Area
Applied AI · Data analytics
Stack
  • Next.js
  • TypeScript
  • FastAPI
  • pandas
  • scikit-learn
  • PostgreSQL
  • Vercel

The problem

Tools that hand a spreadsheet to a language model return fluent answers whose figures may be wrong, and a wrong figure looks exactly like a right one. The output cannot be acted on without checking every number by hand.

What we built

Upload a CSV or Excel export and a deterministic analytics engine computes the metrics, trends, anomalies and where each movement came from. A language model is then allowed only to phrase what the engine found, and every answer carries the evidence and the analysis plan behind it.

Engineering notes

  1. 01

    A validator runs on every model response and discards it if it contains a figure the engine did not compute, or a causal claim the data cannot support. The rule is enforced in code, not requested in a prompt.

  2. 02

    The model receives aggregates, segment names and period labels, never the rows of the file. With the AI switched off, every analysis still works and the engine writes the explanations itself.

  3. 03

    300 backend tests, including an adversarial suite that feeds the guardrails exactly what a misbehaving model would produce.

More screens

02 / 03Product

RoleFit

Applied AISoftware

A resume optimiser for job seekers that tailors a resume to a specific role without inventing experience.

RoleFit analysis page with a readiness score of 49 beside a seven-dimension score breakdown.
RoleFit review screen on a phone, listing proposed changes with accept and reject controls.
Type
Product
Area
Applied AI · Software
Stack
  • Next.js
  • TypeScript
  • PostgreSQL
  • Drizzle ORM
  • Zod
  • Playwright
  • Vercel

The problem

AI resume tools add whatever a job posting asks for, including skills the candidate does not have. The result reads well and cannot be defended in an interview.

What we built

RoleFit parses a PDF or DOCX resume and a job description, scores the match across seven weighted dimensions, and proposes rewrites the user accepts or rejects one by one. Requirements the resume cannot evidence are listed as gaps instead of being written in, and the final document exports as PDF and DOCX.

Engineering notes

  1. 01

    An anti-fabrication validator rejects any rewrite that adds a skill, metric, employer or inflated scope not present in the source resume, tested by 27 adversarial cases.

  2. 02

    The readiness score is deterministic arithmetic, not a model opinion, so the same inputs always produce the same number and every point traces back to something the user can change.

  3. 03

    It works without any AI provider: the default engine is rule-based and runs locally. Generated files are read back and verified before download.

More screens

03 / 03Prototype

Locora

SoftwareBackend systems

A platform where families and the public report missing and found people, and trained reviewers decide what is published and which reports may describe the same person.

Locora match builder ranking one found-person report against a missing-person case, with the reasons listed in words and a button to link them as a possible match.
The Locora landing page on a phone.
Type
Prototype
Area
Software · Backend systems
Stack
  • Next.js
  • TypeScript
  • PostgreSQL
  • Drizzle ORM
  • Zod
  • Leaflet
  • Playwright

The problem

Reuniting people looks like a matching problem, which is the trap. Software that puts a percentage next to two records makes a claim it cannot support, and a false match means a family is told something untrue.

What we built

Report forms written for someone having the worst day of their life, a review queue where nothing publishes itself, a public case feed, and a match builder that ranks candidates by reasons stated in words rather than a score. Every reviewer action is written to an append-only audit trail.

Engineering notes

  1. 01

    Public queries never select contact columns at all, rather than fetching and hiding them, so a column added later cannot leak by default. Visibility is decided in a single file.

  2. 02

    A case that is not public answers 404, never 403, because a 403 would confirm the case exists. Refresh tokens rotate, and replaying a used one signs out every session.

  3. 03

    Integration tests are written as attacks against a real PostgreSQL database: can a stranger read a declined report, can a reviewer demote the last remaining reviewer.

More screens

BEHIND THE SCREENS

Every product starts the same way.

With the problem, then the simplest technology that solves it, then results checked against real conditions.

  1. 01Problem first
  2. 02The simplest technology that works
  3. 03Measured, not assumed
An engineer at a desk lit by three screens, seen from above.A laptop with code open on a quiet desk in evening light.
A large monitor showing a product interface in progress.A laptop opening in the dark, its screen glowing.
Checking a product on a phone and a laptop side by side.Code on a laptop beside a small plant.
An engineer with a laptop in a server room.Cabled server racks in a data centre.

Want to see how one of these was built?

Ask us. We are happy to walk through the engineering.

Get in touch