Sign in
abstract agent · marketing · 20 processes · plugin 1.0.0

Lead scorer

lead-scorer v1

Turns a form submission into a scored, routed lead in minutes: deduplicates, enriches, scores against the current model, assigns by territory, and notifies the owner with the evidence attached. Every activity this agent holds can run unattended, and it earns that by leaving the evidence behind every decision it makes.

The abstract agent

What it is granted, and what it hands to a person

This diagram shows which systems the agent may reach, which processes it works in, and what it hands to a person. Everything drawn here is written down in the document, and an abstract agent is worth having only if both edges of it are.

WORKS INref/mkt/account-based-playref/mkt/analyze-customer-baseref/mkt/buyer-personaGRANTEDthe CRMwriteenrichment sourcesreadthe notification channelwriteTHE ABSTRACT AGENTlead-scorerv1turns a form submission…HANDS TO A PERSONa lead it cannot score or…to the exception queue, with…a spike in exceptions,…a person decides

Works alone, because lead routing convenes no rooms in the ordinary case. That is what makes the records this agent leaves the only way anyone can check its work. Feeds the weekly accuracy review that the analytics agent runs.

The plugin

What is in the package

11 skills and the systems they need, written to version 1.1.0 of the Agent Plugins standard. Nothing in these files names a product. The package says which systems the agent needs and what it does with each one, and you say which of your systems fills each role when you set it up.

lead-scorer · 16 files · 1.0.0
com.agentcatalog.agent/NOT.mdWhat the agent does not do, and when it asks a person.
# Where this abstract agent stops

Does not edit the scoring model or the territory map - both change only
through their own review, as versioned amendments. Does not contact the
lead.

## What always goes to a person

- a lead it cannot score or route - to the exception queue, with what it
  knows attached, instead of guessing
- a spike in exceptions, because that usually means an upstream form or
  data source changed
com.agentcatalog.agent/RECORDS.mdThe records the agent must leave behind.
# The records this abstract agent must leave

This is the contract. An agent implementing `lead-scorer` leaves the
following behind, on every run.

Per lead: the merged record with each filled field naming its source,
the score with the model version and the inputs it was computed from,
and the assignment with the reason. Any auditor can replay any decision
from what it left behind.

An agent that leaves less than this does not implement `lead-scorer`,
whatever else it does well.
com.agentcatalog.agent/SERVERS.mdThe systems the agent needs, by role rather than by product.
# The systems this abstract agent needs

Three systems, named by role rather than by product. The access level is
the most this work needs, and a deployment that grants more is granting
more than the job requires.

| Role | Access |
|---|---|
| the CRM | write |
| enrichment sources | read |
| the notification channel | write |

