Tools for Online Speech logo
by Jacob O'Bryant

The Findka API

This is the latest post in an ongoing series. The Future of Discovery covered our long-term vision for Findka, and The Sample Roadmap went into detail about our plans to go there by turning The Sample into a successful business. Now I'd like to connect the dots: if The Sample is our beachhead, what will we do after it's mature?

(Background: Findka is the name of our startup. The Sample is one of Findka's products.)

The Sample is powered by a general-purpose recommendation service. It provides an API so that various applications can give it user preference data and then request recommendations. We call this the Findka API. Although The Sample is our main product, the Findka API also powers Findka Essays.

The Findka API models four types of things: items, clients, ratings, and events. So, for example, whenever we import a new newsletter, we tell the Findka API to create a new item. When a new user signs up, we create a new client. When we send that user a newsletter and they give it a 1-to-5-star rating, we store that as a relationship between a client and an item. And finally, whenever a user opens an email or clicks a link in a newsletter, we store that as an event.

Events are kind of like ratings because they model some kind of relationship between a client and an item. The difference is that ratings are explicit (someone tells us what they think about an item) whereas events are implicit (we observe the client interact with an item). Ratings can include a numeric value from 0 to 1 (1 star = 0 and 5 stars = 1), and they can include arbitrary tags. When a user signs up for The Sample and mentions during the onboarding flow that they subscribe to a particular newsletter, we create a rating with a "findka:subscribed" tag.

Once per day, the Findka API server trains a machine learning model on all the data it's received. Then The Sample asks the Findka API which newsletters it should send to each user, based on the model.

At the moment, we're really just focused on The Sample. But our next step will (probably—you never know) be to open up the API so that more applications can be built on top of it. Anything that fits within the framework of "items, clients, ratings, events" is in scope. Here are some applications I'd like:

  • Bookmarks. We can sync bookmarks from other services like Pinboard and Pocket, and we can provide our own app that saves bookmarks directly to Findka. You can optionally specify a star rating, tags, and/or commentary. This isn't too different from what Pinboard already does, but this would be free. It would let people submit new items to Findka easily.

  • Bookmark recommender. Instead of seeing a queue of all my unread bookmarks, I want an interface where I get one randomish/recommended unread bookmark at a time, and I can decide if I want to read it right now or skip it. The more I skip a particular bookmark, the less often it should be recommended.

  • Music recommender. Import my listening history from Last.fm and generate playlists from it. Provide some kind of interface so I choose some seed songs and have the rest of the playlist be auto-generated. I should be able to remove songs that don't fit and then run the auto-generation again. It should also include a certain percentage of new songs that aren't in my listening history. Export to Spotify. Every week or so, I can go over my playlists and refresh them semi-automatically.

  • People recommender. Once a day or so I'd like an email with a link to someone's website or social media profile along with a list of links to their most popular or personally recommended content.

  • Priority RSS feeds. Use ratings with "findka:subscribed" tags to model everything I've subscribed to in my RSS reader (Feedbin). Provide an interface where I can assign different priorities to different feeds. Lower-priority feeds should be filtered. Instead of showing me every item, show me some kind of intelligent sample. Export a single RSS feed that includes all these filtered items so that I can consume it from Feedbin.

  • General-purpose recommender. This will be the crown jewel. It'll be a daily email like The Sample or Findka Essays, but it won't be restricted to any particular type of content. It'll use the preference data from all the other Findka-powered apps you use.

I could go on, but hopefully this is clear enough. The idea is to enable lots of little apps that all work together seamlessly via the Findka API, with various types of recommender systems that train on the data that those apps generate. Think of it as social media 2.0.

Published 26 Jul 2021

I write an occasional newsletter
about my work and ideas.

RSS feed · Archive

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.