Case study · community research · AGI House · Jun – Nov 2025

Scoring 13,619 people who applied to AGI House

AGI House runs hackathons and founder dinners in Hillsborough, California. I joined as a resident and became its product and engineering lead. I built the first system in the house’s history to research and score the whole community — every applicant in the database, end to end, across six role dimensions — from scratch, on an n8n agent pipeline, with an investment view on top that traces what happened to attendees’ companies after their first event.

The problem

A build day gets ~300 applications for a 200-seat room, and the door decision is a research task: who is this person, is their company real, did they write the code their profile claims. Organisers were doing that by hand, per name. The same database answers a second question nobody had time to ask — of everyone who ever walked through, whose company grew afterwards, and by how much.

Results

13,619people scored end to endrecords with the score-complete flag, re-counted for this page
6role scores per personfounder · engineer · researcher · product · investor · media, each riding a shared company-quality score
$55Baggregate valuation of the early cohort nowfrom an estimated $8.2B at their first event · 104 companies · traced by the impact view
$1,861.47provider spendnine services, summed from card transactions
150 daysin production2025-06-24 → 2025-11-21
449.8 MBenriched database449,758,138 bytes of profile JSON

What I owned

I came to AGI House as a resident in mid-2025 and ended up running product and engineering — the services agreement that formalised it names the role Product & Engineering Lead, effective 25 October 2025. The scoring machine was already live by then and kept running to the handoff. Four surfaces were mine end to end:

How the system works

One webhook call per person in, a scored dossier out. Five stages:

01 Webhookone call per person from the orchestrator
02 Researchagent #1 — gemini-2.5-pro + Firecrawl, iterates until it can emit the profile JSON
03 Checkagent #1.1 — no tools, re-reads the full iteration memory, re-emits compliant JSON
04 Companyagents #2 + #3 — the founder's company scored the same way, with its own checker
05 PersistMongoDB for the product, a Google Sheet for the ops people who lived in one

The rubric — six roles, one shared company score

Each person gets six independent 0–100 scores. All six ride on a shared company-quality sub-score, C_Score (0–20), computed from funding stage, investor tier, amount raised, ARR and headcount — so a founder's score and an engineer's score both know whether the company behind them is real. The weights below are quoted from the production prompt, not reconstructed.

ScoreBase factors (weights)Final formula
C_Score (0–20)Series × VC-tier × lead-round boost, + raised + ARR + employeesmin(20, round(C_raw/15 × 20))
FounderTitle .25 · Co-founder .15 · Prior exit .15 · Team size .20 · Revenue .15 · Press .10base + 3.0 × C_Score
EngineerGitHub stars .38 · Top repos .20 · Contributions .15 · Seniority .17 · Org tier .100.7 × base + mult × C_Score
Researcherh-index .33 · Citations .25 · Publications .22 · Patents .10 · Venue .100.8 × base + 0.5 × C_Score × org tier
Product leaderPM title .32 · Launches .38 · KPI ownership .20 · Cross-functional .100.6 × base + 2.0 × C_Score
InvestorInvestment count .35 · Led rounds .25 · Largest check .15 · Portfolio tier .15 · Social proof .10weighted sum, normalised
Media / KOLTwitter .32 · YouTube .26 · Talks .27 · Podcasts .15weighted sum + consistency bonus

Every role has a hard-zero rule. No founder or co-founder title anywhere across LinkedIn and press — founder base is 0. No GitHub and no engineering titles — engineer is 0. No publications, citations or patents — researcher base is 0. The rule costs the system some real engineers who keep their code private, and it was kept anyway, because a score with no evidence behind it is the thing this whole pipeline exists to replace.

Architecture — the n8n workflow

The graph below is rendered from the exported workflow definition: 40 nodes, 34 connections, no screenshot, nothing invented. One webhook call per person enters at the left; MongoDB writes and Google Sheet updates leave at the right.

