1. Ingest
Scrape and import event candidates from local calendars, venue pages, newsletters, ticketing platforms, editorial sites, and manual operator finds.
An LA night-out engine that learns what you actually go to, ignores what you hate, and moves you from “maybe” to a concrete plan.
This is not a generic calendar. It is a filtering, taste, and execution layer between a person and the overwhelming sprawl of LA event information.
Scrape and import event candidates from local calendars, venue pages, newsletters, ticketing platforms, editorial sites, and manual operator finds.
Convert messy listings into a standard object: title, venue, date, price, vibe, genre, door time, location, source, risk flags, ticket URL.
Tag events by scene, crowd, energy, social load, taste cluster, accessibility, cost, neighborhood, and likely user fit.
Score each option against the user’s actual behavior: likes, skips, hard no’s, distance tolerance, boredom threshold, and prior attendance.
Outbound voice agent presents the shortlist one item at a time and listens for command words or normal human objections.
Text links now. Add deep links later. Introduce human-in-loop bookings before any autonomous purchasing.
The important design choice: the user is never trapped listening to an agent describe something they already know they hate.
The advantage is coverage plus discrimination: official platforms for inventory, local weird calendars for texture, and manual additions for the stuff algorithms miss.
The user profile should be mostly tappable and voice-editable. Start broad, then learn through “NO,” “NEXT,” saves, and attendance.
Mock data only. The point is the shape of the object and how fit is explained without sounding like a marketing blurb.
Current budget: $35. Use the buttons on the card to simulate voice feedback.
Keep it small enough to produce. The first version should feel agentic while remaining operationally safe.
Signup form, taste intake, phone/SMS consent, LA-only waitlist.
Supabase tables for sources, events, venues, tags, users, feedback.
Approve/reject scraped events, add taste tags, mark reliable sources.
Twilio outbound call with command parser and SMS recap.
Links first. Deep links second. Human concierge third. Autonomous booking last.
The actual backend should revolve around these records.
| Object | Fields | Why it matters |
|---|---|---|
| Event | title, date, venue_id, price, source_id, URL, age limit, sold-out status, raw description, normalized summary | Standardizes listings from totally different sources. |
| Venue | name, address, neighborhood, coordinates, transit notes, parking pain, scene tags | Prevents the agent from recommending impossible logistics. |
| Taste tag | genre, crowd, social load, energy, scene, format, novelty, bro-risk, normie-risk | Separates “electronic music” from “wrong electronic music.” |
| User profile | home zone, radius, budget, preferred call time, wants, hard no’s, mobility, attendance history | Makes the outbound call feel personally useful instead of spammy. |
| Feedback | event_id, user_id, command, reason, timestamp, call_id | Turns NO/NEXT/GO BACK/REPEAT into taste memory. |
| Call session | queue, current index, prior index, transcript, selected event, SMS sent | Supports GO BACK and REPEAT without confusion. |