Apr 04, 2022

SongBot: Deep Learning for Playlist Organisation

  • Markus
  • Remote (Singapore)
Volunteering/Community Service/Social Entreprenuership Club or Organization


SongBot (https://hungry-ardinghelli-134d3b.netlify.app/) is a web app in beta that leverages deep learning and natural language processing to automatically sort a Spotify user's songs into playlists by "vibe".

In my Spotify library, I have about 3000 songs. If I play them on shuffle, the transitions between songs will sound jarring: some happy or sad, loud or soft. I try to organise them into playlists myself, but not being an organisation master, the playlists stop sounding "coherent" after a few months, as I absent-mindedly add more songs to a preexisting playlist. Why spend hours organising them again, if a bot can sort it for you?

If this is you, you may be interested in helping build the app from private beta to general release. Currently, the clumsily-built site is here.

Type of Opportunity

Capstone Project

Application Deadline

31 May, 2022

Age Range



Potential for massive visibility and usage, scaling as large as the web and infrastructure costs allow us to. If ever entered in a data science/entrepreneurship Hackathon, this project could do enter the finalists (email me to hear rationale).

Participation Cost

No monetary cost. You pay for it in time and worker hours.

Minimum Technical Skill Needed

The tech stack includes:

  • Frontend: React.js, Gatsby, Tailwind CSS, GraphQL, TypeScript, Jest
  • Machine learning: Word2Vec, BERT (pending), K-Means Clustering
  • Backend: AWS DynamoDB, AWS Cognito, AWS Lambda + AppSync, Node.js/Python

To apply, you only need proficiency in one area (frontend/ML/backend) or have a strong technical background in other Computer Science fields, so you can learn very quickly.

The small team collaborates and architects via: LucidChart, GitHub Pull Requests/Issues, Trello.

Potential non-technical roles (marketing, web design, etc) are reviewed on a case-by-case basis: contact email below, explaining why you think you're a good fit for the project.

Time Commitment

1-10 hours weekly. Predominantly 1-3 hours, but can burst to 10 hours near deadlines. Flexible, negotiable hours in a small asynchronous team, communicating largely via GitHub Issues & Pull Requests.

Application Process Includes

  1. Fill 5-minute form here
  2. Follow-up questions via email by me
  3. Code review of some past project for adherence to best practices

Email markuszhang8@gmail.com for queries.