-
-
Go button integrated on Instagram's feed as a natural option algonside Like, Comment, Send and Bookmark
-
Go button added to Reels, where users might find more inspo for plans they want to take on.
-
Go button has been clicked, user has shown interest on this plan. Go starts parsing the content to extract a standarized plan JSON.
-
4 Agent workflow takes on data parsing, continuous user context building and housekeeping, and plan proposal for GCs with Muse and SerpAPI.
-
When in a group chat (GC), click the Go button to propose plans that will be curated from the cross linking of everyone's Go graph profile.
-
Vote on the plan, vote on the date and time. And you just Go! Turned your scrolling session into real connection.
-
In Discovery, find new people out of your GCs that are excited to do the same plans as you!
Inspiration
Aleix and Frank came to UT Austin from Spain this semester. Like most exchange students, we mostly ended up with other Spaniards, and spent a lot of evenings scrolling Reels of Austin places they never actually went to: a swimming hole, a taco spot, a light show. The saves piled up. The plans never happened.
That's not just an exchange-student problem. Doom scrolling isolates people: the hours go into a feed instead of into real time with friends. And Gen Z rarely does anything spontaneous. Everything needs a plan, and plans rarely get made. So we flipped it: what you scroll becomes what you do, with your friends.
What it does
Go is one new button on Instagram, next to Like, Comment and Share.
- Tap Go on any reel or post that looks fun. Muse parsing agent watches the video and listens to the audio, then decides whether it's actually a plan. A meme, a selfie or the news gets nothing saved; keeping noise out was a hard rule. If it is a plan, Muse works out the what, where, when, cost, vibe and group size.
- SerpApi grounds it in the real world: the exact place on Google Maps, its hours, real price per person, how busy it gets, and live Google Events.
- Every Go teaches your own taste graph. A profiling agent turns each plan into tastes (tex-mex, live music, outdoors…) with reasons. A housekeeping agent fades and prunes what you've moved on from.
- In any group chat, tap Go once. The planner agent reads each member's graph separately and cross-links them (same places, shared tastes). It checks the hourly forecast and the routes from everyone's home, then posts 4 plans as a vote card. The group votes on the plan, then on the time, and it's settled.
A live dashboard shows the backend and every agent working as it happens, ready to justify every single decision with transparency.
How we built it
- Mock Instagram (React 19 + Vite on Vercel): a high-fidelity Instagram with real posts and reels, chats, notes and the Go button. Third parties can't add a button to the real Instagram, so we built what it would look like as a native Meta feature.
- Supabase. Phones never talk to our backend directly: a Go tap is a hidden row in Supabase, and results come back the same way, in real time on every phone.
- Python backend (FastAPI) polls Supabase every second and runs up to 16 taps in parallel. Every tap runs the whole pipeline live; nothing is pre-parsed.
- Parsing:
muse-spark-1.2reads video + audio in one call, with a cheap "is this a plan?" gate (confidence \( \ge 0.6 \)) before the full JSON extraction. - Grounding: SerpApi with Google Maps, the Google Search knowledge graph, Google Events, Google's weather box and Google Maps Directions.
- Person graphs: a graph stores evidence, never fixed weights. Each piece of evidence decays with time and with newer Go's:
- Parsing:
$$ w = w_0 \cdot 2^{-\Delta t / 10\,\text{days}} \cdot 2^{-n / 3} $$
where \( n \) is the number of Go's since. Tastes stay active above 0.25 and are pruned below 0.15.
- Group matching: for each member \( u \) and candidate plan:
$$ A_u = 0.5\,L_u + 0.35\,T_u + 0.15\,B_u $$
(\( L \) = place, \( T \) = taste, \( B \) = budget/time fit). The group score rewards fairness, not just the average:
$$ G = 0.6\,\overline{A} + 0.4\,\min_u A_u $$
The final score folds in the real world:
$$ S = G \cdot M \cdot F \cdot W \cdot R $$
timing \( M \), feasibility \( F \) (open at that hour, budget), weather fit \( W \in [0.5, 1.15] \), and travel \( R \) (down to 0.85 for an hour-long trip). Fewer than 4 strong plans → it searches live Google Events by the group's shared tastes.
- Judges' dashboard: four agents (parsing, profiling, housekeeping, planner), each run as a waterfall, live force-directed graphs (d3-force), and every candidate's score. It's mirrored through Supabase so it runs hosted, from any device.
Challenges we ran into
- You can't touch Instagram's UI. We rebuilt Instagram closely enough that the Go button feels native. The pitch is that Meta ships this.
- Time zones in transit: Google Directions reads the departure time as local wall-clock time written in UTC. A correct UTC instant returned buses 5 hours late.
- Making it live, not canned. We first pre-parsed the demo posts, then threw that out. Now every tap runs live, and we got a tap from about 13 s down while running 16 at once. A group Go plans in about 2 s.
- Most of all, customer journey and UX. We came to find out that the reason plans aren't made as much is because how complex they are! More than 6 hours were spent trying to decipher the trade-offs that would make our product an actual usable feature.
What we learned
- Video models are good enough for this today. One Muse call turns a 30-second reel into a structured plan for about a cent.
- Grounding is what makes AI plans trustworthy. A plan with real hours, prices, forecast and bus time is one people actually say yes to.
- The social problem is a timing problem. People didn't lack ideas, they had hundreds of saves. What was missing was the moment that turns "this looks fun" into "Saturday, 2 pm, who's in?". Let's just Go!
Log in or sign up for Devpost to join the conversation.