Whoever builds an agent from this plugin writes the `mcp.json` that
points these roles at their own systems. Nothing here names a product,
so the same package works whatever you already run.
plugin.jsonThe manifest. It lists the skills and the systems the agent needs.
{
  "$schema": "https://agent-plugins.org/schemas/1.1.0/plugin.schema.json",
  "name": "lead-scorer",
  "version": "1.0.0",
  "description": "The lead-scorer abstract agent. Turns a form submission into a scored, routed lead in minutes: deduplicates, enriches, scores against the current model, assigns by territory, and notifies the owner with the evidence attached.",
  "author": {
    "name": "AgentCatalog",
    "url": "https://agentcatalog.com"
  },
  "homepage": "https://agentcatalog.com/abstract-agents/lead-scorer",
  "repository": "https://github.com/jeffrschneider/agentcatalog",
  "license": "CC-BY-4.0",
  "keywords": [
    "abstract-agent",
    "reference",
    "marketing",
    "lead-scoring-model",
    "lead-routing",
    "ideal-customer-profile",
    "abstract"
  ],
  "extensions": {
    "com.agentcatalog.agent": {
      "agent": "lead-scorer",
      "agentVersion": 1,
      "department": "marketing",
      "abstract": true,
      "works": "Works alone, because lead routing convenes no rooms in the ordinary case. That is what makes the records this agent leaves the only way anyone can check its work. Feeds the weekly accuracy review that the analytics agent runs.",
      "servers": [
        {
          "name": "the CRM",
          "role": "crm",
          "access": "write"
        },
        {
          "name": "enrichment sources",
          "role": "enrichment-sources",
          "access": "read"
        },
        {
          "name": "the notification channel",
          "role": "notification-channel",
          "access": "write"
        }
      ],
      "records": [
        "Per lead: the merged record with each filled field naming its source, the score with the model version and the inputs it was computed from, and the assignment with the reason.",
        "Any auditor can replay any decision from what it left behind."
      ],
      "escalates": [
        "a lead it cannot score or route - to the exception queue, with what it knows attached, instead of guessing",
        "a spike in exceptions, because that usually means an upstream form or data source changed"
      ],
      "not": [
        "Does not edit the scoring model or the territory map - both change only through their own review, as versioned amendments.",
        "Does not contact the lead."
      ],
      "processes": [
        {
          "process": "ref/mkt/account-based-play",
          "activities": [
            "Hand over the Accounts that Moved"
          ]
        },
        {
          "process": "ref/mkt/analyze-customer-base",
          "activities": [
            "Hand over the Findings"
          ]
        },
        {
          "process": "ref/mkt/buyer-persona",
          "activities": [
            "Hand over the Persona"
          ]
        },
        {
          "process": "ref/mkt/channel-program",
          "activities": [
            "Set up the Partner Systems"
          ]
        },
        {
          "process": "ref/mkt/co-marketing-campaign",
          "activities": [
            "Split and Hand over the Leads"
          ]
        },
        {
          "process": "ref/mkt/enable-channel-partner",
          "activities": [
            "Hand over the Selling Kit"
          ]
        },
        {
          "process": "ref/mkt/field-event",
          "activities": [
            "Follow up with the People Who Came"
          ]
        },
        {
          "process": "ref/mkt/ideal-customer-profile",
          "activities": [
            "Test the Signal Coverage",
            "Hand over the Profile"
          ]
        },
        {
          "process": "ref/mkt/lead-routing",
          "activities": [
            "Capture and Dedupe",
            "Enrich",
            "Score",
            "Route",
            "Notify",
            "Clear the Exception"
          ]
        },
        {
          "process": "ref/mkt/lead-scoring-model",
          "activities": [
            "Read the Exception Queue",
            "Test the Signal Coverage",
            "Check What Each Does to Routing",
            "Run It Beside the Live Model",
            "Hand over the Model",
            "Put It into Production",
            "Watch the First Weeks"
          ]
        },
        {
          "process": "ref/mkt/nurture-sequence",
          "activities": [
            "Set the Exits",
            "Hand over the Ready Ones"
          ]
        },
        {
          "process": "ref/mkt/segment-the-market",
          "activities": [
            "Test Whether Each Segment Can Be Reached",
            "Hand over the Segments"
          ]
        },
        {
          "process": "ref/mkt/trade-show",
          "activities": [
            "Set up Lead Capture",
            "Hand over the Leads"
          ]
        },
        {
          "process": "ref/mkt/webinar",
          "activities": [
            "Hand off the Leads"
          ]
        },
        {
          "process": "ref/mkt/win-back-campaign",
          "activities": [
            "Hand over the Responders"
          ]
        }
      ]
    }
  }
}
README.mdWhat the package is, and why it carries no mcp.json.
# lead-scorer

This is an abstract agent, published as an Agent Plugin. An abstract
agent is a job description rather than an implementation. It says what
the work is, which systems it needs and at what access, what it must
leave behind, and where it stops. Any agent that leaves the records can
implement it.

The plugin carries eleven skills, no `mcp.json`, and everything the
abstract agent owes under `com.agentcatalog.agent/`.

## Why there is no mcp.json

