Inspiration

We run live events for a living. And the most frustrating moment in event management isn't before the event โ€” it's during it, when something is clearly going wrong (the session is dragging, the food isn't landing, the vibe has shifted) and you have no data to act on. You're flying blind until the post-event survey comes back three days later.

The idea for sentimentLive came from a very real moment: standing in the back of a conference ballroom at IMEX, watching an audience check their phones through a keynote, wondering "does the speaker know? Does the organizer know?" Nobody did.

CALL-E changed the equation. For the first time, we could call attendees mid-event, collect their honest verbal feedback, and surface it to the planner in real time โ€” before the session ended.

What it does

sentimentLive uses CALL-E to place outbound voice calls to event attendees during a live event, collect verbal feedback, score sentiment with Claude Haiku, and push real-time ๐Ÿ”ด/๐ŸŸก/๐ŸŸข alerts to an event planner's dashboard.

The event planner can course-correct on the spot โ€” adjust the agenda, message catering, or push a new question โ€” while the event is still happening.

How we built it

Built on Next.js 15 with Supabase Realtime for live dashboard updates. When a planner pushes a question, the /api/calle/call route fires a POST /v1/calls request to CALL-E for each opted-in attendee, with a custom voice prompt asking their opinion.

CALL-E delivers the call and returns the transcript to our /api/calle/webhook endpoint. We extract the attendee's response, pass it to Claude Haiku for sentiment scoring, and upsert the score into Supabase. The lib/insight-agent.ts aggregates all responses into a live insight every 3 minutes, picked up by the dashboard via Supabase Realtime.

CALL-E integration

  • POST /v1/calls per opted-in attendee with a custom voice prompt
  • webhook_url receives the completed transcript
  • metadata carries survey_id, question_id, opt_in_id through the call to webhook round-trip
  • No Twilio setup, no phone number provisioning, no IVR needed

Challenges

The hardest part was designing a call experience that feels natural mid-event โ€” not intrusive, not corporate, not a robocall. The voice prompt needed to be short (under 20 seconds to answer), warm in tone, and make the attendee feel heard rather than surveyed.

We also had to handle the async nature of CALL-E's webhook carefully. Calls don't return instantly โ€” attendees pick up (or don't) at different times. The webhook round-trip needed to be idempotent, handle retries gracefully, and not block the live dashboard from updating as results trickled in.

Getting the sentiment scoring right was trickier than expected. "The food was fine I guess" scores differently than "the food was amazing" even though both sound positive. We tuned the Claude Haiku prompt through several iterations to distinguish genuine enthusiasm from polite neutrality.

What we learned

CALL-E is genuinely the missing piece for real-time voice feedback at scale. Before this hackathon, we would have told you that phone-based event feedback required a dedicated telephony setup, Twilio integration, phone number provisioning, and weeks of compliance work. CALL-E reduces all of that to a single API call with a voice prompt.

We also learned that attendees like being called. In our test runs, response rates were higher than we expected โ€” people answer a real phone call more readily than they fill out a survey form.

Why this matters

Every major event platform (Cvent, Swoogo, Bizzabo) does post-event surveys. Nobody does real-time. The only blocker was placing the calls during a live event โ€” CALL-E removes that blocker entirely. 20 free calls is enough for a real 10-person demo.

Tech stack

Next.js 15 ยท Supabase Realtime ยท Claude Haiku ยท CALL-E

Repo

https://github.com/thebobby0x/sentimentlive

Built With

Share this project:

Updates

Submission history