A structured JSON schema for scoring inbound leads against Budget, Authority, Need, and Timeline before routing to a sales rep or a nurture sequence.
The BANT Lead Qualification Schema is a free, tested JSON Schema and reference scorer that grades inbound leads on Budget, Authority, Need, and Timeline, returning a hot/warm/cool/cold tier your CRM or automation can route on directly.
This schema defines the shape of a lead-qualification object used to score an inbound contact on the four classic BANT dimensions: Budget, Authority, Need, and Timeline. It sits between a form submission (or enrichment step) and a routing decision.
{
"budget_confirmed": boolean,
"budget_range_usd": [number, number],
"authority_level": "decision_maker" | "influencer" | "unknown",
"need_severity": 1-10,
"timeline_days": integer,
"points": 0-12,
"tier": "hot" | "warm" | "cool" | "cold",
"recommended_action": "route_to_rep" | "nurture_sequence" | "disqualify"
}
| Signal | Points |
|---|---|
| Confirmed budget | +3 |
| Decision maker / Influencer | +3 / +1 |
| Need severity 8-10 / 5-7 / 3-4 | +3 / +2 / +1 |
| Timeline ≤30d / ≤90d / ≤180d | +3 / +2 / +1 |
9-12 points = hot (route to rep). 6-8 = warm (route to rep). 3-5 = cool (nurture). 0-2 = cold (disqualify). These thresholds are MV3’s own defaults. Re-run the scorer against your closed deals monthly and adjust if hot leads aren’t actually closing.
Full usage instructions, testing steps, and common pitfalls are in the README below.
This is a documentation + reference implementation repo, not a hosted API. Everything here (the schema, the scorer, the tests) is meant to be copied into your own stack.
A flat LLM prompt (“score this lead on BANT”) gives inconsistent shape and no way to validate output before it hits your CRM. This schema defines a fixed contract: feed it four typed inputs, get back a typed tier and recommended_action your automation can branch on directly.
| File | Purpose |
|---|---|
schema.json | JSON Schema (2020-12 draft) defining the full input/output contract |
score.js | Zero-dependency reference scoring function |
examples/valid.json | 5 real worked examples covering hot/warm/cool/cold + one edge case |
examples/invalid.json | 5 examples that must fail validation, used by the test suite |
test.js | Automated test validating schema AND scorer correctness together |
Drop score.js into an n8n Code node, a Zapier Code step, a Supabase Edge Function, or use schema.json directly as a Claude tool-call input_schema. Feed it real form data, not placeholder values.
npm install ajv node test.js
Verified 2026-08-12: 10/10 passing.
Don’t infer budget_confirmed from company size alone. A decision-maker title with zero urgency and no confirmed budget still scores “cool,” not “hot.”
Found a bug or have a question? Open an issue on GitHub Issues. Want it wired into your real CRM or automation platform? Book a scoping call ($175/hr).
MIT
Yes. Every snippet in the library is free, documented, and tested. MV3 charges $175/hr only for implementation help.
Anything that runs JavaScript: n8n Code nodes, Zapier Code by Zapier steps, Supabase Edge Functions, or directly as an LLM tool-call schema.
No. The schema and scorer run entirely inside your own automation platform with zero outbound network calls.
Open a GitHub Issue on the repo for bugs or questions. For paid implementation help, book a scoping call.
AI Marketing & SEO Automation, All States
AI Content & SEO Infrastructure for B2B companies that want to own their growth channel , not rent it.
(704) 317-2293 Get the Audit →We use cookies to improve your experience on our site. By using our site, you consent to cookies.
Manage your cookie preferences below:
Essential cookies enable basic functions and are necessary for the proper function of the website.
Google Tag Manager simplifies the management of marketing tags on your website without code changes.
Statistics cookies collect information anonymously. This information helps us understand how visitors use our website.
Google Analytics is a powerful tool that tracks and analyzes website traffic for informed marketing decisions.
Service URL: policies.google.com (opens in a new window)
You can find more information in our Cookie Policy and Privacy Policy.