Inspiration

I was listening to Taylor swift and heard songs that described exactly how I was feeling, that made me feel much more connected to those tracks. I wanted to find more music that helped me feel like that.

What it does

Users describe a mood, story, or situation in their own words, and lyrio searches the meaning behind thousands of songs to recommend the songs whose lyrics are the best match.

How we built it

We created a data pipeline that collects song metadata and lyrics, removes unusable entries, generates several meaning-based embedding-optimised descriptions for each song, based on a detailed multi-agent orchestration Codex skill, using GPT-5.6-sol and converts them into embeddings.

When someone submits a prompt, Lyrio performs semantic retrieval using cosine similarity and then uses GPT-5.6-luna to rerank the strongest candidates and explain each match.

Lyrio’s frontend was built with Next.js and TypeScript, while the API was developed with Python and FastAPI. PostgreSQL stores the artist and song data.

Challenges we ran into

The biggest challenge was defining how to represent a song’s meaning. We tested raw lyrics, summaries, musical features, different vector dimensions, and weighting methods before finding an approach that produced strong results. Semantic retrieval alone was not enough, so we added a reranker and balanced accuracy, context size, latency, and cost across different models.

Creating consistent song data was also a major challenge, so we built a structured multi-agent workflow with validation and manual review.

Accomplishments that we're proud of

We’re proud that we turned an idea without a clear technical solution into a complete working product. The matches feel really meaningful, and we built a system that can keep improving as we add more artists and songs.

What we learned

We learned that the most important thing in these types of projects is data quality, A larger model does not automatically produce a better recommendation.

We also learned how to properly make multi-agent skill based workflows, that could improve the data automatically, and know when there has to be a human in the loop to review its work.

What's next for lyrio.fm

we want to expand the artist catalog, improve matching using user-specific preferences, generate playlists that can be imported into platforms like Spotify, and add social features.

Built With

Share this project:

Updates