AI in Practice — Case Study
dérive
A two-sided marketplace for taste-based food & drink discovery — powered by Claude Vision menu parsing, item-level vendor data, and an agentic trip planning layer that finds exactly what you want, wherever you are.
Kevin Merck — Founder & Product Lead — April 2026
"dérive started as a consumer discovery app. It evolved into something more interesting: a two-sided marketplace where vendor menu data — parsed by Claude Vision to the item level — powers an agentic trip planning layer that can answer 'find me Lambrusco in Saratoga' with real results from real menus."
The Platform
Consumer layer
Users discover, save, and revisit curated food & drink spots. A taste profile is built from onboarding preferences and behavioral signals — saves, return visits, browse patterns. Subscription model via Stripe, RevenueCat, and Apple Pay with full entitlement lifecycle management.
Vendor portal
Live vendor-facing platform at vendor.ourderive.com where restaurants, bars, and venues claim and manage their dérive profiles. Vendors upload menus and brand lists — PDFs, images, or documents — which are processed by Claude Vision and stored at item level in the dérive database.
Agentic trip planner
Users describe what they want in natural language. Claude extracts location and intent, queries item-level menu data, and returns a personalized itinerary with contextual notes explaining why each spot matches this specific user's taste profile.
Taste agent
Claude-powered onboarding that infers structured preference tags from free-text input — cuisine preferences, drink style, mood, pace. Tags feed directly into the recommendation engine and trip planner from the first session.
The Agentic Pipeline
Vendor uploads menu
PDF, image, or document via vendor.ourderive.com
Claude Vision parses
Extracts menu items, categories, descriptions, and brand associations — structured to item level. Handles handwritten specials, wine lists, tasting menus, and brand sheets with the same pipeline.
Stored in Supabase
Parsed items written to PostgreSQL — queryable by item, category, vendor, city, and tags.
User makes a request
"Find me Lambrusco in Saratoga" or "natural wine bar near me" — intent and location parsed from natural language.
Database queried
Menu items matching the request are retrieved. Programmatic pre-filtering hard-flags must-include spots before Claude sees the results.
Claude generates response
Results passed to Claude with the user's taste profile — returns a curated itinerary with contextual notes explaining why each spot matches this user specifically.
Onboarding A/B Experiment
Tested a generic feature carousel (control) against a taste-profile setup flow (variant). Variant B seeded the recommendation engine with cuisine preferences, drink style, and mood signals from the very first session.
+28%
Session engagement
+18%
Conversion lift
~5%
Onboarding drop-off
✓
Skip = control parity
"The skip affordance was as important as the taste questions. Users who skipped converted at control-group levels — which meant the personalization was additive, not a gate. Forcing it would have hurt activation without improving retention."
How I Used Claude — Across the Full Build
Vision — menu parsing
The core data pipeline. Claude reads vendor-uploaded menus — any format, any layout — and extracts structured item-level data. No templates, no rigid parsing rules. Handles handwritten specials, wine lists, tasting menus, and brand sheets with the same pipeline. This was the technical bet that made the vendor portal viable.
Edge functions — production agents
Two Claude-powered agents shipped in production: the Taste Agent infers preference tags from free-text user input; the Trip Planner queries vendor item data combined with the user's taste profile to generate personalized itineraries, with programmatic pre-filtering to ensure must-match spots always surface.
Experiment design
Used Claude to generate onboarding hypothesis variants, pressure-test measurement plans, and draft user research scripts before writing a line of code. The A/B test design, success metrics, and guardrail definitions were all iterated in conversation first.
Prompt engineering
Iteratively designed and tested prompts for each agent — defining output format, edge case handling, and the tone that makes recommendations feel curated rather than algorithmic. The difference between a good trip planner and a great one lives in the prompt.
Build acceleration
SQL for behavioral cohort analysis, React component boilerplate, Supabase schema migrations, API route handlers — moving from spec to working code significantly faster than the team size would otherwise allow. This entire platform was designed and built solo.
Technical Stack
What I Learned
Vision parsing is production-ready
Vision parsing is production-ready. Claude Vision handling menus at item level — across formats, layouts, and handwriting — without structured templates was the technical bet that made the vendor portal viable. It worked.
The data layer is the product
The data layer is the product. The trip planner agent is only as good as the item-level data underneath it. Investing in the parsing pipeline first was the right call. Great models can't fix thin data.
Agentic systems need tight tool design
Agentic systems need tight tool design. The quality of the trip planner response is a function of how precisely the database query is structured before Claude gets the results. Garbage in, garbage out — even with a great model.
The PM takeaway
The PM takeaway. AI compresses the time between idea and testable artifact — but the judgment calls about what to build and why stay human. Claude is the accelerant; product thinking is still the engine.
Kevin Merck
Founder & Product Lead — dérive
Built dérive solo — product strategy, design, full-stack development, and go-to-market. Mobile app, vendor portal, admin tooling, agentic pipeline, and infrastructure.
Background in product management with a focus on consumer apps, two-sided marketplaces, and applied AI. Currently open to senior product roles at companies building with AI at the core.