MCP FirecrawlmcpClientTool
Linkedin agentagent
Webhookwebhook
Simple MemorymemoryBufferWindow
OpenRouter Chat Model1sonar-deep-research
OpenRouter Chat Model4claude-sonnet-4.5
Structured Output Parser1outputParserStructured
Google Gemini Chat Model4gemini-2.5-pro
Google Gemini Chat Model5gemini-2.5-pro
Structured Output Parser3outputParserStructured
Google Gemini Chat Model6gemini-2.5-pro
Information and reasoning gen…agent
Update Json_result fieldgoogleSheets
Companies Json generatoragent
Update All information and re…googleSheets
Result json generatoragent
Update documentsmongoDb
Edit Fieldsset
Google Vertex Chat Modelgemini-2.5-pro (vertex)
OpenRouter Chat Modelgemini-2.5-pro
Ifif
Update documents1mongoDb
Edit Fields1set
Search and optionally scrape …firecrawl
OpenRouter Chat Model2gemini-2.5-pro
MCP BrighData1mcpClientTool
Structured Output ParseroutputParserStructured
Google Gemini Chat Modelgemini-2.5-pro
Result json generator1agent
OpenRouter Chat Model3gemini-2.5-pro
MCP Firecrawl2mcpClientTool
Update documents2mongoDb
Edit Fields2set
Simple Memory2memoryBufferWindow
OpenRouter Chat Model5gemini-2.5-pro
Simple Memory1memoryBufferWindow
#1agent
#1.1agent
#2agent
#3agent

Rendered from the exported workflow definition — node names, types and connections only. Hover a node for what it does.

The design decision that mattered: every researcher has a checker behind it. Agent #1 researches a person with Firecrawl and must either emit the final profile JSON or hit its iteration cap; agent #1.1 has no tools at all — it re-reads #1's full iteration memory and re-emits the JSON, compliant or corrected. The company pair #2/#3 works the same way. A researcher that can browse will eventually return prose instead of the contract; a checker that cannot browse has nothing to do except hold the contract.

What it cost

$1,861.47 of measured provider spend across nine services, from the actual card transactions — OpenRouter $728.20, Firecrawl $466.12, Cursor $260.00, Perplexity $160.00, SerpAPI $75.00, n8n Cloud $60.00, Bright Data $50.00, SearchAPI $40.00, OpenAI $22.15. Thirteen and a half thousand researched dossiers for the price of one contractor-week.

A real prompt

This is the LinkedIn analyzer's instruction block from the live workflow, verbatim — not a cleaned-up rewrite. It runs on sonar-deep-research with Firecrawl and Bright Data tools attached.

Linkedin agent · system instructionswf-live.json · 1,208 chars
The interesting line is the last one: the agent is told who is asking and why — "we are an organizer of a hackathon and a VC firm" — because red flags for a door decision and red flags for an investment are not the same list.
<AgentInstructions>
<Role>
<Name>LinkedIn analyzer </Name>
<Description>
You must Make a deep research on this applicant:
Use tools to extract comprehensive profile data
</Description>
</Role>

<Objectives>

- analyze initial data about this applicant
- LinkedIn: Locate and scrape the correct linkedin profile; extract roles with start–end periods, titles, orgs, periods of work with years from to, locations, education, publications, experiences, summary; collect profile avatar.
- Organizations: For the most recent organizations where this person has worked at identify their work history, identify canonical org name and fetch logo URL (e.g., clearbit if available).
- Your goal is to aggregate full info about this applicant. Let me know if their initial description that they provided to me (i sent it to you in this prompt) is actually correct. Are there any flags? Don't limit with just linkedin, find everything about this person. Use critical thinking. Make sure you analyzed this exact person.
Need all red flags and all positive signals. We are an organizer of a hackathon and a VC firm, so we really need to know a lot about our applicant.

</Objectives>

</AgentInstructions>

