Landfall — Project Story

Inspiration

Every artist finishes a song and eventually faces the same question: Where do I put this out?

Should I push it in Lagos or London? Is it better suited for TikTok or radio? Should I collaborate with another artist or release it solo?

Most of these decisions still come down to guesswork. Labels guess, managers guess, and even the AI tools available today aren't much better.

A regular LLM might confidently recommend targeting New York, but that doesn't mean it knows whether the artist actually has listeners there or whether the song would resonate with that audience. It knows how to make recommendations sound convincing, but it doesn't necessarily have the taste data to back them up.

We wanted to change that.

What if an AI agent could make release recommendations using actual audience taste data instead of relying on assumptions?

That idea became Landfall: an agentic release planner built around Qloo's taste graph. The goal is to help artists make more informed release decisions, with every market recommendation, score and insight backed by data.

The LLM handles the orchestration, but Qloo provides the intelligence behind the recommendations.

What it does

With Landfall, you select an artist, upload an unreleased track, and get a complete release plan.

Here's what it gives you:

  • Predicted fit score: Shows how well the new song aligns with the artist's existing catalogue and audience.
  • Target markets: Ranks countries based on Qloo's geographic affinity data and displays the results on an interactive choropleth globe.
  • Hook clips: Identifies the strongest 15–30 second sections of the song, ready to be cut and captioned for social media.
  • Collaborator suggestions: Recommends potential collaborators and generates a short pitch blurb.
  • Ask Landfall: Lets you ask questions about your analysis, with evidence chips showing exactly which Qloo call supports each number.
  • Compare with plain LLM: Allows you to compare Landfall's recommendations against a regular LLM and see what Qloo actually adds.

We wanted the experience to go beyond generating a report. Artists should be able to explore the results, ask questions and understand why certain recommendations were made.

How we built it

Landfall runs on a single FastAPI service with a React/Vite frontend built using Tailwind CSS and three.js. At the centre is a JSON-based action-loop agent.

On each turn, the model returns a tool call, and our backend handles the execution. We were deliberate about keeping important calculations outside the LLM. The model can orchestrate the workflow, but the code is responsible for the actual numbers.

For example, our fit score is calculated entirely in Python:

[ \text{fit} = 0.5 \cdot \text{catalog_match} + 0.5 \cdot \text{audience_match} ]

Each match uses Jaccard similarity to measure the overlap between the song's resolved tags and a taste profile:

[ J(A,B) = \frac{|A \cap B|}{|A \cup B|} ]

We built two separate pipelines to translate a song into Qloo signals.

Sound-to-taste takes acoustic features such as tempo, key and energy and maps them to relevant Qloo tags.

Lyrics-to-Qloo takes the actual lyrics into account. We transcribe the track using Whisper, extract its themes, and resolve those themes, along with named people and places, against Qloo.

This allows us to consider both how a song sounds and what the artist is actually saying.

For market discovery, we query Qloo's geographic heatmap and score countries individually using mean_affinity_rank. The results power the interactive globe, where each country is coloured according to its score.

The entire analysis runs as a live stream over Server-Sent Events (SSE), allowing users to follow the process as Landfall works through the different stages.

Keeping artists' unreleased music private

Privacy was another important consideration when building Landfall.

Artists are uploading unreleased songs, and we don't think they should have to send their creative work to multiple third-party AI providers just to understand their potential audience.

That's why we're working towards a more privacy-conscious approach to audio and lyric analysis. Our plan is to run Gemma locally through Ollama for language-based analysis and Whisper locally for transcription.

This would allow us to process audio, transcribe lyrics and extract themes without sending the underlying songs or lyrics to external AI providers.

Qloo still plays its role in the taste analysis, but our intention is to send the resolved signals needed for discovery rather than raw audio or full lyrics.

We believe artists should have more control over their unreleased work, especially when using AI tools to analyse it.

Challenges we ran into

Getting lyrics into Qloo without breaking geographic recommendations

One of our first challenges came from trying to incorporate lyric themes into geographic recommendations.

Initially, we fed the extracted lyric themes directly into the market heatmap. It seemed like a sensible approach until we noticed that Nigeria, which was the artist's home market, suddenly dropped from number one to number twenty-nine.

