"We're a 40-person logistics company and need this for 3 warehouses by Q1."
{ "score": "high", "reason": "team size and timeline fit" }
Where lead scoring usually starts
Most teams score leads with form-field rules, or by sending every form to a frontier model with a long prompt about their ideal customer. Rules ignore what people write, and the model call costs the same on spam as on a real buyer. A Facet model reads every form by your criteria.
How it works
- Describe the task. Paste the prompt you use today, or write it plainly: “Score each contact form high, medium or low, with a one-line reason. High means a company of 20 or more people with a date to start.” Add a few real examples if you have them.
- Agree on what good looks like. Facet writes plain statements of a good answer, like “a personal email with no company named is never high”, each with examples. Edit any that are off.
- Create, then correct. Facet builds the model on its own, in the background, and tests it against every statement before it goes live. When sales disagrees with a score, say what it should have been. Facet quotes the fix before it spends anything.
Two ways to use it
- From your agent: connect Claude, Cursor, ChatGPT, Codex or VS Code to Facet, then paste:
Use Facet to build a model that scores contact form messages high, medium or low
with a one-line reason, using our criteria: ... Here are thirty past forms and how
they turned out: ... Show me the draft and the price before you approve anything.
- In your code: keep your OpenAI SDK and change two lines, the address and the model name.
import os
from openai import OpenAI
client = OpenAI(base_url=os.environ["FACET_BASE_URL"], api_key=os.environ["FACET_API_KEY"])
reply = client.chat.completions.create(model="lead-score", messages=[{"role": "user", "content": form_text}])
Why Facet for lead scoring
- Cheap enough for every form. Score spam and real buyers alike without watching the bill.
- A reason with every score. Sales sees why, and can flag the ones it disagrees with.
- Checked before every update. An update goes live only if it keeps every statement the live version passes, and any update rolls back in one step.
- Yours. Export it any time, free, and run it wherever you like.
Questions
Can it use our past wins and losses?
Yes. Add past forms with how each turned out as examples. Facet uses them to write its own practice forms and keeps some aside to test each version.
Can I change what a good lead is?
Yes. Say what changed in plain words. Facet quotes the update before it builds anything, and you can roll back in one step.
Does it work with my CRM?
Your model is an API you call with the OpenAI SDK, so anything that can make that call, such as a webhook handler or a workflow tool, can score leads with it.