4,483 possible investors sorted into a shortlist of 185

Wavelength, an early-stage startup, needed investors for a seed raise, an early funding round. A working prototype turned a database it already paid for into a shortlist it could filter. Each match is explained by the companies the investor had funded.

Client: WavelengthStartup fundraising

CreditDesigned and built by our founder, as lead developer for a partner agency.

From list to evidence

Each filter shortens the list, and every name keeps its evidence

Follow the filters, then open the reason behind one match.

Wavelength / Investor research
Home-market portfolio
4,483candidate investors
of 4,483 candidates in the file

Every name was read.

All candidates were read, not a sample.

SeedAI portfolio
185seed investors with AI evidence
of 4,483 candidates in the file

Each match can be checked.

The evidence comes from companies they funded.

SeedAI portfolioHas led
100had led at least one round
of 4,483 candidates in the file

Some have led a round.

A narrower list within the 185 matches.

SeedAI portfolioHas led
Investor01 / 100

Fund A

Seed investor · Has led a round

Why it matches

Company A carries an AI industry tag.

Portfolio companyInvestor match

This is evidence, not a forecast.

185 → 100: “Has led a round” narrows the recorded shortlist. It does not mean those investors will lead this raise. No outreach is sent.

About Wavelength

The CTO needed names to write to, and a reason to choose them.

Wavelength was preparing a $4–5M seed raise. Most investors do not reply, so its CTO needed a long enough list of relevant investors, including some who had led a funding round before.

Client
WavelengthAn early-stage European startup preparing a seed raise
Industry
Startup fundraisingThe same method applies to choosing business customers to approach.
Starting point
A database the client already licensed
What worked
A filterable prototypeEvidence of investment in AI companies was built. A ranking that gives some criteria more weight was planned.

The targeting problem

The first filter looked at what investors said, not what they had funded

  • Thousands of possible names

    A large database did not tell the CTO which investors fit the raise. Reading every profile was not a useful starting point.

  • The first filter found only 6 matches

    The first filter read investors' own tags. A hand check found far more AI investors by looking at the companies they had funded.

  • A name alone was not enough

    Without evidence behind each match, the CTO would have to research the same investor again before writing.

What was built

The shortlist is based on the companies each investor funded

Some matches come from a category tag. Others sit in the company description. Keeping both sources made the shortlist more complete.

1,488investors with AI evidence
across the full candidate file
946 Tag evidence542 Text only

Build record · These counts cover all funding stages. The seed-stage shortlist contains 185.

Portfolio tagsA category on the company

One of 14 AI industry tags on a portfolio company can establish a match.

Company A

Industry tag: Artificial intelligence

The tag belongs to the company the investor funded, not the investor's own profile.

Portfolio descriptionsA mention in the company text

Description text found 542 additional investors whose portfolios did not match on tags.

Company B

“AI software for support teams.”

The card marks this as text evidence. It does not turn a mention into an investment recommendation.

  • Read the full candidate file

    All 4,483 investors with a portfolio company in the home market were read in full. The result was not based on a sample.

  • Keep the source of each match

    Rules check portfolio-company tags and descriptions. Every matching investor carries the kind of evidence that put them on the list.

  • Let the CTO narrow the list

    Stage, portfolio category, investor kind, region and past lead rounds are filters. The page runs in the browser.

Control and safety

The software finds possible investors, and a person decides whom to contact

The page filters and sorts. It sends nothing. The CTO chooses the investors to approach and tracks outreach separately.

  • No AI model makes the match. Plain rules check portfolio tags and descriptions, so each card can show exactly why an investor matched.
  • Missing data stays visible. If the category file is missing, the builder warns and marks portfolio filters as pending instead of returning a misleading empty list.
  • Estimates are separate from facts. The design labels inferred figures, such as cheque size, as estimates.
  • Hiding the page from search engines is not a login. The record describes a private link and no-index headers. Those do not establish an authenticated sign-in or prevent someone with the link from opening it.

For technical readers

How the system works

Investor records and portfolio-company evidence are joined by investor ID. A Python builder packages the cleaned records and category matches into one HTML page. Filtering then happens in the browser.

Licensed databaseInvestors + portfolio companies
Investor file4,483 candidates
Category rulesCompany tags + descriptions
Catalogue builderJoin by investor ID
Filterable pageEvidence on every card

In more detail

Technology used (4 parts)Each part of the system, and why it was chosen.
LayerTechnologyWhy it was chosen
MatchingRules over portfolio tags and textAn explainable match without an AI model adding guesses.
CataloguePython · compressed data · self-contained HTMLBuilds a page whose filters run entirely in the browser.
HostingVercel static hosting · no-index headersA shareable page excluded from search indexing; authentication is not established by the record.
ChecksVitest · Biome · TypeScript · GitHub ActionsLint, the build and automated tests run for each pull request and push to main.
3 engineering decisions that matteredThe problem, what was done, and what it changed.
  1. Match what an investor funded

    The first filter found six investors because it read their own profiles. An audit found no portfolio data in those fields. A new step reads portfolio companies and joins the evidence by investor ID.

    ResultUsing only portfolio-company tags found 125 seed investors, in line with the hand check. Adding description evidence brought the shortlist to 185.

  2. Make a missing category file obvious

    The builder still writes a page when category data is absent. It emits a warning and disables those filters as pending, so a data problem cannot look like a valid zero-result search.

  3. Keep matching inspectable

    Rules use 14 AI industry tags and text mentions in portfolio descriptions. Each card distinguishes tag evidence from text evidence. Weighted scoring was left for a later iteration.

Testing and build recordHow it was tested, and the build by the numbers.

Quality and reliability

  • 82 automated tests across 14 files cover the data pipeline, crash recovery and category membership rules.
  • A test checks that an investor's own profile does not create portfolio-category membership.
  • GitHub Actions checks lint, TypeScript and tests on every pull request and push to main.

By the numbers (build)

  • About 2.5 days to the first working shortlist page.
  • 33 commits from 22 to 25 August.
  • 6 category definitions; only AI implemented, using 14 industry tags.

Is it a fit?

Could this work for your team?

  • You already have a target database. Founders and business-development teams need to choose who to approach from a defined set of accounts.
  • Your current filters miss what matters. You want to know who has done something, not just who says they do it.
  • Your team keeps repeating research. A shortlist should carry the reason for each match into the next conversation.
  • You want to keep the decision. Adapt the data source, fit rules and evidence for your team. People choose who to contact.

Do you have a large database but no clear shortlist?

Conducted by Apurva · Not a sales call