Score Your Lead List in Minutes
Turn any raw CSV of leads into prioritized GTM intelligence — a clear opportunity score, ICP fit, pain point and a ready cold-email opener for every single row. Free to download, runs on your own machine.
No sign-up walls · no SaaS · self-hosted and private
What the tool adds to every lead row
Point it at any leads CSV. For each row it appends five columns and then sorts the whole list by how worth-pursuing each lead is.
High / Medium / Low — how well the lead matches your ideal customer profile.
The likely problem the lead is trying to solve, stated in a phrase.
A concrete signal from their row (or "None detected" when there isn't one).
0 to 100. Higher = more worth pursuing right now.
A ready-made cold-email opening line tailored to that lead.
Get the free tool
One self-contained zip: the scoring script, a sample lead file, a configurable ICP definition and step-by-step instructions. Unzip, install one dependency, run it.
Requires Python 3 and a DeepSeek API key (small per-lead cost). Instructions below.
Detailed setup instructions
1. Unzip & install
- Download the zip above and unzip it (
unzip lead-intelligence-system.zip). - Open a terminal in the folder and run
pip install -r scripts/requirements.txt(installspolars,mlverse-mallandchatlas).
2. Get a DeepSeek API key
Create a key at platform.deepseek.com. This is the low-cost model the tool scores with — roughly pennies per lead. Keep it private.
3. Set your Ideal Customer Profile (ICP)
Edit scripts/icp_config.json and replace the example with your own ideal-customer definition. This is the yardstick every lead is scored against.
4. Prepare your leads CSV
Make a CSV with one row per lead. Columns can be anything — the tool reads every field per row. The scripts/sample_leads.csv file shows the recommended shape: company, contact_name, title, industry, employee_count, notes.
5. Run it
export DEEPSEEK_API_KEY=sk-xxxxxxxx
python scripts/process_leads.py --input leads.csv --output scored_leads.csv
Optional flags: --icp-config icp_config.json to point at your ICP file, --limit 500 to only process the first N rows (great cheap test run), and --model deepseek-chat to override the model.
6. Verify it works
Run the tiny sample first to confirm everything wired up correctly:
python scripts/process_leads.py --input scripts/sample_leads.csv --output /tmp/sample_scored.csv
You should get a scored CSV sorted by opportunity_score (highest first).
How it works
The tool runs local, row-by-row scoring on your machine — your data never leaves your hands. It feeds each lead row plus your ICP definition to the model, which returns strict JSON that becomes the five output columns. Honest by design: if a signal (funding, headcount, tools) isn't in your row, the tool treats it as unknown, not favorable — so nothing is invented.
Frequently Asked Questions
Is this really free?▾
Yes. The tool is free to download and run. It uses a DeepSeek API key you provide — you only pay DeepSeek's own rate, which is a fraction of a cent per lead.
Do I need to know how to code?▾
No. You need Python 3 installed, then two commands (install + run). All configuration is plain-English edits to a JSON file.
How accurate is the scoring?▾
It's driven by your ICP definition and the actual data you give it, and it refuses to invent facts. It works best as a prioritization sieve that tells you which leads deserve a human look first — not as an oracle.