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.
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 5Facts
Facts from the repository
Read from GitHub on 2026-10-11.
| Job | Score leads by fit against an ideal customer profile you edit. |
|---|---|
| License | MIT |
| Language | TypeScript |
| A real run needs |
|
| Demo mode | Yes. npm run demo scores 40 generated leads on a reserved example domain. It needs no token, makes no network call and costs nothing. |
| Repository | github.com/loootai/looot-score |
| Facts read on | 2026-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.
| Endpoint | Used for | Live price |
|---|---|---|
| quickenrich-api-employees-email-searchquickenrich | Title, seniority and company, by email | reading live price |
| dropleads-simple-enrichdropleads | Title and seniority, by name and domain | reading live price |
| thecompaniesapi-companies-by-emailthecompaniesapi | Industry, headcount and country | reading live price |
| predictleads-companies-technology-detectionspredictleads | Tech stack | reading 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.
FAQ
Questions about looot-score
Keep going
Related on looot.ai
- The Companies API through looot
Company data and search API
- Free tools
Jobs you can run in the page
- All open source repos on looot
The hub with every repo
- 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.