MIT open source, paid data

Open source MadKudu alternative: looot-score

Score leads by fit against an ideal customer profile you edit.

The code is MIT open source. The data is not free and not self-hosted: every real run calls looot and pays per call at the catalog price shown before the run.

Short answer

What is looot-score?

looot-score is an MIT-licensed web app and CLI that enriches a CSV of leads, scores each one against an ideal customer profile you edit and returns a grade from A to D with the reasons. Every fact names the provider that supplied it. The code is open source. The enrichment data is paid per looot call.

What it does

What looot-score does and how to run it

Upload a CSV with an email column, or first name, last name and domain columns. For each lead it fetches the person (title, seniority) and the company (industry, headcount, country, tech stack) from named providers.

It scores six criteria from your ICP file: company size, industry, country, job title, seniority and tech stack. Each grade lists the points earned, the fact found and the provider. A fact no provider returned earns nothing and is marked unknown.

Enrichment is stored. Editing the ICP re-scores every stored lead with no looot call. A company is fetched once per domain, however many leads share it.

This is the job that products such as MadKudu do.

Commands for looot-score
git clone https://github.com/loootai/looot-score && cd looot-score
npm install --ignore-scripts
npm run demo
npm run score -- --demo
npm run score -- data/sample-leads.csv --dry-run
export LOOOT_TOKEN=...
npm run score -- leads.csv --icp config/icp.json --max-spend 5

Facts

Facts from the repository

Read from GitHub on 2026-10-11.

Facts about looot-score
JobScore leads by fit against an ideal customer profile you edit.
LicenseMIT
LanguageTypeScript
A real run needs
  • Node.js 20.9 or newer to run it, 22.12 or newer for its tests
  • A looot token with the scopes runs.execute, catalog.read, runs.read and usage.read, for real runs only
  • A funded looot balance, for real runs only
Demo modeYes. npm run demo scores 40 generated leads on a reserved example domain. It needs no token, makes no network call and costs nothing.
Repositorygithub.com/loootai/looot-score
Facts read on2026-10-11

Data and price

Endpoints it calls, with the live price

Every real run calls these looot endpoints. The price column is read live from the catalog, never typed into this page.

Endpoints called by looot-score with their live catalog price
EndpointUsed forLive price
quickenrich-api-employees-email-searchquickenrichTitle, seniority and company, by emailreading live price
dropleads-simple-enrichdropleadsTitle and seniority, by name and domainreading live price
thecompaniesapi-companies-by-emailthecompaniesapiIndustry, headcount and countryreading live price
predictleads-companies-technology-detectionspredictleadsTech stackreading live price

Prices are read from the looot public catalog when the page loads. Some endpoints are priced per result, so a run that returns many rows costs more than one call. The CLI dry run prints the exact quote for your input before anything is charged.

Limits

What looot-score does not do

  • It grades fit only, from rules you can read. It has no behavioural or engagement scoring, no model trained on your closed-won deals and no CRM sync.
  • Grades run from A to D. Hard rules cap a lead at D: a disqualified industry or title, or a personal mailbox with no company domain.
  • Headcount ranges such as 51 to 200 are scored at their middle value.
  • Response parsing was written from provider documentation and fixtures. The README says it was not checked against a recorded paid response, and every call is marked unverified in the code.
  • The web app has no sign-in, and the ICP editor writes a config file on disk. Keep it on your machine or behind access control.

With an agent

Run it with your agent

Copy the prompt, give it to the agent you already use, and it dry-runs first.

Prompt: looot-score
Use looot to grade the leads in my CSV against my ideal customer profile. Read https://looot.ai/skill.md first. Then clone https://github.com/loootai/looot-score, run its dry run on my file and show me the quote and the cap. Run the real scoring only after I say yes, and list the A and B leads with the reasons for each grade.

FAQ

Questions about looot-score

It enriches a CSV of leads through looot, scores each lead against an ICP file and returns a grade from A to D. Every grade lists its criteria, the points earned and the provider behind each fact.

The code is free under the MIT license. The enrichment data is not. Every real run is a set of paid looot calls at the catalog price, quoted before the run. Demo mode and the dry run cost nothing.

Points earned over the points of the criteria in use, times 100, then cut-offs for A, B, C and D that you can change. A criterion with empty lists drops out. A fact no provider returned earns nothing and is marked unknown.

One person call per lead, plus one company call and one tech call per domain. The table on this page shows the live catalog price of each endpoint. The dry run prints the quote for your file.

No. Enrichment is stored, so editing the ICP and re-scoring the stored leads makes no looot call.

It grades fit only. It has no engagement scoring, no predictive model and no CRM sync. Its parsers were written from documentation and fixtures and are marked unverified.

Yes. npm run demo and the CLI --demo flag use generated leads and need no token. A real run needs a token and a funded balance.

Give your agent the prompt on this page and the setup link https://looot.ai/skill.md. The repo ships a skill that runs the dry run first, then the real run with a cap.

Keep going

For agents
repo
https://github.com/loootai/looot-score
job
Score leads by fit against an ideal customer profile you edit.
license
MIT
language
TypeScript
endpoint
quickenrich: quickenrich-api-employees-email-search (people_enrich_by-email)
endpoint
dropleads: dropleads-simple-enrich (people_enrich)
endpoint
thecompaniesapi: thecompaniesapi-companies-by-email (company_enrich)
endpoint
predictleads: predictleads-companies-technology-detections (company_technographics)
price
per call, read live from the catalog on the web page
framing
MIT code, paid data, every real run calls looot
setup
https://looot.ai/skill.md
llms.txt
https://looot.ai/llms.txt
read
2026-10-11

Run looot-score on your own looot account.

Try the demo first, no account needed. For a real run, start your workspace, top up, and use the quote the repo prints before it spends anything.