The person researcher (#1) runs under a stricter regime — a 14,102-character instruction block with a lifecycle gate: every turn it must either plan and execute more Firecrawl calls, or emit the final JSON, and nothing in between. When it hits the iteration cap it must still emit the JSON under an explicit estimation policy, with the shortfall named in the comment field. The full rubric text and its evolution across prompt generations is in AGIHOUSE_SCORING.md.

The screens

These are screenshots of the production dashboards over the real database, taken for this page. The six people below are founders of venture-backed companies — StackAI, HeyBoss AI, Harvest, DeckRobot, Nexad, QualGent — sorted by their founder score for one November build day. Emails and phone numbers were stripped before capture; what remains is what their own public profiles say.

People explorer · one event, 311 applicants, sorted by founder score Open full size
People explorer grid: six applicant cards with founder and engineer scores, company chips and approve status

The working view for an event gate. Each card carries the two highest role scores, the companies the research verified, and an approve/reject state. The search-and-sort header is the entire workflow: sort by founder score, read the top of the list, decide the room.

One person's card

Antoni Rosinol, co-founder and CEO of StackAI (YC W23) — a public founder, shown with his own public record. The system scored him founder 89, researcher 71, engineer 68, product 34, investor 0, media 0.

Every score carries its audit line. His founder score reads Base=72; C=17; Mult=+3.0; Adj=0; Loc=1.10; Final=89 — the base from his titles and team size, seventeen of twenty possible company-quality points from StackAI's Series A and Tier-1 investors, the location boost for the Bay Area. The zeros are as deliberate as the 89: no investment activity in Crunchbase or press means investor 0, not a guessed 30.

Below the scores: the organisations the research verified, GitHub with 1,300 stars counted across named repos, Google Scholar with an h-index of 11 and 2,913 citations, and his publication list. The card is the dossier; the dossier is checkable.

Raw-JSON and contact panes were removed before capture. The explorer itself runs at the bottom of this page, on anonymised fixtures.

Scoring card Full size
Antoni Rosinol's scoring card: six role scores with audit comments, organisations, GitHub and Scholar stats, publications

The investment view

Scores answer "who should be in the room". The impact view answers the fund's question: of the founders who came to an AGI House event early, what happened to their companies afterwards? It joins each founder's funding timeline to the date of their first event and measures the elevation since.

AGI-H Impact · companies, early-stage cohort Open full size
Impact dashboard, companies tab: portfolio summary with valuation, fundraise and ARR elevation, plus a ROI simulator

104 companies whose founders attended while the company was early. Aggregate valuation elevation $55B against an estimated $8.2B at first event; $16.1B raised since; p90 multiple 22.5×, 38 companies at ≥2×. The simulator below prices a hypothetical equal-weight $10M across the cohort — 7.2× blanket, treating unknowns at 0.8× and dead companies at zero. The sidebar is readable on purpose: Perplexity at 133×, LangChain at 62.5× — both were at AGI House dinners within months of their seed rounds.

AGI-H Impact · one founder, sourced Open full size
Impact dashboard, people tab: Richard Socher / You.com timeline with valuation elevation, funding rounds and cited sources

The per-founder view holds the discipline the aggregate depends on: Richard Socher's You.com shows valuation $60M→$1.5B, and every number is tagged verified (a citable press source, listed below the timeline) or estimated (stage medians, with the estimation reasoning written out). ARR is left null — "not credibly disclosed; we leave ARR null" — instead of guessed.

Event ops

The same database ran the event side: a catalog of 25 build days and dinners, and a per-event report for sponsors. Sponsor and judge names are shown because a sponsorship is published marketing.

Event report · Self-Evolving Agent Build Day, 2025-11-01 Open full size
Event report header: sponsors and organisers — AGI House, Weights & Biases, CoreWeave, Firecrawl, Composio, LiveKit, Pika, Snorkel, OpenPipe, MIT, Stanford — with named judges

The sponsor block of one event report: Weights & Biases and CoreWeave as primary sponsors, Firecrawl, Composio, LiveKit, Pika, Snorkel AI, OpenPipe, MIT Schwarzman and Stanford alongside, each with its judge or speaker. The applicant funnel and project gallery follow below this fold.

Events catalog · 25 events Open full size
Events catalog grid: six build-day cards with dates, sponsors and capacity chips

The catalog the reports hang off — build days with AWS, CoreWeave, Google Cloud and NVIDIA sponsor logos, capacity and role-mix chips per event.

The working software

Everything above describes the machine; this is the machine. The people explorer — the page the door decisions ran on — running here against anonymised fixtures, with the production search, sort and scoring cards. Open any card for the six scores and their audit lines.

app/people.html · People explorer Open full screen

the explorer on the anonymised fixture set — the transform is documented in PROVENANCE.md

The investment view is interactive as well — open it full screen: the same founder timelines and company table as the screenshots above, on the same fixtures.

What was hard / what it got wrong

What is real

The screenshots are the production dashboards over the real database, captured for this page. Every person shown is a public founder or public figure, shown with their own public record; the scores are the system's actual output. The workflow graph is rendered from the exported workflow definition; the prompt is quoted verbatim; the rubric weights are quoted from the production prompt text. The spend is summed from card transactions.

What is masked or omitted

Emails, phone numbers, raw-JSON panes and contact sections were removed from every screen before capture. No bulk data is published — six applicant cards and two named public founders stand in for the whole database. The interactive app pages linked above run on anonymised fixtures, not the real database; their transform is documented in PROVENANCE.md.

Also read: the scoring working paper · PROVENANCE.md

More from my work