workabout
writing
< back to work

moodmix / 2026

2026 · Machine learning · Product

Moodmix

Tell it your mood. Wake up with the playlist.

Overview

A mood-to-music pipeline that turns a lightweight classifier into an immediate listening action — input to playlist with no dashboard dead end.

Role
ML product · classification to integration
Year
2026
Stack
Spotify API · Python · classification · recommendation
Source
GitHub ↗
Moodmix product preview

01

A prediction nobody can use is a demo

The useful part was not predicting mood in isolation, but turning that signal into something a person could actually use without extra friction. Mood is not ground truth: it is subjective and context-dependent, so a classifier trained on tidy labels inherits their tidiness and nothing more. I treated the playlist as inspired by the mood, never graded against it — predictions are suggestions, not verdicts.

02

The full loop, input to library

Input to mood classifier to track selection to the Spotify API to a playlist in the user's library. Each stage degrades gracefully so a weak signal upstream never becomes a blank screen downstream — low-confidence outputs fall back to sensible defaults, converting model uncertainty from a bug into a personality trait.

Story visual — The full loop, input to library

image slot — asset coming later

03

Surviving contact with someone else's API

Detail view — Surviving contact with someone else's API

image slot — asset coming later

Integration got the same care as inference: OAuth, token refresh, scope negotiation, rate limits, and error states for every one of them. The ML portion of the codebase is smaller than the portion whose only job is surviving Spotify — which is the honest ratio of nearly every shipped ML product.

Structure

  1. 01

    Mood input

  2. 02

    Classifier

  3. 03

    Track selection

  4. 04

    Spotify API

  5. 05

    Playlist

The result

The project became a compact example of ML as product design: infer, decide, act. The ML portion of the codebase is smaller than the portion whose only job is surviving contact with someone else's API — and from the user's side, that integration work is the product while the model is a rumor inside it.

mood classification
playlist automation
end-to-end flow

If I built it again

Moodmix taught me the notebook-to-product gap firsthand: the model earns the demo, everything else earns the user. Next I would add listening-history personalization so the same mood resolves differently for different listeners.

Further reading + source

from notebook to product↗GitHub ↗

Next project

CHEW Copilot→

2025 · AI · Experiments