Jacob O'Bryant
Home · Archive · Twitter · GitHub · LinkedIn
The Findka API
26 July 2021

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:

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.