Inspiration

VCs do not have a sourcing problem. They have a filtering problem.

They already see too many companies. What they cannot do is say what they want. A partner says "technical founders, B2B infrastructure, pre-seed". Then the partner passes on six companies that fit that sentence.

The real filter is not written down. No tool can read it. So every sourcing tool ranks companies against a thesis that the fund cannot write.

What it does

CompanyTinder shows a partner one company at a time. The partner acts on each card with four actions: pass, save, track and intro. Track matters at pre-seed, because the most common real answer is "right company, wrong time".

After about ten actions the model has learned the partner's filter. It re-ranks every company it has not shown yet.

Then it reads the thesis back in plain English, including the parts the partner never said. It names what the partner favours, what they avoid, and one contradiction between the two.

The learning layer is the product. The swipe is a fast input device.

How we built it

The data comes from akta.pro. We built a pool of pre-seed and seed companies, then pulled company facts, industry, leadership profiles and strategic signals for each one.

Each company's text goes to an embedding model through the Nicrron API. An embedding is a list of numbers that captures what a text means.

The model is a logistic regression over those embeddings plus a few readable features: sector themes, team size and founder coverage. Save and intro count as positive and pass counts as negative. A session gives about twenty data points, so a larger model cannot fit the data.

Before the first fit, the ranking starts from an embedded fund thesis, so the first card already matches the fund.

The readback sends the learned weights and the saved and passed companies to a chat model through the Nicrron API.

The interface is a Next.js app with drag-to-swipe cards, a founder gallery, a match overlay and a trace drawer. The ranking service is FastAPI.

PRISM by Block Convey traces the agent runs. Roundtable was development tooling.

Challenges we ran into

The data did not match the design. We planned a card item showing a signal that changes over time, such as repository stars rising over three days. The source returns static values, so that item does not exist. We cut it.

Founder backgrounds nearly failed too. Our first probe found no founder with a previous employer. A second probe across more companies found about half, with roles attached. The field is real, but it is missing for the smallest companies, so the card had to work with no founder data at all.

The first readback was confident and wrong. It missed the strongest pattern in the session and asserted two preferences that were statistical noise. Both features were true for about the same share of saves and passes, so neither separated anything. We replaced them with sector themes matched against the sector field, and the weights then matched real behaviour.

One pass broke the cold start. With a fund selected, passing the first card pushed the whole sector down and the next card was unrelated. Saves and passes now count for a third of the fund thesis until the model fits.

We also built two products at once. One of us built the ranking service and the other built the interface, on branches with no common ancestor. Merging them meant porting the learning loop into the interface, not merging files.

Accomplishments that we're proud of

The model learns from real swipes. Pass one sector and save another, and the next card follows.

Every claim on a card is sourced. Where a founder is not in the source, the card says so and shows the company and sector instead of inventing a line.

The match score shows nothing until the model has fitted, instead of a number that means nothing.

We cut features when the data did not support them, rather than filling the gaps with placeholder text.

What we learned

Probe the data before you design the card. An hour spent checking what the source actually returns saved us from building three card items that do not exist.

A readback that sounds confident and is wrong is worse than no readback. A VC spots it immediately.

A short session is a small amount of data. We kept the model simple because the data cannot support anything larger.

What's next for CompanyTinder

Founder video and press in the drill-down, so a partner sees the person and not only the record.

Partner diff. Two partners act on the same companies and the tool shows where they disagree, before the Monday meeting rather than during it.

A signal that changes over time, from a source that has one, so the card can show a shape instead of a number.

Alerts on tracked companies, so "right company, wrong time" becomes a reason to open the tool again next week.

Built With

Share this project:

Updates

Submission history