Inspiration

Vision

Make big tech conferences feel smaller, smarter, and more intentional for every attendee, not just the people who already know how to work the room.

Problem

At large conferences like Web Summit, networking is fast, noisy, and often forgettable. Attendees meet dozens of people, exchange contact details, scan badges, and say, “Let’s keep in touch.” But most of those connections never turn into anything meaningful. The problem is not simply that people are too busy to follow up. The deeper issue is that the first interaction is usually too vague to earn a second one.

When a conversation stays at the level of “What do you do?” and “Let’s connect sometime,” it leaves behind no real memory anchor: no shared problem, no specific opportunity, no next step, and no clear reason to continue the conversation later.

So follow-up quietly dies.

In a room full of potential collaborators, customers, mentors, investors, and peers, attendees are still left trying to find signal in the noise on their own.

Solution

Follow up with context, not just contact info. Our solution gives conferences an official AI networking agent that helps attendees make better connections before, during, and after the event. Instead of leaving networking to chance, the agent acts as a first layer of exploration. It helps attendees clarify what they are looking for, discover relevant people, and walk into conversations with more useful context than small talk.

The agent helps each attendee:

Clarify their goals, interests, and networking intent Surface promising matches before and during the event Start conversations with relevant context instead of generic intros Capture why a connection is worth remembering Reconnect after the event with clear context, shared intent, and a concrete next step It does not replace human networking. It makes the first human interaction more specific, memorable, and worth continuing. By raising the floor of conference networking, the agent helps attendees leave with fewer random contacts and more meaningful opportunities.

What it does

Every attendee gets a personal AI agent seeded from their name, role, and industry. The agent comes with a draft "what I'm looking for" goal that the attendee can edit in one textarea — that goal becomes the agent's system prompt.

When two attendees are matched (suggested automatically by description similarity), their agents open a chat and negotiate cooperation on their behalf. Each turn, an agent can:

  • say — keep the conversation going
  • meet — "let's meet, here's my calendar"
  • pass — "not a fit, thanks"

Chats are capped at 20 turns per side. The attendee can take over manually on any turn. At the end, they see a feed sorted by wants_meet first — those are the people to actually find at the venue.

How we built it

We combined Software + Cloud + Hardware

Layer Stack
Frontend Next.js 16 (App Router, Server Components, Route Handlers), Tailwind
Auth Magic-link tokens (no Cognito signup) → httpOnly cookie scoped to /hackathon
Backend AWS Amplify Gen 2 → Lambda + API Gateway + DynamoDB (CDK under the hood)
AI OpenAI gpt-4o-mini for goal drafting; text-embedding-3-small for matching

Matching ranks the top-5 candidates per attendee using cosine similarity on the concatenated position + description + goal embedding:

$$ \text{sim}(\mathbf{a}, \mathbf{b}) = \frac{\mathbf{a} \cdot \mathbf{b}}{|\mathbf{a}| \, |\mathbf{b}|} $$

With $N = 20$ attendees and embedding dimension $d = 1536$, a full pairwise scan is $\mathcal{O}(N^2 d) \approx 6 \times 10^5$ float ops per request — trivial, no vector DB needed. We re-embed on every goal edit so matches stay live.

The whole flow piggybacks on OrangeChat, our Voice AI receptionist platform. We reused its sandbox, its Amplify backend, and its existing OpenAI integration — the hackathon app is just three new DynamoDB tables, four Lambdas, and a single /hackathon route group.

Challenges we ran into

  • CloudFormation construct collisions — our REST API was already set up with defaultCorsPreflightOptions, so explicitly calling addCorsPreflight() on a child resource tried to create a duplicate OPTIONS method. The error message was just 'There is already a Construct with name OPTIONS' — took a minute to track down.
  • Next.js 16's stricter cookie rules — Server Components can no longer mutate cookies; only Route Handlers and Server Actions can. The magic-link landing had to be rewritten from a page.tsx into a route.ts that returns a NextResponse.redirect with the Set-Cookie header attached.
  • Keeping the token httpOnly — the magic token is the only credential, so it can't be exposed to JavaScript. Every client API call goes through a Next.js proxy Route Handler that reads the cookie server-side and forwards it to the Lambda. Costs one extra hop, buys real security.
  • Embedding quality vs. cluster collapse — with only 20 attendees on broadly similar topics (mostly tech), small-model embeddings can compress everyone to 0.85+ cosine. We mitigate by concatenating position + description + goal rather than goal alone, so role-specificity drives separation.

Accomplishments that we're proud of

  • Zero-signup onboarding. An attendee clicks one link and they're in — no email verification, no password, no OAuth round-trip. The magic token is the credential.
  • End-to-end personalization in one sitting. Seeded 20 real Web Summit attendees from scraped data, drafted a personal goal for each one with gpt-4o-mini, embedded them, and had top-5 ranked matches working — all in a single afternoon.
  • Re-used a production platform without breaking it. Bolted the entire hackathon experience onto OrangeChat's live Amplify backend by adding tables to the existing CDK stack — no parallel infrastructure, no separate auth pool, no separate deploy pipeline.
  • The matches actually look right. Founders in healthtech get matched with healthtech investors; AI engineers cluster with AI engineers. The "%fit" badge feels meaningful, not random.

What we learned

  • Magic-link auth + httpOnly cookies is dramatically simpler than full SSO for time-boxed demos — zero signup friction, no Cognito surface area to debug.
  • When you're building on top of an existing Amplify backend, the cheapest path is adding tables to the same CDK stack rather than spinning up a parallel app.
  • Embedding quality depends almost entirely on what you embed, not which model — concatenating position + description + goal beat prompt-engineering the embedding call.
  • Next.js 16's "cookies belong to Route Handlers" rule is annoying for five minutes and a gift after that — the auth boundary becomes impossible to accidentally bypass.

What's next for web summit agent

  • Live agent-to-agent threads with say | meet | pass structured output, ping-ponging turn-by-turn from the browser
  • Auto-queuing 2-3 conversations the moment an attendee opens the page, so there's something to read on first load
  • Calendar integration — when both sides choose meet, drop a Google Calendar hold and a venue-floor location
  • Scale past 20 — swap the in-Lambda cosine scan for OpenSearch or pgvector once we cross a few thousand attendees
  • Voice mode — pipe the agent transcripts through OrangeChat's voice stack so the negotiation can happen as a podcast you can listen to between sessions

Built With

Share this project:

Updates