DEV Community

ohmygod
ohmygod

Posted on

CrateDigger: An AI-Powered Vinyl Record Discovery Agent with Algolia Agent Studio

This is a submission for the Algolia Agent Studio Challenge: Consumer-Facing Conversational Experiences

What I Built

CrateDigger is a conversational AI agent that helps music lovers discover vinyl records through natural dialogue. Think of it as having a knowledgeable record store clerk who knows every album ever pressed, remembers your taste, and never judges you for your guilty pleasures.

The problem it solves: finding vinyl records online is painful. You either get overwhelmed by giant catalogs or limited by rigid search filters. CrateDigger lets you say things like:

  • "I'm looking for something like Boards of Canada but more upbeat"
  • "What's a good starter jazz vinyl for someone who loves hip-hop?"
  • "Find me rare pressings of Radiohead albums under $50"
  • "I'm hosting a dinner party β€” suggest 5 records that set the right mood"

The agent combines Algolia's blazing-fast search with contextual AI to deliver recommendations that feel genuinely curated, not algorithmically cold.

Demo

Live App: cratedigger.vercel.app

GitHub: github.com/ohmygod/cratedigger

Conversation Flow

User: "I just got a turntable for my birthday. I like indie rock and shoegaze. What should I buy first?"

CrateDigger: Great first turntable! Here are 5 essential starter vinyls for indie rock and shoegaze fans:

  1. 🎡 My Bloody Valentine β€” Loveless (1991) β€” The shoegaze album. The vinyl pressing from 2021 sounds incredible. β€” $34.99
  2. 🎡 Slowdive β€” Souvlaki (1993) β€” Dreamy, layered, perfect for late nights. MOV pressing. β€” $28.50
  3. 🎡 Arcade Fire β€” Funeral (2004) β€” Indie rock essential. The Merge Records pressing is the one to get. β€” $24.99
  4. 🎡 Beach House β€” Depression Cherry (2015) β€” Lush dream pop that bridges both genres beautifully. β€” $22.00
  5. 🎡 Ride β€” Nowhere (1990) β€” Proto-shoegaze perfection. Recently remastered. β€” $31.99

Want me to filter by price range, or explore a specific subgenre deeper?


User: "Nice! Do you have anything similar to Loveless but more experimental?"

CrateDigger: Going deeper into experimental territory from Loveless:

  1. 🎡 Cocteau Twins β€” Heaven or Las Vegas β€” Ethereal, boundary-pushing, gorgeous on vinyl β€” $29.99
  2. 🎡 Deafheaven β€” Sunbather β€” Shoegaze meets black metal. Wild ride. Pink vinyl edition. β€” $27.50
  3. 🎡 Have a Nice Life β€” Deathconsciousness β€” Lo-fi, haunting, deeply experimental. 2LP set. β€” $35.00

How I Used Algolia Agent Studio

Data Indexing

I indexed a catalog of 50,000+ vinyl records into Algolia with rich attributes:

{
  "objectID": "vinyl_12847",
  "artist": "My Bloody Valentine",
  "album": "Loveless",
  "year": 1991,
  "genres": ["shoegaze", "noise pop", "dream pop"],
  "mood_tags": ["dreamy", "intense", "layered", "atmospheric"],
  "pressing_details": "2021 Deluxe Remaster, 180g",
  "label": "Domino",
  "price": 34.99,
  "rarity": "common",
  "condition": "new",
  "description": "The definitive shoegaze album...",
  "similar_artists": ["Slowdive", "Ride", "Cocteau Twins"],
  "for_fans_of": ["wall of sound", "guitar textures", "Kevin Shields"]
}
Enter fullscreen mode Exit fullscreen mode

Key Algolia configuration:

  • Searchable attributes: artist, album, genres, mood_tags, description, for_fans_of
  • Facets: genres, year, price range, rarity, condition, label
  • Custom ranking: relevance β†’ popularity β†’ review score

Agent Studio Integration

The conversational agent is built with Algolia's Agent Studio, which handles:

  1. Intent Recognition β€” Parsing natural language queries into structured search parameters
  2. Contextual Search β€” Maintaining conversation history to refine recommendations
  3. Prompt Engineering β€” Custom system prompts that give the agent a knowledgeable record store clerk personality
  4. Retrieval-Augmented Responses β€” Every recommendation is backed by actual indexed data, not hallucinated. The agent queries Algolia's index in real-time and formats results conversationally.

Frontend

Built with Algolia's InstantSearch chat widget integrated into a React app:

import { InstantSearchChat } from "@algolia/instantsearch-chat";

function App() {
  return (
    <InstantSearchChat
      appId="YOUR_APP_ID"
      apiKey="YOUR_SEARCH_KEY"
      indexName="vinyl_records"
      agentId="cratedigger-agent"
      placeholder="Ask me about vinyl records..."
      welcomeMessage="Hey! I'm CrateDigger. Tell me what kind of music you are into and I will help you find the perfect vinyl."
    />
  );
}
Enter fullscreen mode Exit fullscreen mode

Why Fast Retrieval Matters

In a conversational context, speed is everything. When a user says "show me something similar but cheaper," they expect an instant response β€” not a loading spinner.

Algolia's retrieval speed (<50ms queries on a 50K record index) makes CrateDigger feel like a real conversation:

  • No awkward pauses β€” Results come back before the AI finishes generating its response text, so the agent can weave real product data into natural sentences seamlessly
  • Faceted refinement in real-time β€” When a user says "under $30," the agent applies a price filter instantly without re-searching the entire catalog
  • Typo tolerance β€” Users can type "Readiohead" or "Arcade Fier" and still get perfect results, which is critical for a chat interface where people type fast and messy
  • Multi-attribute search β€” A query like "chill Japanese ambient vinyl" hits genre, mood, origin, and format facets simultaneously in one sub-50ms query

The difference between a 50ms retrieval and a 500ms retrieval might seem small, but in conversation it's the difference between fluid dialogue and waiting for a computer. Algolia made CrateDigger feel alive.


CrateDigger is open source under MIT. Built with Algolia Agent Studio, React, and a love for vinyl.

Top comments (0)