An invite-only networking engine for 300 founders, VCs and LPs at Willis Tower, Chicago. One question per person: who should I talk to right now?
About 300 people, eight hours, and a theme: investing in adoption. Every attendee wants the same thing from a day like that: the handful of people in the room worth meeting, and something to say when they get there.
The agenda alone was 21 sessions and 47 speakers, but the hard part wasn't the agenda. It was being fair to everyone, protecting the people who asked to stay private, and moving real people around a lunch hall on time.
The four systems that ran the room.
scorePair is a pure, tested function with no LLM in it. On top sit fairness rules: colleagues never match, small boosts for people with no matches yet, caps per company, and a floor so nobody ends with zero.
The AI concierge gets a context assembled per request: the people most relevant to you, the speakers, the live agenda and the venue. Claude answers, with OpenAI as fallback through one gateway.
Nine portfolio companies at numbered tables, nine timed rounds, and every attendee routed so they meet every company. A draft, published, locked state machine keeps a live rotation from being corrupted mid-lunch.
Hidden attendees are masked on the server, on every surface, including inside LLM prompts. Emails never enter a prompt. Responses are shaped so that "not published" and "not grouped" look identical.
Left: what most people would ship. Right: what ran in Chicago.
Upload a spreadsheet, stage the rows, let the server recompute the diff, preview it, then publish in one transaction guarded by a staged-status check. Two admins publishing at once get a 409. Session IDs survive re-imports, so printed QR codes never break, and ambiguous rows go to a human.
A QR code only names a target. Who you are always comes from your session token. Check-ins are idempotent, so scanning twice can't double-count.
Attendee records are created on the first authenticated request, only for invited people. Signing up on your own grants nothing.
It boots lunch-ready. Startup reconcilers seed the invitation template, the nine rounds and nine tables, idempotently, without overwriting anything an admin changed. One switch, event mode, moves the whole app through before, live and after.
Need something like this? I build these end to end, as a full-time engineer, on contract, or with SKAI Group.
Book a 30-min callRunning an event, a community or a marketplace that needs fair matching? I've done it live.