8 ms·
Launch HN: Captain (YC W26) – Automated RAG for Files
Hi HN, we’re Lewis and Edgar, building Captain to simplify unstructured data search (https://runcaptain.com https://runcaptain.com). Captain automates the building and maintenance of file-based RAG pipelines. It indexes cloud storage like S3 and GCS, plus SaaS sources like Google Drive. There’s a quick walkthrough at https://youtu.be/EIQkwAsIPmc https://youtu.be/EIQkwAsIPmc.
We also put up this demo site called “Ask PG’s Essays” which lets you ask/search the corpus of pg’s essays, to get a feel for how it works: https://pg.runcaptain.com https://pg.runcaptain.com. The RAG part of this took Captain about 3 minutes to set up.
Here are some sample prompts to get a feel for the experience:
“When do we do things that don't scale? When should we be more cautious?”
https://pg.runcaptain.com/?q=When%20do%20we%20do%20things%20that%20don't%20scale%3F%20When%20should%20we%20be%20more%20cautious%3F https://pg.runcaptain.com/?q=When%20do%20we%20do%20things%20...
“Give me some advice, I'm fundraising”
https://pg.runcaptain.com/?q=Give%20me%20some%20advice%2C%20I'm%20fundraising https://pg.runcaptain.com/?q=Give%20me%20some%20advice%2C%20...
“What are the biggest advantages of Lisp”
https://pg.runcaptain.com/?q=what%20are%20the%20biggest%20advantages%20of%20Lisp https://pg.runcaptain.com/?q=what%20are%20the%20biggest%20ad...
A good production RAG pipeline takes substantial effort to build, especially for file workloads. You have to handle ETL or text extraction, chunking, embedding, storage, search, re-ranking, inference, and often compliance and observability – all while optimizing for latency and reliability. It’s a lot to manage. grep works well in some cases, but for agents, semantic search provides significantly higher performance. Cursor uses both and reports 6.5%–23.5% accuracy gains from vector search over grep (https://cursor.com/blog/semsearch https://cursor.com/blog/semsearch).
We’ve spent the past four years scaling RAG pipelines for companies, and Edgar’s work at Purdue’s NLP lab directly informed our chunking techniques. In conversations with dozens of engineers, we repeatedly saw DIY pipelines produce inconsistent results, even after weeks of tuning. Many teams lacked clarity on which retrieval strategies best fit their data.
We realized that a system to provision storage and embeddings, handle indexing, and continuously update pipelines to reflect the latest search techniques could remove the need for every team to rebuild RAG themselves. That idea became Captain.
In practice, one API call indexes URLs, cloud storage buckets, directories, or individual files. Under the hood, we’re converting everything to Markdown. For this, we’ve had good results with Gemini 3 Pro for images, Reducto for complex documents, and Extend for basic OCR. For embedding models, ‘gemini-embedding-001’ performed reasonably well at first, but we later switched to the Contextualized Embeddings from ‘voyage-context-3’. It produced more relevant results than even the newer Voyage 4 models because its chunk embeddings are encoded with awareness of the surrounding document context. We then applied Voyage’s ‘rerank-2.5’ as second-stage re-ranking, reducing 50 initial chunks to a final top 15 (configurable in Captain’s API). Dense embeddings are just half the picture and full-text search with RRF complete our hybrid retrieval. In the Captain API, these techniques are exposed through a single /query endpoint. Access controls can be configured via metadata filters, and page number citations are returned automatically.
The stack is constantly changing but the Captain API creates a standard interface for this. You can try Captain, 1 month for free, and build your own pipelines at https://runcaptain.com https://runcaptain.com. We’re looking for candid feedback, especially anything that can make it more useful, and look forward to your comments!
- jamiequint 6mo agoThis is cool, like qmd as a service with real-time integrations where it matters? How do you handle more structured data like csv/xlsx/json? Would be cool if it were possible to auto-process links to markdown (e.g. youtube, podcast, arbitrary websites, etc) a la https://github.com/steipete/summarize https://github.com/steipete/summarize (which can pull full text in addition to summarizing).
- CMLewis 6mo agoThanks, we're just starting to optimize more for the semi-structured data. So far, we've been parsing tables into Markdown and running them through the contextualized embedding model with no overlap, taking advantage of how it strings together chunks. This isn't great for big files so we're exploring agentic exploration (slow but good for more structured numerical data) and automated graph creation (promising for more relational data). Love the auto-process markdown idea, we'll add it to our roadmap :D
- jzig 6mo ago> spotty RAG :O
- vg_head 6mo agoGood looking! I didn't get to watch the video or look at docs in depth, but do the results trace back to the location of the answers in a document? Let's say it finds an answer in a PDF, and I'd like to know where in that PDF the citation is. Is that possible or intended?
- CMLewis 6mo agoGreat question, we have deterministic page # citations for PDF results and exact bounding box citations coming very soon. If you want to check out the Query API response example, here's a link: https://docs.runcaptain.com/api-reference/query/collection-v-2#response.body.search_results.page_start https://docs.runcaptain.com/api-reference/query/collection-v...
- mchusma 6mo ago