A conformant server entry in `mcp.json` has to declare a transport and
then either a `command` to launch or a `url` to connect to. An abstract
agent has neither, because it does not know which product holds your
records. Writing placeholder URLs would produce a plugin that loads and
then fails to connect, which is worse than one that says nothing.

Section 6.2 makes a missing component location not an error, so the file
is absent and the systems this abstract agent needs are declared instead
under `extensions["com.agentcatalog.agent"].servers`, as a role, an
access level and what the access is for. Whoever builds an agent from
this plugin writes the `mcp.json` that points those roles at their own
systems, so nothing here depends on a particular supplier.

## Why the obligations are in an extension

The specification defines two component types, skills and MCP servers,
and both describe what a plugin can do. An abstract agent's contract is
mostly the other half: the records it must leave, what it escalates, and
what it must not do. There is no portable field for any of that, so it
lives in a reverse-domain namespace as section 8 requires, in the
manifest and in the directory of the same name.

## Where this abstract agent is used

`ref/mkt/account-based-play`, `ref/mkt/analyze-customer-base`,
`ref/mkt/buyer-persona`, `ref/mkt/channel-program`,
`ref/mkt/co-marketing-campaign`, `ref/mkt/enable-channel-partner`, and 9
more. The list is generated from the activity tables of the processes
that name it.

https://agentcatalog.com/abstract-agents/lead-scorer
skills/build-one-clean-record-from-a-submission/SKILL.mdTakes an incoming submission, merges it into any record already held for the same person or company, and fills in the company size, industry and geography that the model needs and the form did not ask for. Use it when running `ref/mkt/lead-routing`.
---
name: build-one-clean-record-from-a-submission
description: Takes an incoming submission, merges it into any record already held for the same person or company, and fills in the company size, industry and geography that the model needs and the form did not ask for. Use it when running `ref/mkt/lead-routing`.
license: CC-BY-4.0
metadata:
  agent: lead-scorer
  agent-version: "1"
---

# Build one clean record from a submission

## What it does

Takes an incoming submission, merges it into any record already held for
the same person or company, and fills in the company size, industry and
geography that the model needs and the form did not ask for.

## Where it happens

The agent does this in two activities across one reference process. Each
one names the activity as that process words it.

- **Capture and Dedupe**
  - `ref/mkt/lead-routing`, activity 1 -
    [Route Inbound Lead](../../../../processes/marketing/lead-routing.md)
- **Enrich**
  - `ref/mkt/lead-routing`, activity 2 -
    [Route Inbound Lead](../../../../processes/marketing/lead-routing.md)

## What to record

Per lead: the merged record with each filled field naming its source,
the score with the model version and the inputs it was computed from,
and the assignment with the reason. Any auditor can replay any decision
from what it left behind.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/put-a-new-model-into-service/SKILL.mdSwitches scoring over to a new version, so every lead from that point on is scored by it. Use it when running `ref/mkt/lead-scoring-model`.
---
name: put-a-new-model-into-service
description: Switches scoring over to a new version, so every lead from that point on is scored by it. Use it when running `ref/mkt/lead-scoring-model`.
license: CC-BY-4.0
metadata:
  agent: lead-scorer
  agent-version: "1"
---

# Put a new model into service

## What it does

Switches scoring over to a new version, so every lead from that point on
is scored by it.

## Where it happens

The agent does this in one activity across one reference process. Each
one names the activity as that process words it.

- **Put It into Production**
  - `ref/mkt/lead-scoring-model`, activity 15 -
    [Maintain Lead Scoring Model](../../../../processes/marketing/lead-scoring-model.md)

## What to record

Per lead: the merged record with each filled field naming its source,
the score with the model version and the inputs it was computed from,
and the assignment with the reason. Any auditor can replay any decision
from what it left behind.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/report-how-the-scoring-is-holding-up/SKILL.md"Reports how the live model is doing: the scores it gave set against what those leads went on to do, and the leads no rule could place with how each one was settled. Use it when running `ref/mkt/lead-scoring-model`."
---
name: report-how-the-scoring-is-holding-up
description: "Reports how the live model is doing: the scores it gave set against what those leads went on to do, and the leads no rule could place with how each one was settled. Use it when running `ref/mkt/lead-scoring-model`."
license: CC-BY-4.0
metadata:
  agent: lead-scorer
  agent-version: "1"
