I Gave My AI a Memory of Every Book I've Read (Goodreads x Cognee)
Description and use
The author built a Cognee connector that imports a Goodreads export into AI memory, preserving reading history and opinions.
Problem
Goodreads no longer offers a public API, and its export is the only reliable way to access a user’s complete reading history, but the data is inert and cannot be queried by an AI assistant.
Outcome
The connector ingests the entire Goodreads library, preserves multiple reads per book, links books by shelves and authors, supports incremental sync via merge, and deletes entries when removed from Goodreads.
Workflow
- 1. Export library from Goodreads (Settings → Import/Export → "Export Library").
- 2. Run the Cognee connector:
await cognee.remember(goodreads_source("goodreads_library_export.csv"), dataset_name="goodreads", primary_key="id", write_disposition="merge", max_rows_per_table=0) - 3. Query the AI:
await cognee.recall("Which books did I read about distributed systems, and what did I think of them?", datasets=["goodreads"])
Evidence
Goodreads retired its public API in 2020. The library export (Settings → Import/Export → "Export Library") is the only supported access path left — and it's actually a better one for this use case: one file, everything in it, no rate limits, no OAuth.
The connector runs end-to-end today: the full suite passes against fixtures that mirror the real export format, and the delivery tests drive a real dlt pipeline where an edited review updates its row in place and a removed book physically disappears from the destination after the _deleted tombstone.
Every book becomes one document: title, author, year, ISBN, shelves, status (read / currently reading / to-read), average rating — and the interesting part, my per-read timeline.
- Record date: 2026-11-02T08:14:14.930Z