appscript.dev
Blog Sheets

How I built a reading list that summarizes articles for me

Saving Northwind reading and digesting links with AI — a triage layer between the firehose and my brain.

By Awadesh Madhogaria · Published Aug 9, 2025

I was saving about 30 links a week and reading maybe four of them. The other 26 sat in a list, silently making me feel behind. A saved link is a promise to your future self — and I was breaking that promise 26 times a week.

The problem was never finding things worth reading. It was that I had no way to triage them. The pattern was familiar: I would save anything that looked interesting, fast, with no judgement; the list grew faster than any human could read it; and choosing what to actually read meant opening tabs and skimming, so I didn’t. I did not need to read more — I needed to decide better, and cheaply. So I built a layer between the firehose and my brain.

How it works

The idea is that every saved article gets summarised overnight, so each morning I triage from summaries instead of from titles. The flow runs end to end without me:

  1. The bookmarklet fires on any page and POSTs the URL and title to my Apps Script web app, which appends a row to the Reading sheet.
  2. Overnight, a time-based trigger runs the summariser.
  3. For each unsummarised row, the script fetches the page text.
  4. It sends that text to Claude with a fixed prompt: summarise in exactly five bullets.
  5. The five bullets get written back to the row.
  6. In the morning, a digest email collects everything from the previous day — title, link, and the five-bullet summary.

Saving still takes one click, and instead of 30 unread links I get one email I can read over coffee. The messy part is fetching arbitrary web pages: some sites return a paywall, some are mostly JavaScript, and some block the fetch outright. When the fetched text is too thin to summarise, the script says so plainly in the digest rather than inventing a summary. A bullet list that quietly makes things up would be worse than no list at all — so I would rather see “couldn’t read this one”.

What changed

The biggest win was upstream of the script and I did not expect it. Knowing every link would face a summary made me ask “is this actually worth saving?” before I saved it — and that question alone prunes most of the noise, including the random tweets I used to hoard. The reading itself changed too: I now read the five-bullet summary of all 30 links, not just four, and from those summaries I pick the four genuinely worth a full read. The same four, but now chosen deliberately instead of at random. The backlog guilt is gone, because the list works for me overnight.

The takeaway

When the inbound stream is bigger than your attention, the answer is rarely “read faster”. It is to build a cheap triage layer — something that turns 30 decisions into one.