---

# Report how the scoring is holding up

## What it does

Reports how the live model is doing: the scores it gave set against what
those leads went on to do, and the leads no rule could place with how
each one was settled.

## Where it happens

The agent does this in two activities across one reference process. Each
one names the activity as that process words it.

- **Read the Exception Queue**
  - `ref/mkt/lead-scoring-model`, activity 3 -
    [Maintain Lead Scoring Model](../../../../processes/marketing/lead-scoring-model.md)
- **Watch the First Weeks**
  - `ref/mkt/lead-scoring-model`, activity 16 -
    [Maintain Lead Scoring Model](../../../../processes/marketing/lead-scoring-model.md)

## What to record

Per lead: the merged record with each filled field naming its source,
the score with the model version and the inputs it was computed from,
and the assignment with the reason. Any auditor can replay any decision
from what it left behind.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/route-leads-to-their-owners/SKILL.mdWorks out who owns a lead from its territory and its score, assigns it, and tells that owner with the score and the evidence behind it. Use it when running `ref/mkt/account-based-play` and 8 other reference processes.
---
name: route-leads-to-their-owners
description: Works out who owns a lead from its territory and its score, assigns it, and tells that owner with the score and the evidence behind it. Use it when running `ref/mkt/account-based-play` and 8 other reference processes.
license: CC-BY-4.0
metadata:
  agent: lead-scorer
  agent-version: "1"
---

# Route leads to their owners

## What it does

Works out who owns a lead from its territory and its score, assigns it,
and tells that owner with the score and the evidence behind it. The same
work runs over a batch of leads that came from an event, a campaign, a
program or a list shared with another party.

## Where it happens

The agent does this in ten activities across nine reference processes.
Each one names the activity as that process words it.

- **Follow up with the People Who Came**
  - `ref/mkt/field-event`, activity 14 -
    [Host Field Event](../../../../processes/marketing/field-event.md)
- **Hand off the Leads**
  - `ref/mkt/webinar`, activity 16 -
    [Produce Webinar](../../../../processes/marketing/webinar.md)
- **Hand over the Accounts that Moved**
  - `ref/mkt/account-based-play`, activity 17 -
    [Run Account-Based Play](../../../../processes/marketing/account-based-play.md)
- **Hand over the Leads**
  - `ref/mkt/trade-show`, activity 13 -
    [Exhibit at Trade Show](../../../../processes/marketing/trade-show.md)
- **Hand over the Ready Ones**
  - `ref/mkt/nurture-sequence`, activity 15 -
    [Build Nurture Sequence](../../../../processes/marketing/nurture-sequence.md)
- **Hand over the Responders**
  - `ref/mkt/win-back-campaign`, activity 16 -
    [Run Win-Back Campaign](../../../../processes/marketing/win-back-campaign.md)
- **Hand over the Selling Kit**
  - `ref/mkt/enable-channel-partner`, activity 13 -
    [Enable Channel Partner](../../../../processes/marketing/enable-channel-partner.md)
- **Notify**
  - `ref/mkt/lead-routing`, activity 5 -
    [Route Inbound Lead](../../../../processes/marketing/lead-routing.md)
- **Route**
  - `ref/mkt/lead-routing`, activity 4 -
    [Route Inbound Lead](../../../../processes/marketing/lead-routing.md)
- **Split and Hand over the Leads**
  - `ref/mkt/co-marketing-campaign`, activity 14 -
    [Run Co-Marketing Campaign](../../../../processes/marketing/co-marketing-campaign.md)

## What to record

