RAG and AI search
Answers from your own documents, with the source attached.
Retrieval-augmented generation over the data you already have: policies, contracts, tickets, transcripts, product catalogs. We build the ingestion, the retrieval, and the evaluation, so the answers hold up when someone checks.
What is our notice period to terminate the vendor contract?
hybrid search · 40 candidates → rerank → 3 · access-filtered
- [1]
MSA_2024.pdfp.14 · §11.20.91
Either party may terminate this Agreement for convenience on sixty (60) days' written notice.
- [2]
Vendor_Policy.docx§4.30.84
Any notice period shorter than thirty (30) days requires written approval from the CFO.
- [3]
Amendment_03.pdfp.20.79
Section 11.2 is amended to replace “sixty (60) days” with “ninety (90) days”.
Ninety days. The master agreement sets sixty days[1], but Amendment 3 extends it to ninety[3]. Ending it on shorter notice needs CFO approval[2].
What we build
- 01
Ingestion that survives real files
PDFs with tables, scanned pages, slide decks, video transcripts, help-desk exports. Parsed, cleaned, chunked by structure, and kept in sync when the source changes.
- 02
Retrieval you can tune
Embeddings plus keyword search, metadata filters, and a reranker. Chosen per corpus, measured against your questions, not a benchmark.
- 03
Answers with citations
Every answer links to the passage it came from. If the documents do not say it, the system says so instead of guessing.
- 04
Evaluation and guardrails
A test set built from your real questions, scored on every change. Access control at the chunk level, so people only retrieve what they are allowed to read.
What we reach for
- OpenAI, Anthropic, Gemini, open-weight models
- Qdrant, pgvector
- Hybrid BM25 + vector search
- Cross-encoder reranking
- Citation checks against the source page
- Plain code over frameworks where it is clearer
From production
How we build RAG, from systems we run.
Scoped retrieval, streamed answers
NoteTubeNoteTube parses videos, PDFs, DOCX, images, articles, and audio, chunks and embeds them into Qdrant with per-user, per-session scoping, and streams chat answers grounded in that material over server-sent events.
A citation has to be on the page
SigmaCPMIn SigmaCPM, every value the model extracts from a tender must come with a quote, and that quote must be found on the cited page. If it is not there, the value is dropped instead of guessed.
Retrieve the page before you read it
SigmaCPMSigmaCPM retrieves candidate pages before extraction, so the model reads the right pages of a tender package instead of the whole thing. Token use and cost are recorded on every call.
Vector search beyond text
Acasa SentinelAcasa Sentinel stores a 768-dimension DINOv2 embedding for every vehicle sighting in Postgres with pgvector, so a vehicle can be found across cameras even when its plate is unreadable.
Honest trade-offs
When RAG is not the answer
If the answer is a number in a database, query the database: a model reading documents is slower and less reliable than SQL. If you need the model to change how it writes rather than what it knows, that is a prompt or fine-tuning question. RAG is for answers that live in documents and have to be current and traceable.
Proof
Shipped, not pitched.
01Our product
NoteTube
A lecture becomes a study system: chat, flashcards, quizzes, all grounded in the source.
An AI learning platform that turns PDFs, YouTube lectures, recordings, and notes into a structured notebook with grounded chat, spaced-repetition flashcards, and graded quizzes.
Web · iOS · Android · Chrome extension · MCP server
02Our product
SigmaCPM
Construction project management where AI reads the tender and shows its work.
One project record for civil contractors, from tender to closeout: bids, contracts, RFIs, vendor quotes, and drawings. The AI pulls line items and bond terms out of tender PDFs and cites the page for every value.
Web · API · Chrome extension
03Case study
Acasa Sentinel
Give it a number plate. It returns the vehicle's route across a CCTV network.
A vendor-neutral video analytics system built for the Gujarat Police Hackathon Innovation Challenge 2026. It reads number plates, re-identifies vehicles by appearance across cameras, reconstructs routes, and raises watchlist alerts for an operator to confirm.
Operator console (web) · API
How we work
Build, then keep building.
- 01
Sit with the operation
We watch how the work actually happens. Inboxes, tools, handoffs. No workshop theater.
- 02
Ship the product
A working web or mobile app. Something your people can open on Monday, not a prototype graveyard.
- 03
Wire the automation
Agents and workflows on the product and the systems you already have.
- 04
Stay on it
We do not vanish after launch. The operation changes. The software should too.
Questions
RAG questions we get asked.
What is RAG and when do we need it?
Retrieval-augmented generation lets a language model answer from your documents instead of its training data. You need it when the answer lives in your own files, such as manuals, policies, contracts, and tickets, and has to be current and traceable.
Can RAG run on our own infrastructure?
Yes. We can deploy the vector store, the pipeline, and an open-weight model inside your cloud account or on-premise, so documents never leave your network.
How do you stop the model from making things up?
Better retrieval first: structure-aware chunking, hybrid search, and reranking. Then the prompt only allows answers grounded in the retrieved passages, cites them, and refuses when nothing relevant is found. We measure this on an evaluation set before launch.
How long does a first version take?
A working pilot on one document set usually takes 3–6 weeks, including an evaluation set built from your real questions. Production hardening depends on volume, access rules, and integrations.
RAG development
Bring a folder of documents and ten real questions.
We will show you what retrieval over your own data looks like, and how we would measure whether it is right.


