Article

Your AI agents need a scoring layer: the same 43 accounts, worked twice

An agent with no ranking still prioritizes. It just does it privately. Here is one list worked twice, and what a score and its reasons change.

Greg Toler, Founder 8 min read AI scoring Transparency Prioritization

An AI agent will do exactly what you ask, to every record you give it, without getting bored. That is the appeal, and it is also the problem. A rep with 43 accounts and one afternoon makes choices. An agent with 43 accounts and no guidance works all of them the same way, or makes up its own order and does not tell you what it was.

The fix is not a smarter agent. It is something for the agent to read before it acts: a score for each record, and the reasons behind it. This page calls that a scoring layer, and shows what changes when one is there.

The setup

One agent. One list of 43 accounts in HubSpot. One instruction: research each account, write a first email to the best contact, and work the most promising accounts first.

The list is ordinary. Some accounts are a strong match. A few are current customers that should not be on it. One is a competitor. Several have half their fields empty.

Run one: no scoring layer

The agent has to decide what “most promising” means, so it does. Nobody told it how, and it does not ask.

What the agent didWhy
Put the accounts with the longest notes firstMore text looked like more opportunity
Wrote a careful, researched email to a competitorNothing said not to
Offered a first call to a current customerThe record did not look any different to it
Spent the same effort on a 12-person agency as on its best-matched accountIt had no way to tell them apart
Skipped two strong accounts with thin recordsEmpty fields read as “nothing here”
Produced a different order when run again the next morningIts judgment is not a fixed rule

None of this is the agent misbehaving. It did what it was asked. The trouble is that the question “which of these matter?” got answered inside the agent, where nobody can read it, and it got answered a little differently each time.

The manager’s review the next day is the tell. They ask why the competitor got an email, and there is no answer to point to. There is only the output.

Run two: the same list, with a score and its reasons

Now each account carries a score out of 10 and the factors behind it, written to the record before the agent starts. The instruction changes by four lines:

  1. Work accounts in score order.
  2. Read the top factor and use it in the email.
  3. Below 5, do not contact the account. Log the main reason.
  4. If a factor is 0 because a field is empty, send the account for enrichment instead of writing to it.
Demo accountScoreWhat the record saysWhat the agent did
Account 78.3Strong on industry and buying rolesWorked it first. Opened the email with the industry fit. Flagged it for a rep the same day
Account 197.6Right size, three contacts in buying rolesWrote to the most senior contact and named the other two for follow-up
Account 315.4Tech stack field is empty, contributing 0Did not send. Added the account to a list for enrichment
Account 123.1Agency or reseller, a disqualifying factorNo contact. Logged the reason
Account 401.7Current customer, a disqualifying factorNo contact. Logged the reason
Account 30.9Competitor domain, a disqualifying factorNo contact. Logged the reason

The agent is the same. What changed is that the deciding happened somewhere else, in a model a person wrote, and the agent was left with the part it is good at: doing the work, in order, at speed.

The manager’s review is different too. Why did account 31 not get an email? Because the tech stack field was empty and the score said so. That is a sentence you can act on.

What the agent read

Here is account 7 as the agent saw it.

Demo data. The record the agent read for account 7. Four factors add, the disqualifying factor subtracts, and the total is the weighted sum.

The math: 9.4 at 30% is 2.82, 8.6 at 25% is 2.15, 9.1 at 25% is 2.275, and 7.8 at 15% is 1.17. That adds to 8.415. The disqualifying factor subtracts 1.4 at 5%, or 0.07, for 8.345, shown as 8.3.

The disqualifying factor is there because the company has a small reseller arm. It takes a little off, and the account still scores well above the cutoff.

A number on its own would have told the agent where to start. The factors told it what to say. Industry is the top factor, so the email leads with industry. Three contacts in buying roles means there is more than one person to write to.

The four jobs of a scoring layer

Put the two runs side by side and the layer is doing four things.

JobWithout itWith it
OrderThe agent invents a priorityThe agent works in score order
ReasonsEvery email is written from scratch, or from a templateThe top factor shapes the message
Stop rulesCompetitors and customers get outreachDisqualifying factors pull the score under the cutoff, and the agent stops
A recordNobody can say why a thing was doneThe score and the factors are on the record, with the time they were calculated

The fourth job is the one teams miss. People forgive an agent a clumsy email. They do not forgive one they cannot explain.

A five-minute check for your own setup

Pick any agent you run on your CRM today and answer these.

  1. If it has 200 records and time for 50, how does it choose the 50?
  2. Is that choice written down anywhere outside the agent’s prompt?
  3. If you run it twice on the same records, do you get the same 50?
  4. What stops it from contacting a customer, a competitor, or a partner?
  5. When it skips a record, can you see why?

If the answer to the first question is “it decides”, you have run one.

Where BoostIdeal fits

BoostIdeal is a scoring engine. It is the layer in run two. You build the model and set the weights, with AI helping you analyze your data and draft a starting point. It scores leads, contacts, accounts, and custom objects out of 10, and writes each score and the factors behind it to HubSpot properties. It can also share those reasons wherever your rep works, such as in Slack or by email. Scores recalculate hourly by default, and in near real time with webhook sync.

What it does not do matters as much here:

  • It does not run agents. Your agents, workflows, and sequences stay in your own tools. BoostIdeal gives them something to read.
  • It does not decide the model. A person sets the weights, and they do not change on their own. That is the point: the agent’s priorities are yours.
  • It does not keep a score history. A record shows its current score and when it was last calculated.

If you have not written a model yet, start with your ideal customer profile and the five-step framework for building an ICP scoring model. An agent can only follow a priority that exists.

Frequently asked questions

What is a scoring layer for AI agents?

It is a score and its reasons, written to each record before an agent acts. The agent reads it to decide what to work first, what to say, and what to leave alone.

Can the agent just score the records itself?

It can produce a number. The number may not be the same on every run, and the logic stays inside the agent where nobody can read or change it. A written model gives the same score for the same record every time.

Does BoostIdeal run AI agents?

No. It scores records and writes the score and its reasons to HubSpot. Your agents and workflows act on them in your own tools.

What should an agent do with a low score?

Whatever you decide in advance. A common rule is to work 8 and up first, use a lighter touch from 5 to 7.9, and send nothing below 5. The agent follows the rule. A person sets it.

How does an agent know not to contact a customer or a competitor?

Make it a disqualifying factor in the model, with enough weight to take the score under your cutoff. The factor shows on the record, so the agent can stop and log why.

The takeaway

An agent without a scoring layer still prioritizes. It just does it privately, and differently each time. Give it a score, the reasons, and a few stop rules written by a person, and the same agent works the right accounts in the right order and can show you why.

Score anything
across the whole team.

RevOps
Owns the model

One shared definition of good, wired into HubSpot, that doesn’t need an engineer to change.

SDR / BDR
Works the list

A ranked list of who to work today, with the reasons sitting there before the call.

AE
Runs the deals

See which open accounts actually fit, and why, before you spend a cycle.

Sales leadership
Owns the number

One prioritized pipeline the team trusts, instead of reps cherry-picking.

Marketing / Demand gen
Feeds the pipeline

Spend on best-fit accounts, and stop passing leads sales won’t work.

Customer success
Grows the base

Score existing accounts for fit, expansion, and risk.

Sophisticated scoring for enterprise teams, simple enough for a team of one, technical or not.