Per lead: the merged record with each filled field naming its source,
the score with the model version and the inputs it was computed from,
and the assignment with the reason. Any auditor can replay any decision
from what it left behind.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/score-a-lead/SKILL.mdScores a lead against the model currently in force and records the inputs that produced the score. Use it when running `ref/mkt/lead-routing`.
---
name: score-a-lead
description: Scores a lead against the model currently in force and records the inputs that produced the score. Use it when running `ref/mkt/lead-routing`.
license: CC-BY-4.0
metadata:
  agent: lead-scorer
  agent-version: "1"
---

# Score a lead

## What it does

Scores a lead against the model currently in force and records the
inputs that produced the score.

## Where it happens

The agent does this in one activity across one reference process. Each
one names the activity as that process words it.

- **Score**
  - `ref/mkt/lead-routing`, activity 3 -
    [Route Inbound Lead](../../../../processes/marketing/lead-routing.md)

## What to record

Per lead: the merged record with each filled field naming its source,
the score with the model version and the inputs it was computed from,
and the assignment with the reason. Any auditor can replay any decision
from what it left behind.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/set-the-rules-that-take-a-contact-out/SKILL.mdWrites the rules that end a contact's run through a program and says where that contact goes next. Use it when running `ref/mkt/nurture-sequence`.
---
name: set-the-rules-that-take-a-contact-out
description: Writes the rules that end a contact's run through a program and says where that contact goes next. Use it when running `ref/mkt/nurture-sequence`.
license: CC-BY-4.0
metadata:
  agent: lead-scorer
  agent-version: "1"
---

# Set the rules that take a contact out

## What it does

Writes the rules that end a contact's run through a program and says
where that contact goes next.

## Where it happens

The agent does this in one activity across one reference process. Each
one names the activity as that process words it.

- **Set the Exits**
  - `ref/mkt/nurture-sequence`, activity 5 -
    [Build Nurture Sequence](../../../../processes/marketing/nurture-sequence.md)

## What to record

Per lead: the merged record with each filled field naming its source,
the score with the model version and the inputs it was computed from,
and the assignment with the reason. Any auditor can replay any decision
from what it left behind.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/set-up-a-path-for-leads-to-arrive/SKILL.md"Sets up the way leads reach the record: the capture fields and the scan or form behind them, and the partner records, tiers and registrations that incoming leads land against. Use it when running `ref/mkt/channel-program` and `ref/mkt/trade-show`."
---
name: set-up-a-path-for-leads-to-arrive
description: "Sets up the way leads reach the record: the capture fields and the scan or form behind them, and the partner records, tiers and registrations that incoming leads land against. Use it when running `ref/mkt/channel-program` and `ref/mkt/trade-show`."
license: CC-BY-4.0
metadata:
  agent: lead-scorer
  agent-version: "1"
---

# Set up a path for leads to arrive

## What it does

Sets up the way leads reach the record: the capture fields and the scan
or form behind them, and the partner records, tiers and registrations
that incoming leads land against.

## Where it happens

The agent does this in two activities across two reference processes.
Each one names the activity as that process words it.

- **Set up Lead Capture**
  - `ref/mkt/trade-show`, activity 9 -
    [Exhibit at Trade Show](../../../../processes/marketing/trade-show.md)
- **Set up the Partner Systems**
  - `ref/mkt/channel-program`, activity 9 -
    [Launch Channel Program](../../../../processes/marketing/channel-program.md)

## What to record

Per lead: the merged record with each filled field naming its source,
the score with the model version and the inputs it was computed from,
and the assignment with the reason. Any auditor can replay any decision
from what it left behind.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/settle-a-lead-no-rule-can-place/SKILL.mdHolds a lead that no routing rule settles, puts it to a person with everything known about it, and applies the answer that comes back. Use it when running `ref/mkt/lead-routing`.
---
name: settle-a-lead-no-rule-can-place
description: Holds a lead that no routing rule settles, puts it to a person with everything known about it, and applies the answer that comes back. Use it when running `ref/mkt/lead-routing`.
license: CC-BY-4.0
metadata:
  agent: lead-scorer
  agent-version: "1"
---

# Settle a lead no rule can place

## What it does

