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.
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:
One webhook call per person in, a scored dossier out. Five stages:
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.
| Score | Base factors (weights) | Final formula |
|---|---|---|
| C_Score (0–20) | Series × VC-tier × lead-round boost, + raised + ARR + employees | min(20, round(C_raw/15 × 20)) |
| Founder | Title .25 · Co-founder .15 · Prior exit .15 · Team size .20 · Revenue .15 · Press .10 | base + 3.0 × C_Score |
| Engineer | GitHub stars .38 · Top repos .20 · Contributions .15 · Seniority .17 · Org tier .10 | 0.7 × base + mult × C_Score |
| Researcher | h-index .33 · Citations .25 · Publications .22 · Patents .10 · Venue .10 | 0.8 × base + 0.5 × C_Score × org tier |
| Product leader | PM title .32 · Launches .38 · KPI ownership .20 · Cross-functional .10 | 0.6 × base + 2.0 × C_Score |
| Investor | Investment count .35 · Led rounds .25 · Largest check .15 · Portfolio tier .15 · Social proof .10 | weighted sum, normalised |
| Media / KOL | Twitter .32 · YouTube .26 · Talks .27 · Podcasts .15 | weighted 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.
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.
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.
$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.
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.
<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.
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.
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.
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.
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.
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.
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.
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.
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.
The catalog the reports hang off — build days with AWS, CoreWeave, Google Cloud and NVIDIA sponsor logos, capacity and role-mix chips per event.
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.
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.
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.
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