The issue was that abstract themes like loneliness were influencing geographic rankings in ways we hadn't anticipated.

That forced us to rethink how we used the signals. We eventually separated taste from geography: lyric themes contribute to the fit score, while named entities are used for geographic discovery.

Getting consistent fit scores

We also ran into an issue where the fit score kept changing between runs.

The LLM was selecting different "sounds-like" artists each time, which meant the catalogue match could move from 71 to 42 without any changes to the actual song.

That wasn't something we could afford in a product built around trustworthy recommendations. We decided to use Qloo's related artists as the source for comparables instead of allowing the model to select them freely.

Keeping long-running agent sessions alive

Audio processing introduced another set of challenges.

Libraries like librosa, Whisper and FFmpeg do quite a bit of heavy lifting, and running those operations directly on the event loop caused requests to stall and the browser to stop receiving updates.

We moved the expensive processing into separate threads and reworked our SSE streaming implementation.

We also discovered that our wait_for(anext(...)) ping pattern was silently cancelling the generator in some cases, causing the final result to disappear. Fixing that was an important part of making the analysis reliable.

Making the agent honest

We didn't want Ask Landfall to become another chatbot that confidently answers questions just because it can.

If someone asks for an artist's highest chart position and that information isn't available in the current analysis, the agent should say so rather than inventing an answer.

We introduced source labels for claims and numbers: Qloo, computed or estimated. Evidence chips also allow users to trace answers back to the underlying data.

We would rather have Landfall admit that it doesn't know something than give an artist a convincing but misleading recommendation.

Accomplishments we're proud of

There are a few things we're particularly happy with:

  • A grounded AI chat: Every answer carries evidence chips labelled Qloo, computed or estimated, allowing users to trace information back to its source.
  • The lyrics-to-Qloo pipeline: We can take the themes and named entities in a song and turn them into actual taste signals.
  • Code-owned scoring: Our fit formula, Jaccard matching and market aggregation are handled by deterministic Python code, making the results easier to inspect and audit.
  • The interactive globe: We built a choropleth globe that makes geographic recommendations easier to understand at a glance.
  • The plain LLM comparison: Users can see the difference between generic AI recommendations and recommendations grounded in Qloo.
  • A complete end-to-end experience: We brought together the agent, audio analysis, chat and frontend into a working product within a tight deadline.

What we learned

The biggest lesson for us was that grounding is the product.

It's relatively easy to build an AI application that produces convincing answers. Building one that can explain where those answers come from, produce consistent results and admit when it doesn't have enough information is a different challenge.

We also learned that an LLM doesn't need to control every part of an application. Sometimes, the best thing you can do is let the model handle orchestration and interpretation while deterministic code handles the calculations.

Another thing we became more intentional about is privacy. Unreleased music is valuable creative work, and building AI tools around it comes with a responsibility to think about where that data goes and who gets access to it.

Ultimately, a model that gives the right answer for the wrong reasons isn't something people should have to trust with important decisions.

By keeping the scoring logic in code, making evidence visible and refusing to fabricate information, we're trying to turn AI-generated guesses into recommendations artists can actually act on.

Qloo isn't just another integration in Landfall. It's the foundation of the product.

What's next for Landfall

We have a few things we'd like to take further:

  • Deterministic comparables: Make sure fit scores remain reproducible across runs.
  • Deeper market insights: Add country-level demographics and cultural context to help explain why certain markets rank higher.
  • Privacy-first local inference: Use Chrome's built-in on-device Gemma model for language-based analysis and local Whisper for audio transcription. This keeps unreleased tracks and lyrics on the user's device instead of sending them to third-party AI providers for processing.
  • Rich media release kits: Generate captioned clips alongside cover art and track artwork in a shareable release package.
  • YouTube Analytics: We've already feature-flagged the integration and want to use first-party audience data to validate our predictions.
  • More audience signals: Explore playlist placements and venue-level targeting to make release planning even more useful.

Our long-term goal is to give independent artists access to the kind of data-driven release planning that has traditionally been available to artists with labels, managers and dedicated marketing teams.

Built With

Share this project:

Updates

Submission history