Building a personal agent (again)

I've wanted to filter the internet for a really long time. I even started a non-profit in 2020 called Arbiter to help me think about how to do it, and how to make the idea into a product. This is not a new idea, of course. Every time you use an ad blocker or change the default font on your browser, you're doing this at a small scale. But after working at Twitter, I got a bee in my bonnet. I wanted to figure out a way to give people control over what they consume online.

I just did some digging and found several weeks of work I did three years ago. There are lots of screens, including a completed design for an iPhone app. There are multiple videos where I pitched the concept with a compelling story arc. The old work shows the idea getting built, brick by brick, and I think the app could be helpful if I were to build it as I described. But a lot has happened in the last three years, and I’m revisiting some of the assumptions. I’m dreaming up something new. Same concept, different execution.

My previous explorations assumed an RSS Reader/newsfeed sort of approach. You’d point to your news sources, describe what you wanted to see more and less of, and the product would deliver it. In the end, it would be Google Reader with a filter option. Which is fine. But it still requires a lot of work. It’s still a 1:1 relationship with each article bombarding you in your timeline, which is still too much. Instead of going 1:1, the agent needs to pop up a level. Let me explain.

Let’s say there are 30 articles on the political news aggregator Memorandum right now. Let’s say 16 of them are about Biden or Trump directly, 5 of them are about Ukraine, and the rest are a hodgepodge of stories that aren’t as significant. One approach is to show all 30 stories with tags and metadata. The other approach is to summarise the 30 into a few bulletpoints. My old approach was the former, but I’m now convinced I should be doing the latter.

This morning I wrote up a simple bit of code. All it does is:

  1. Visit memeorandum
  2. Pull out the headlines
  3. Use chatGPT to summarise them into bulletpoints

It does so little that it’s almost not worth mentioning. And yet the experience gains are pretty tremendous considering how trivial it sounds. On the current site, I can only read about five headlines before needing to scroll, which are:

  • Inside Biden’s unusual hidden campaign
  • Biden looks to put North Carolina on ’24 map
  • Before Jan 6, Mark Meadows joked about Trump’s election claims
  • DOJ special contacts Kemp, former Arizona governmor in Jan 6 probe: reports
  • San Diego library protest against pride books draws a backlash

Pretty standard political news stuff. But the reason I can only see the top five is that each headline is adorned with a bunch of other content like links to people tweeting about the news. But with my script, I can fit the entire news day, with more information and less cruft, in the same space. It looks like this:

  • President Biden is relying on Democratic and outside groups for his reelection campaign, rather than a centralized effort.
  • Biden is targeting North Carolina in the 2024 election, as Democrats believe Republicans cannot win the White House without it.
  • Mark Meadows, former chief of staff to Donald Trump, made jokes about Trump's baseless claims of voter fraud.
  • Georgia Governor Brian Kemp has been contacted by the special counsel investigating Trump's attempts to overturn the 2020 election.
  • A protest against LGBTQ books in a San Diego library has sparked backlash.
  • New Hampshire Governor Chris Sununu believes Republican presidential contenders can defeat Trump if they challenge him directly.
  • Three of Trump's potential rivals for the 2024 GOP nomination are proposing cuts to Social Security for younger people.
  • Republicans are criticizing Biden's handling of crime, immigration, and inflation, but face challenges in their arguments.
  • Florida Governor Ron DeSantis has faced criticism for his changing stance on vaccines and new standards for Black history education.
  • Biden's economic policies have resulted in stronger GDP growth, according to Morgan Stanley.

Some of these summaries sound about the same (such as the LGBTQ books backlash) but in some cases my summary is way more informative. For example, “Inside Biden’s unusual hidden campaign” doesn’t tell us much other than the fact that it’s unusual and hidden. But my rewrite gets at the actual story, that he is relying on outside groups rather than a centralised effort. That’s a strategic decision, with clear tradeoffs, which is a notable news story! But you wouldn’t know it from the original “unusual, hidden” headline.

I’m also thinking about the “job to be done” when it comes to political news. A lot of people, including me, aren’t checking political news to be informed citizens. It’s a way to procrastinate. It’s a way to cheer on your political sports team, and a way to work through your anxiety about the future of democracy. When you’re designing a product, you need to understand the product people think they’re buying (jeans) versus the product they’re actually buying (belonging, showing off your taste/wealth, sex appeal). If you focus too much on the literal product, and not on the job people are hiring the product for, you won’t get very far. There’s a joke that engineers would have named KFC “Dead Hot Birds” if they were asked to name it, but KFC goes well beyond that. The same will be true with this product.

So let’s say it used to take 5 minutes to catch up on the news, but my script can help people catch up in 1 minute. That’s a huge gain if people are trying to save time. But what if they’re actively trying to procrastinate and waste time? Then 5 minutes turning to 1 might actually be a pretty lousy experience. Or what about how my summaries are making the news more boring? That’s great if you’re looking for neutral news like I am. But what if you’re looking for cheerleader-style news that tells you how right you are and how evil the other side is? By that metric, my product would be a failure.

When I reach this sort of place with my product ideas, I know I’m at a good place to build a personal prototype. I can’t think about what other people would want, because I don’t even know what I want yet! The beset way to know is to build something quickly, try it out, and see what resonates. So here’s what I’m going to build:

  • Every 15 minutes, a script will pull new headlines from memeorandum
  • When I load my product, it will use chatGPT to summarise and display the headlines.

Then I’ll use it for a while and iterate from there. Fun!