A continuously growing knowledge graph built from podcast RSS metadata. No audio is ever downloaded, and no transcripts are analysed yet — this is what metadata alone can support.
RSS feed → conditional GET (ETag / Last-Modified) ← unchanged feed = 304, no bytes → normalise episode metadata → extract entities (rules + confidence) → resolve identities (aliases, variants) → extract relationships → Cloudflare D1 → this site, a REST API and an MCP server
Every relationship is stored with the episode, the exact source text, the extraction rule and a confidence score. Nothing is invented: if you see an edge, there is a quote behind it. Open the “evidence” disclosure on any connection to read it.
The same graph is exposed as an MCP server (POST /mcp) with semantic tools such as search_entities, get_related_entities, get_entities_across_podcasts and find_path_between_entities, plus a JSON API under /api.
Extraction is rule-based, so recall on free-form prose is limited and a link with an uninformative domain can be typed wrongly. Confidence, the extractor name and the source text are stored precisely so a later semantic pass can correct them, and processing can be re-run at any time without duplicating anything.