How to score leads for fit in a spreadsheet (our 339-row list)

Our launch post on LinkedIn got about 1,200 impressions. Our analytics saw zero visits from it. Inbound was getting us reach and almost no real signups. So in mid-October we decided to go outbound: a short, personal message to a few companies a week, each with a demo built around their own team.

The first job was a list. Our marketer bot built one in a single turn from four sources: a colleague's network, my own, Indian startups funded between April and October 2026, and AI-first Indian startups. It came to 339 rows.

339 rows is a spreadsheet, not a plan. I could write maybe ten good messages that week. The question was which ten.

Fit and reach are different columns

Most lead scoring mixes two questions. Fit asks whether this company would get real value from what you sell. Reach asks whether you can get a real conversation with them. A perfect-fit company you can't reach is less useful this week than a good-fit company where a friend can introduce you, but it's still a better company to aim for next month.

So keep them apart. Score fit, label the tier, then sort each tier by reach.

The five fit questions

Pick five questions that describe your best customer. These are the kind we use, written for a product sold to small technical teams:

# Question 0 points 1 point 2 points
1 Is the team the right size? Over 100 people 16-100 2-15
2 Do they have the problem? No sign of it Some sign Clearly hiring for it, or talking about it
3 Are they already using tools like yours? No Some They build with them every day
4 Can they pay? No funding or revenue signal Small round or early revenue Funded this year
5 Will they decide fast? Committee, procurement Unclear Founder decides

Then one deal-breaker column, yes or no: competitor, wrong country, already said no, or a sector you won't sell to. A deal-breaker overrides the score.

Ten points total. That's coarse on purpose. A 37-point model feels precise, but nobody can tell you why one row is a 31 and another a 29.

The sheet

Column What goes in it
A. Company Name and website
B. What they do One line, in your words
C-G. Q1-Q5 0, 1 or 2
H. Deal-breaker yes / no
I. Score =SUM(C2:G2)
J. Tier =IF(H2="yes","Out",IF(I2>=8,"High",IF(I2>=5,"Medium","Low")))
K. Fit note One sentence: why this tier
L. Source The link that backs up the note
M. Reach Warm intro / direct / cold
N. Who The person to talk to

Then sort by tier, and by reach inside each tier. Your first ten are the top of High with a warm path.

lead-fit-scores.xlsx
Company Q1 Q2 Q3 Q4 Q5 Score Tier Fit note Source Reach
Acme Analytics 2 2 2 2 1 9 High 8 people, hiring a first marketer acme.example/careers Warm intro
Example Labs 2 1 2 2 2 9 High Founder posts about AI agents weekly examplelabs.example/blog Warm intro
Sample Co 2 2 1 2 1 8 High Funded this year, 12 people sample.example/news Direct
Widget Works 1 1 2 1 1 6 Medium 40 people, some sign of the problem widget.example Warm intro
Demo Systems 1 1 1 1 1 5 Medium Small round, decision maker unclear demo.example/about Cold
Generic Corp 0 1 0 1 0 2 Low Over 100 people, procurement generic.example Cold

What our 339 rows looked like

Our first version was simpler than the model above. Each row got a label (High, Medium or Low) and a one-line fit note, plus a source link for the public rows. It was a judgment call per row, made quickly, with the reason written down.

Source Rows High fit
A colleague's network 100 39
My own network 34 18
Startups funded Apr-Oct 2026 85 44
AI-first startups 120 81
Total 339 182

Two things came out of it that I'd copy.

The first was a fourth label, Channel. Some rows were investors and advisors, not buyers. They would never use the product themselves, but one introduction from them could open a whole portfolio. Scoring them as Low would have buried the most useful people on the list.

100 → 39colleague's network, rows to High fit
34 → 18my own network
85 → 44startups funded Apr-Oct 2026
120 → 81AI-first startups
339 → 182total rows to High fit

The second was how the sources compared. 81 of the 120 AI-first rows came out High, about two in three, against roughly two in five for the colleague's network. We'd picked that source because we expected fit, so it isn't a fair test, but it was a useful hint about where to look first.

An example: scoring 40 rows on a Monday

This is an example, not our real list.

  1. A founder writes in a thread: "Score these 40 companies using the five questions in tab 2. Add a fit note and a source link for each, mark deal-breakers, and sort by tier then reach."
  2. Back comes a sheet: 9 High, 17 Medium, 11 Low, 3 Out (two competitors, one wrong country). Each row has a note like "6 people, hiring a first marketer, founder posts about AI agents weekly" and a link.
  3. The founder spot-checks the top ten. One High is a 12-person agency where question 3 scored 2 because of a blog post, and the link shows the post is two years old. They drop it to 1, which moves the agency to Medium. They also change one Low to Channel: the founder there is an angel investor in three companies on the list.
  4. They approve the top eight High rows with a warm or direct path, and ask for a short intro draft for each. Nothing goes out yet; sending is a separate yes.

Step three takes ten minutes and is the most valuable ten minutes in the process. Keep it.

How to set it up in Caret

Our marketer bot built our 339-row list in Caret. This is that setup with the scoring model added.

  1. Create a bot (Claude Code or Codex, the model you choose, on your own Claude or ChatGPT plan) with one owner, usually whoever does sales.
  2. Write its job: who your customer is, your five questions, your deal-breakers, and the rule "no score without a source link."
  3. It researches in its own web browser on its own computer, so give it the sources to start from: your network export, a funding list, a directory.
  4. Ask it to build the sheet as an Excel file with live formulas and attach it in the thread.
  5. Put it on a schedule, for example "Mondays 09:00," to add and score new rows each week. Its memory lasts between conversations, so it remembers who's already on the list and what you rejected.
  6. Keep outreach behind approvals. Before a bot sends anything, it asks, and an admin approves or denies with one click.

Try asks like:

"Score these rows with the rubric in tab 2 and flag any note older than a year."

"Which High-fit companies have a warm intro path? Draft the ask to the person who'd introduce us."

"Add a Channel label for investors and advisors, and list them separately."

FAQ

What is a lead fit score? A number or label for how closely a company matches your best customer, based on facts like team size, the problem they have, and who decides. It says nothing about whether they're ready to buy today.

How many criteria should a lead scoring model have? Four to six is plenty for a small team. Score each one 0, 1 or 2 so you can explain any row out loud in a sentence.

Can AI score leads for me? It can do the research and fill in the sheet, with a reason and a source for each score. A person should still spot-check the top of the list before any message goes out.

For the bot that does this research every week, see our page on an AI sales prospecting assistant. Put a bot on it: start your 7-day trial or download the Mac app.

See it in CaretAI Sales Prospecting Assistant That Builds ListsCaret (caretbot.com) is an AI sales prospecting assistant. A bot builds target lists in a spreadsheet, scores fit and drafts intro asks. You send them.

More from the blog

Account research before a sales call: a one-page brief templateAn AI agent approval policy template you can copy todayHow to organize AI agents on a small team: our five-bot org chart