All case studies

AI app · Document processing

Upload a contract, get clean data back.

Users upload PDFs, scans or photos. The AI pulls out the dates, names, totals and terms into a fixed format, and anything it isn't sure of is highlighted for the user to confirm.

For
Startups
Built as
21-Day Build
ReactNode.jsS3GeminiZod
  1. 1File uploadedPDFs, scans or photos, stored privately against the user's account.
  2. 2Fields readThe model pulls out dates, names, totals and terms into a fixed format.
  3. 3Checked in codeEvery field is validated, so a wrong date or total can't get through.
  4. 4Unsure fields flaggedAnything the model isn't sure of is highlighted for the user to confirm.
  5. 5Saved to the appClean records the rest of the product can search and report on.
  • Every

    Field validated

    Checked in code against a fixed format before saving.

  • 1

    Review screen

    Unsure fields are highlighted next to the page they came from.

  • Queued

    When the AI is slow

    The file waits its turn instead of failing.

"Users upload contracts and invoices, then retype the important parts into forms."

The problem

The product needs data that lives in documents: contract dates, invoice totals, names and terms. Today users upload the file and then type the same information into a form, which is slow and full of typos.

A first attempt with an AI model returned different shapes of data each time, sometimes invented a total, and failed silently on scanned pages.

What we build

Files go to private storage against the user's account. The AI model is asked for a fixed set of fields, and its output is checked in code against a schema: dates must be dates, totals must add up, required fields must be present.

Each field carries a confidence flag. The user sees the extracted record with the unsure fields highlighted next to the page they came from, and confirms or corrects them before saving.

The checks built in

Output is validated in code, not just in the prompt, so a malformed answer never reaches the database.

If the AI service is slow or busy, the upload is queued and processed when it's back. Nothing is lost.

Each user's files are private to their account and removed when the account is deleted.

Typical stack

  • React
  • Node.js
  • S3
  • Gemini
  • Zod
How we build AI features for startups

Startups

AI features we buildfor startups.

Each one is built in production code, with the parts that keep it working once real users arrive.

  1. Next.jsPostgrespgvectorClaude APIIntercom
    1. 1Ticket arrivesFrom Intercom or the in-app help form.
    2. 2Sorted by topicThe model tags topic and urgency, and urgent ones jump the queue.
    3. 3Docs searchedOnly your help articles and past answers are searched for the facts.
    4. 4Reply draftedA draft that links the sources it used, or says it doesn't know.
    5. 5Agent sends itEdits are saved and become test cases for the next release.

    AI app · Customer support

    100%Answers sourced

    Support answers from your own docs, or an honest "I don't know".

    Tickets are sorted by topic and urgency, answered from your own help articles with the sources linked, and sent by a support agent who can edit the draft.

    How the support answer assistant works
  2. Next.jsPostgresOpenAI APIRedisPostHog
    1. 1User asksA plain-English question inside the product.
    2. 2Permissions checkedOnly records that user is allowed to see are ever searched.
    3. 3Answer builtThe reply links to the records it came from, so users can check it.
    4. 4Costs cappedPer-user limits and caching keep the AI bill predictable.
    5. 5Usage trackedWhich answers helped and which didn't, to guide the next change.

    AI app · In-product assistant

    EverySearch permission-checked

    Answers from each user's own data, and nobody else's.

    Users ask questions in plain English inside the product. Answers come only from records they're allowed to see, with links back to each one and a cap on AI costs.

    How the in-app data assistant works

All startup case studies

Working in 21 days from access, or your build fee back. Half paid only when it works. Full terms

Book a free 30-minute call