Finding great book recommendations and manually managing library holds across platforms was a friction-heavy process. To automate my reading pipeline, I built a monthly autonomous agent that syncs with my Goodreads reading history, generates tailored recommendations, checks San Diego County Library availability, and automatically places holds — delivering a detailed email digest straight to my inbox alongside a local Streamlit dashboard to track past runs.
Kicks off two ways, then it's the same pipeline either way.
No hosted backend — everything runs locally and on a schedule.
Sample data below — this was my real recommendation in July.
The initial version of place_library_hold considered a task complete the moment
it clicked "place hold." However, UI clicks can fail silently without throwing an
exception — meaning the agent could report a successful run while OverDrive never actually
registered the hold. The workflow is updated to navigate directly to the account's
Holds page after execution, verifying that the target title actually appears
before confirming success.