- The Next Input by Cylentis AI
- Posts
- The Strategy Guide: Your Personal AI Librarian
The Strategy Guide: Your Personal AI Librarian
Turn Pocket’s “digital graveyard” into a living, queryable brain.

Every founder, operator, and builder has the same guilty secret: a digital graveyard of saved articles. Pocket, Notion, bookmarks—it’s where brilliant insights go to die. The problem isn’t saving ideas, it’s retrieving and using them when you need them most.
This week, we’ll show you how to turn that graveyard into a living, personal AI librarian—a system that answers your questions with context, citations, and synthesis from your own archive.
1) The Core Concept — Beyond “search,” build a synthesizer
You’re not making a better Ctrl‑F. You’re creating a semantic librarian that can:
Understand your question (not just keywords).
Retrieve the most relevant passages across multiple articles.
Synthesize a coherent answer in your voice, with citations back to the originals.
This is a personal RAG system (Retrieval‑Augmented Generation). Think of it as a miniature “Company Brain” tuned to your reading history.
2) The Tech Stack — Good / Better / Best
Good (no‑code, fastest to ship):
Source: Pocket export or Pocket → Zapier/Make trigger
Parser: A hosted “article text extractor” (many exist)
Vector DB: Supabase (pgvector) or Pinecone (hobby tier)
LLM: Any solid instruct model (GPT‑4o‑mini / Claude Sonnet‑class)
UI: A shareable Chat page (e.g., a simple web form or Slack bot)
Better (low‑code, most flexible):
Source: Pocket API via Make/Zapier schedule + backfill
Parse & Clean: HTTP → readability extraction → boilerplate removal
Store: Supabase (documents + embeddings)
Orchestrator: LlamaIndex or LangChain
UI: Flowise/LangFlow or a lightweight Next.js/Streamlit app
Best (power user):
All of the above +
Re‑ranking model (Cohere/tt‑ranker) for sharper retrieval
Long‑context LLM for multi‑doc synthesis
Analytics: log queries, hit‑rate, “missed” questions to improve the corpus
Pick the lowest tier that gets you a working librarian this week. You can always upgrade.
3) The Ingestion Workflow — From Pocket to “Brain”
Goal: convert each saved URL into clean text chunks with embeddings + rich metadata.
Pipeline (high‑level):
Export / Fetch
One‑time backfill: Export your Pocket archive (or paginate via API).
Ongoing: Trigger on “New Item in Pocket” (Make/Zapier).
Resolve & Deduplicate
Expand short links, follow redirects; de‑dupe by normalized URL + title hash.
Extract Clean Text
Use a readability/article‑extraction step to remove nav/ads/comments.
Keep title, author, published_at, saved_at, tags, domain.
Normalize & Enrich
Create a short summary (3–5 bullets).
Auto‑tag topics (e.g., “pricing,” “growth,” “LLM evals”).
Chunking
Split into ~800–1,200 tokens per chunk with ~120 token overlap.
Store
chunk_idandchunk_indexto preserve order.
Embeddings
Generate vector embeddings for each chunk (store
embedding,model,dims).
Upsert
Write to your vector store with metadata:
doc_id, url, title, author, domain, tags[], saved_at, published_at, summary, chunk_index, text, embedding
Why this shape? It balances recall (big enough chunks for context) with precision (overlap for continuity) and lets you filter by tag/date/domain at query time.
4) The Query Workflow — How you “talk” to your librarian
Choose what you’ll actually use daily. Three good patterns:
Slack/Discord Bot (lowest friction):
@Librarian What were the best arguments against usage-based pricing I saved last year?
The bot runs retrieval → synthesis → posts an answer with 3–5 cited links.Web App (clean and focused):
One input box + an “Advanced” toggle (filters: tags, date range, domains). Good for deep work.Notion/Bookmarklet (contextual):
Embed a chat widget in your notes or use a browser bookmarklet that sends your question to the same backend.
All three share the same backend endpoint: POST /ask { query, filters } → { answer, sources[] }.
5) The “Magic Prompt” — Retrieval + Synthesis (drop‑in template)
System / Instructions
You are my Personal Librarian. Answer using ONLY the provided context chunks from my Pocket archive.
Rules:
- Synthesize across sources; do not guess.
- Cite each claim with (Title — Domain) and the original URL.
- If context is insufficient, say “I don’t have enough from your archive” and suggest a follow-up filter (tag/date/domain).
- Prefer bullets and short paragraphs; highlight contradictions.
Retriever settings
top_k = 8(start here),Filters (optional): tags, domain, saved_at range, min_relevance score,
Re-rank top 20 → top 8 if available.
Message shape to the LLM
{
"query": "What are the most defensible pricing strategies for PLG SaaS?",
"context": [
{"title":"The Ladder of Pricing Power","url":"…","domain":"…","chunk": "..."},
{"title":"Usage-Based Pricing Pitfalls","url":"…","domain":"…","chunk": "..."}
],
"instructions":"Follow the rules above."
}
Answer shape
{
"answer_md":"…synthesized answer with bullets and inline citations…",
"sources":[
{"title":"The Ladder of Pricing Power","url":"…"},
{"title":"Usage-Based Pricing Pitfalls","url":"…"}
]
}
6) The Maintenance Plan — Keep it fresh without thinking about it
Continuous Sync: Trigger on every new Pocket save to parse → chunk → embed → upsert.
Weekly Backfill Check: Re‑attempt failed URLs (timeouts/paywalls).
Link Rot Guard: Re‑crawl a small random sample weekly; if 404, keep your stored text (never rely on live pages).
Model Upgrades: Version your embeddings (
embedding_model=v1). When you upgrade, re‑embed incrementally (new items first; long tail during off‑hours).Quality Loop: Log “no‑answer/low‑confidence” queries → surface to you as a reading prompt (“Add more on: pricing psychology”).
Tag Hygiene: Auto‑tag, but allow manual edits. Your tags become powerful filters over time.
Quickstart: 90‑Minute Build (no/low‑code)
Create a Supabase project (tables:
documents,chunks).Pocket → Make Scenario:
Trigger: New Item Saved
Steps: HTTP (fetch article) → Clean text → Split into chunks → Embeddings (API) → Upsert to Supabase (REST).
/ask Endpoint:
Simple serverless function (Supabase Edge/Cloudflare Workers) that:
a) vector search (top_k=8+ filters),
b) call LLM with system rules + context,
c) return{ answer_md, sources[] }.
Slack command
/askpocket→ hits your endpoint → posts answer with citations.Add basic filters (tag/date/domain) via slash‑command parameters.
Ship this once, and your “graveyard” starts answering back.
Pro Tips & Pitfalls
Don’t over‑chunk. Too small → costs spike, context fractures.
Always cite. It builds trust and lets you revisit the originals.
Use filters. “Saved last year” or
tag:pricingdoubles precision.Cache answers. Store
{query_hash → answer}for repeated questions.Respect paywalls & copyrights. Personal use only; don’t expose content publicly.
TL;DR
You’re building a semantic librarian, not a search bar.
Pipeline: Pocket → Extract → Chunk (800–1,200t) → Embed → Vector DB.
Interface: Slack bot or simple web app; same
/askbackend.Prompt: “Use only provided context, synthesize, cite, admit gaps.”
Maintenance: Auto‑sync new saves, re‑try failures, incremental re‑embeds, quality loop.
Do this, and your decade of “saved for later” turns into an always‑awake researcher who actually remembers where you put that one perfect piece on pricing… and brings it to you in seconds.