Perth · Western AustraliaTrust centrehello@orbitwren.com
OrbitWren
Case study — Enterprise engagement · under NDA

Uploaded PDFs, Word files, spreadsheets and scanned images are parsed into searchable, project-isolated chunks and answered over with retrieval-grounded chat.

SectorFinancial services & fintechStackReact 19 · TypeScript
Mixed document formats parsed into chunks, then answered over with cited sources
The challenge

Where it started

Due-diligence material arrives as whatever the counterparty happens to send: born-digital PDFs, Word documents, spreadsheets, and scans that are images of text. Reviewers were reading everything manually. Any assistant had to keep each project's documents strictly separate — a question asked inside one engagement must never retrieve from another.

What it does

Mixed-format ingestion

PDF, Word, Excel and scanned images all enter the same pipeline, with OCR for pages that are images of text.

Project isolation

Each engagement's documents are sealed from every other, enforced in retrieval rather than filtered afterwards.

Grounded chat

Questions are answered over the indexed corpus, with answers traceable back to the source material.

Background processing

Parsing, embedding and indexing run as queued jobs, so a large upload never blocks the interface.

Role-based access

Guard-based permissions on every endpoint, applied server-side.

Search across a corpus

Reviewers query a body of documents instead of reading each one end to end.

Architecture

The approach

  1. 01

    Built an ingestion pipeline handling PDF, DOCX, Excel and image input, with OCR for scanned pages, normalising all of it into searchable chunks.

  2. 02

    Made project isolation a property of retrieval rather than a filter applied afterwards, so a query cannot reach documents outside its own engagement.

  3. 03

    Implemented retrieval-grounded chat over the indexed corpus using a vector store alongside the relational data, so answers are traceable to source material.

  4. 04

    Moved parsing, embedding and indexing to background workers with a queue, keeping large uploads off the request path.

  5. 05

    Secured the API with token auth and role- and guard-based access control, and shipped it containerised through an automated pipeline.

Stack
  • React 19
  • TypeScript
  • FastAPI
  • PostgreSQL + pgvector
  • LangChain
  • Celery + Redis
  • Docker
The outcome

Where it landed

Reviewers query a corpus instead of reading it end to end, and every engagement stays sealed from every other. Heavy documents process in the background while the interface stays usable.

Capabilities used

More work

A short conversation with an engineer, not a sales qualification call. If we're the wrong people for it, we'll say so and point you somewhere better.