all work

2026

DocIntel

A document intelligence platform that answers questions over scanned and digital PDFs, with every answer traceable back to the exact page it came from.

Next.js·FastAPI·ChromaDB·Postgres

At a glance

  • Hybrid retrieval: vector search + BM25 with Reciprocal Rank Fusion
  • Cross-encoder re-ranking for precision
  • Deployed across Render, Vercel, and Chroma Cloud

The problem

Most RAG demos answer questions confidently and leave you to verify them yourself. For document-heavy workflows - contracts, reports, filings - that's not good enough. DocIntel was built around one constraint: every answer has to point back to the exact page it came from.

Ingestion

Documents come in as scanned or digital PDFs. The pipeline runs OCR and table extraction on scanned files, then classifies each document via an LLM so downstream retrieval knows what kind of document it's dealing with before a single question is asked.

Retrieval

Pure vector search misses exact terms; pure keyword search misses paraphrases. DocIntel runs both - vector similarity search against ChromaDB (Chroma Cloud in production) alongside BM25 keyword search - and combines the two result sets with Reciprocal Rank Fusion. A cross-encoder re-ranking pass then reorders the fused candidates by actual relevance to the question before anything reaches the model.

scroll to load pipeline…

Answering with receipts

Answers stream back over SSE and are always paired with inline, page-level citations and citation-grounded thumbnails - so a user isn't just told an answer, they can see exactly where it came from and check it themselves in seconds.

From prototype to production

Document metadata started as flat JSON files, which worked for a prototype and broke down fast under concurrent access. It was migrated to a Postgres-backed repository layer, and the whole app was containerized with Docker and docker-compose so the local environment matches what actually runs in production - deployed across Render, Vercel, and Chroma Cloud, with layered upload/storage/API security.

What I'd build next

Multi-document reasoning - right now each answer is grounded in a single document's context; cross-referencing claims across multiple documents is the natural next layer.