Inspiration

Moving to San Francisco doesn’t automatically mean finding your place in it. The city is full of independent artists, neighborhood gatherings, small businesses, and cultural communities—but discovering them often depends on following the right accounts or already knowing someone.

We wanted to help SF newcomers connect with local culture while helping independent organizers reach beyond their existing followers. SceneShift puts that discovery in the palm of your hand.

What it does

SceneShift is a mobile-first web app that brings San Francisco events onto one interactive map. Users can explore event pins, filter by category, read details, and visit original listings.

Our signature experience is flyer-to-map: upload an event flyer, let Claude extract its details, then review the information and confirm its location before publishing it to the live map.

Public listings and community flyers feed the same discovery experience, without requiring an account to browse.

How we built it

Our three-person team divided responsibilities: Simran led product direction, Apify integration, and deployment; Natalie built Claude flyer ingestion; Natalia developed the mobile interface and Figma design.

  • Apify: Our custom EventPulse Actor collects listings from Eventbrite, Luma, and DoTheBay, preserving source links, collection timestamps, and uncertainty.
  • Claude: Image understanding converts uploaded flyers into structured, editable event drafts.
  • Convex: A shared database, file storage, scheduled extraction, protected review functions, and a durable import workflow connect both event pipelines. Reactive queries update the map when approved records change.
  • React, TypeScript, and MapLibre: These power the mobile interface, interactive map, event cards, and category filters.
  • Figma: Mobile design exploration and prototyping guided the interface we integrated with the backend.

GitHub branches and reviewed pull requests helped us combine work from separate laptops.

Challenges we ran into

Collecting events was easier than making their information trustworthy. Listings disagreed about prices, omitted end times, and sometimes presented door times as show times. We preserved unknowns and reviewed source evidence before publication.

Flyers rarely provide coordinates. We added address lookup and a tap-to-place map selector so reviewers could confirm locations without entering latitude and longitude.

Sharing code didn’t automatically synchronize our backend. We established one shared Convex deployment and coordinated backend publishing.

We also narrowed scope to complete the core experience. Accounts and social interactions remained labeled concepts while we focused on discovery and flyer ingestion.

Accomplishments that we're proud of

We connected public event listings and uploaded flyers to one functioning map.

Our latest Apify cloud run imported 14 listings: 10 new records and four updates. After source-backed review, six Actor-sourced events were approved and live.

We completed the full upload → Claude extraction → editable review → location confirmation → approval → live map pin journey and confirmed the hosted app worked on mobile.

What we learned

We learned that useful AI needs an effective review experience. Extracted information should be inspectable and correctable, especially when someone might travel across the city based on it.

We learned that integration depends on shared event formats, clear ownership, and consistent deployment settings.

We also learned that narrowing scope can strengthen a product. Completing the journey from finding a flyer to discovering its event on a phone mattered more than adding another unfinished feature.

What's next for SceneShift

We want to improve duplicate detection, test larger event scraping queries, gather review data from Flyer ingestion to develop an automated review model, expand coverage of independent community events, and make user profiles real.

We plan to evaluate impact by measuring whether SF newcomers discover events they would otherwise miss, whether they follow through to organizer pages, and whether participating organizers reach new audiences.

Our goal is to help people move from living in San Francisco to participating in its communities.

Built With

Share this project:

Updates

Submission history