Holds a lead that no routing rule settles, puts it to a person with
everything known about it, and applies the answer that comes back.

## Where it happens

The agent does this in one activity across one reference process. Each
one names the activity as that process words it.

- **Clear the Exception**
  - `ref/mkt/lead-routing`, activity 6 -
    [Route Inbound Lead](../../../../processes/marketing/lead-routing.md)

## What to record

Per lead: the merged record with each filled field naming its source,
the score with the model version and the inputs it was computed from,
and the assignment with the reason. Any auditor can replay any decision
from what it left behind.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/take-part-in-a-handover-of-a-finished-definition/SKILL.mdTakes part in the handover of a finished definition, such as a profile, a persona, a set of segments, a scoring model or a set of findings, and says what changes about how leads are scored and routed as a result. Use it when running `ref/mkt/analyze-customer-base` and 4 other reference processes.
---
name: take-part-in-a-handover-of-a-finished-definition
description: Takes part in the handover of a finished definition, such as a profile, a persona, a set of segments, a scoring model or a set of findings, and says what changes about how leads are scored and routed as a result. Use it when running `ref/mkt/analyze-customer-base` and 4 other reference processes.
license: CC-BY-4.0
metadata:
  agent: lead-scorer
  agent-version: "1"
---

# Take part in a handover of a finished definition

## What it does

Takes part in the handover of a finished definition, such as a profile,
a persona, a set of segments, a scoring model or a set of findings, and
says what changes about how leads are scored and routed as a result.

## Where it happens

The agent does this in five activities across five reference processes.
Each one names the activity as that process words it.

- **Hand over the Findings**
  - `ref/mkt/analyze-customer-base`, activity 17 -
    [Analyze Customer Base](../../../../processes/marketing/analyze-customer-base.md)
- **Hand over the Model**
  - `ref/mkt/lead-scoring-model`, activity 14 -
    [Maintain Lead Scoring Model](../../../../processes/marketing/lead-scoring-model.md)
- **Hand over the Persona**
  - `ref/mkt/buyer-persona`, activity 18 -
    [Develop Buyer Persona](../../../../processes/marketing/buyer-persona.md)
- **Hand over the Profile**
  - `ref/mkt/ideal-customer-profile`, activity 15 -
    [Define Ideal Customer Profile](../../../../processes/marketing/ideal-customer-profile.md)
- **Hand over the Segments**
  - `ref/mkt/segment-the-market`, activity 16 -
    [Segment the Market](../../../../processes/marketing/segment-the-market.md)

## What to record

Per lead: the merged record with each filled field naming its source,
the score with the model version and the inputs it was computed from,
and the assignment with the reason. Any auditor can replay any decision
from what it left behind.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/test-whether-the-data-supports-a-definition/SKILL.md"Checks whether the data on hand can carry a proposed model or a proposed set of segments: how often each signal is filled in, what it costs to fill, and whether the people described can be found and reached at all. Use it when running `ref/mkt/ideal-customer-profile`, `ref/mkt/lead-scoring-model` and `ref/mkt/segment-the-market`."
---
name: test-whether-the-data-supports-a-definition
description: "Checks whether the data on hand can carry a proposed model or a proposed set of segments: how often each signal is filled in, what it costs to fill, and whether the people described can be found and reached at all. Use it when running `ref/mkt/ideal-customer-profile`, `ref/mkt/lead-scoring-model` and `ref/mkt/segment-the-market`."
license: CC-BY-4.0
metadata:
  agent: lead-scorer
  agent-version: "1"
---

# Test whether the data supports a definition

## What it does

Checks whether the data on hand can carry a proposed model or a proposed
set of segments: how often each signal is filled in, what it costs to
fill, and whether the people described can be found and reached at all.

## Where it happens

The agent does this in two activities across three reference processes.
Each one names the activity as that process words it.

- **Test Whether Each Segment Can Be Reached**
  - `ref/mkt/segment-the-market`, activity 10 -
    [Segment the Market](../../../../processes/marketing/segment-the-market.md)
