System overview · Retrieval pipeline
Ask a question in plain language; get back the exact moments in Yaqeen's video library and the passages in its written works that answer it — a video plays at that second, an article opens at its page. Here is what happens between the question and the answer.
Done once per video, ahead of time.
Every video's transcript comes from Yaqeen's transcription service already carrying
sentence-level timestamps, so we never have to align text to audio — the timing is free.
We cut each transcript into ~60-second windows that overlap by 15 seconds
(so a thought split across a boundary is still findable), and store every window as a
searchable record in GoodMem, our vector database. Each record keeps the
text plus its source: video_id, title, and start/end
seconds — everything needed to build a jump-to-the-moment YouTube link later.
Two video collections are built: one of the ~70,000 transcript moments, and a second of the 2,190 video titles. The title collection is what lets a strong title match ("Malcolm X's Legacy") lift a whole video, not just one line of it.
A third collection holds the written library — 1,002 papers, blogs, curricula, topic pages and the full text of 15 books, pulled from yaqeeninstitute.org. Each work is stored whole and GoodMem splits it server-side into ~512-character passages (64 overlapping) that each remember their article's title, kind and URL — so a hit deep inside a 400-page book still links to the right page.
The live path, every search, in well under two seconds. One search box, three tabs: All (the default) runs the video and written paths in parallel; Videos and Written content run one of them.
Four decisions that carry the quality of the results.
| Piece | What it buys us |
|---|---|
| Reranker | A raw vector match is fuzzy. The Voyage reranker re-reads each candidate against the actual question and returns a calibrated 0–1 relevance, which is what makes a meaningful cut-off possible at all. |
| Title weighting | People often search for what a video is about, not a passing line. Weighting the title 60% surfaces the right video as a whole, then points inside it. |
| Keyword index | Semantic search has a blind spot: names. "Osama bin Laden" pulls the companion "Usama ibn Zayd" instead. A direct keyword match is a certainty the model shouldn't override — so it bypasses the reranker and the threshold. |
| Relevance gate | Vector search always returns something. The 0.50 floor lets the system say "we don't cover this" — an empty result — instead of showing confident-looking but off-topic cards. It is a deliberate precision-first choice, set from a sweep over the evaluators' 142 queries: below 0.40 the gate stops rejecting off-topic questions ("how do I boil eggs") while recall no longer improves. |
| Whole works, auto-chunked | Written works are stored as one record each and chunked by GoodMem, not by us — so the same passages can later serve as grounded context for an LLM, and a book with twelve matching passages still shows as one card. |
The keyword index earning its place — a query the model alone gets wrong.
osama, bin, laden. It's injected past the gate and surfaces at
8:20 — the correct answer the model had buried.
| Layer | What we use |
|---|---|
| Vector store | GoodMem — three collections (moments, titles, written works); runs semantic search + reranking |
| Embeddings | Voyage voyage-3-large |
| Reranker | Voyage rerank-2.5 — rescores a pool of 50 candidates per collection per search; every response reports whether reranking was actually applied |
| Chunking | videos: 60-second windows, 15-second overlap · written: GoodMem default, 512 characters with 64 overlap |
| Tuning | title 0.6 / body 0.4 · relevance floor 0.50 · exact-match override · top 10 cards per search |
Snapshot of the current configuration — every weight and threshold above is a single tunable value, adjusted from live query traces.