- **Test the Signal Coverage**
  - `ref/mkt/ideal-customer-profile`, activity 8 -
    [Define Ideal Customer Profile](../../../../processes/marketing/ideal-customer-profile.md)
  - `ref/mkt/lead-scoring-model`, activity 7 -
    [Maintain Lead Scoring Model](../../../../processes/marketing/lead-scoring-model.md)

## What to record

Per lead: the merged record with each filled field naming its source,
the score with the model version and the inputs it was computed from,
and the assignment with the reason. Any auditor can replay any decision
from what it left behind.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/try-a-candidate-model-against-live-leads/SKILL.mdRuns a proposed model beside the one in force so both score real leads while only the current one routes, and reports what the change would do to the tiers and the territory queues. Use it when running `ref/mkt/lead-scoring-model`.
---
name: try-a-candidate-model-against-live-leads
description: Runs a proposed model beside the one in force so both score real leads while only the current one routes, and reports what the change would do to the tiers and the territory queues. Use it when running `ref/mkt/lead-scoring-model`.
license: CC-BY-4.0
metadata:
  agent: lead-scorer
  agent-version: "1"
---

# Try a candidate model against live leads

## What it does

Runs a proposed model beside the one in force so both score real leads
while only the current one routes, and reports what the change would do
to the tiers and the territory queues.

## Where it happens

The agent does this in two activities across one reference process. Each
one names the activity as that process words it.

- **Check What Each Does to Routing**
  - `ref/mkt/lead-scoring-model`, activity 10 -
    [Maintain Lead Scoring Model](../../../../processes/marketing/lead-scoring-model.md)
- **Run It Beside the Live Model**
  - `ref/mkt/lead-scoring-model`, activity 12 -
    [Maintain Lead Scoring Model](../../../../processes/marketing/lead-scoring-model.md)

## What to record

Per lead: the merged record with each filled field naming its source,
the score with the model version and the inputs it was computed from,
and the assignment with the reason. Any auditor can replay any decision
from what it left behind.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
mcp.jsonNot in the package.

Every server entry in an mcp.json needs either a command to run or a url to connect to, and the package cannot know either of those until somebody points it at their own systems. So the file is left out, the systems the agent needs are named by role in plugin.json, and you write the mcp.json when you set it up.

Setting it up

Point it at your systems

To run an agent built from this package, write an mcp.json that says which of your systems fills each role. The package names these 3 roles, and the access level beside each one is the most the work needs.

crm · writeenrichment-sources · readnotification-channel · write
mcp.json You write this file. It is not part of the package.
{
  "$schema": "https://agent-plugins.org/schemas/1.1.0/mcp.schema.json",
  "mcpServers": {
    "crm": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/crm"
    },
    "enrichment-sources": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/enrichment-sources"
    },
    "notification-channel": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/notification-channel"
    }
  }
}

The hostnames here are a placeholder for your own. Whichever product holds each of these systems, the agent you build is yours and nobody else has to be involved in running it.

Where it works

20 processes, 40 activities

The highlighted activities are the ones this abstract agent does. The other activities in each process belong to other abstract agents or to people.

Run Account-Based Playref/mkt/account-based-play · 19 activities
12345678910111213141516171819

Hand over the Accounts that Moved

Analyze Customer Baseref/mkt/analyze-customer-base · 19 activities
12345678910111213141516171819

Hand over the Findings

Develop Buyer Personaref/mkt/buyer-persona · 20 activities
1234567891011121314151617181920

Hand over the Persona

Launch Channel Programref/mkt/channel-program · 17 activities
1234567891011121314151617

Set up the Partner Systems

Run Co-Marketing Campaignref/mkt/co-marketing-campaign · 16 activities
12345678910111213141516

Split and Hand over the Leads

Enable Channel Partnerref/mkt/enable-channel-partner · 16 activities
12345678910111213141516

Hand over the Selling Kit

Host Field Eventref/mkt/field-event · 16 activities
12345678910111213141516

Follow up with the People Who Came

Define Ideal Customer Profileref/mkt/ideal-customer-profile · 17 activities
1234567891011121314151617

Test the Signal Coverage · Hand over the Profile

Route Inbound Leadref/mkt/lead-routing · 6 activities
123456

Capture and Dedupe · Enrich · Score · Route · Notify · Clear the Exception

Maintain Lead Scoring Modelref/mkt/lead-scoring-model · 18 activities
123456789101112131415161718

Read the Exception Queue · Test the Signal Coverage · Check What Each Does to Routing · Run It Beside the Live Model · Hand over the Model · Put It into Production · Watch the First Weeks

Build Nurture Sequenceref/mkt/nurture-sequence · 16 activities
12345678910111213141516

Set the Exits · Hand over the Ready Ones

Segment the Marketref/mkt/segment-the-market · 18 activities
123456789101112131415161718

Test Whether Each Segment Can Be Reached · Hand over the Segments

Exhibit at Trade Showref/mkt/trade-show · 16 activities
12345678910111213141516

Set up Lead Capture · Hand over the Leads

Produce Webinarref/mkt/webinar · 18 activities
123456789101112131415161718

Hand off the Leads

Run Win-Back Campaignref/mkt/win-back-campaign · 20 activities
1234567891011121314151617181920

Hand over the Responders

Fix a Misrouteref/rev/fix-a-misroute · 15 activities
123456789101112131415

Find Who Should Have Got It · Look for the Others Like It

Write a Routing Ruleref/rev/write-a-routing-rule · 17 activities
1234567891011121314151617

Replay It Against Past Work · Verify It in the Live System

Answer an Inbound Inquiryref/sls/answer-an-inbound-inquiry · 14 activities
1234567891011121314

Match the Inquiry to a Record

Qualify an Opportunityref/sls/qualify-an-opportunity · 16 activities
12345678910111213141516

Score What Was Learned · Record the Decision and Its Reason

Return a Lead to Nurtureref/sls/return-a-lead-to-nurture · 13 activities
12345678910111213

Hand the Lead to Nurture · Close the Opportunity Record · Record the Outcome

The records it leaves

What it writes down

Per lead: the merged record with each filled field naming its source, the score with the model version and the inputs it was computed from, and the assignment with the reason. Any auditor can replay any decision from what it left behind.

Where it stops

What it will not do

Does not edit the scoring model or the territory map - both change only through their own review, as versioned amendments. Does not contact the lead.

These limits are written into the job on purpose, so that everyone adopting the process knows which decisions stay with a person.

Agents built from this plugin

Who has built one, and how far each one got

Nobody has built one yet. The catalog says so rather than leaving the section off, because an empty list is a fact about the document.

declare it implements: lead-scorer v1 One line in your agent's manifest. The catalog checks it against the records your runs actually leave.
A guess, not a claim

The closest things in the catalog, by description

Nobody above has claimed any of these. This is the nearest match by wording between the job written above and what publishers wrote about their own listings, closest first, and wording is not evidence: some of these will be wrong, and a job with nothing suitable still gets whatever was nearest. The publishers have never heard of this abstract agent and have promised nothing about it. What a claim looks like is in the table above, and it is signed.

Might be reached for

Not workers. These are capability that whatever does the job would use, which is a different relationship and kept in its own column for that reason.

  • leadpipe-mcp MCP server · enzoemir1.github.io · run it yourself · mirrored from the MCP registry AI lead qualification: ICP filter, 0-100 scoring, Hunter.io enrichment, HubSpot/Pipedrive export.
  • Italian B2B Lead Scoring, Ranking & JSON Decisions MCP server · machinesignal.it · hosted · mirrored from the MCP registry Score, rank and prioritize an existing Italian B2B lead list into explained JSON decisions.
  • LeadProof Sales Agent MCP server · leadproof.jessesay.chatgpt.site · hosted · mirrored from the MCP registry Audit lead-delivery workflows, find reliability gaps, and generate a LeadProof integration plan.