Your demo form should book demos, not agencies

Doorman reads every demo request, contact-sales message and trial sign-up. Real buyers go straight to Slack, email or your CRM; agency pitches, SEO outreach and throwaway accounts stay out, each with the line that gave it away.

Start free

Free for 1,000 checks a month. Paid plans from $12. No card required.

Example: Doorman screening demo form and sign-ups, each judged in under half a second and delivered or kept out with the reason.

Sound familiar?

Half your “leads” are selling to you

Agencies, SEO shops, outsourcers and partnership offers look like leads until someone reads them. Your sales team shouldn't be that someone.

Word lists block the buyers you want

An agency that needs your product uses the same words as one pitching you. Keyword filters can't tell them apart; Doorman reads intent against what you sell.

Fake sign-ups skew every metric

Disposable emails and scripted accounts inflate trials, burn onboarding emails and make activation numbers meaningless.

Screen the demo form and the sign-up in one place

  • Demo and contact forms: point the form's action at Doorman, or call the API from your handler. Field names are detected.
  • Trial sign-ups: check the sign-up before creating the account; fakes get the same confirmation and no account.
  • Where leads go: Slack, email, or a signed webhook into your own endpoint or CRM pipeline, retried if it's down.
  • Start safely: watch mode delivers everything for a week and tags what it would have dropped.

Read the docs

Sign-up handler (Node)
import { Doorman } from "doorman-client";
const doorman = new Doorman(process.env.DOORMAN_KEY);

const r = await doorman.check({
  kind: "signup",
  context: "Invoicing software for small businesses",
  email, name, fields: { company },
});

if (r.action === "drop") return showConfirmation(); // no account created
await createAccount({ email, name, company, review: r.action === "hold" });

Checked, not guessed

Every decision comes from Doorman's models reading the submission, in milliseconds, with the reason attached.

13/13agency pitches dropped in our labelled demo-form set, with no genuine request dropped
6/6fake and throwaway sign-ups dropped; 5 of 6 real ones delivered straight through
~170 msto judge a submission, inline, before the confirmation page loads

Labelled test sets: 104 invented but labelled contact-form and checkout submissions, and a small hand-labelled set of 25 sign-ups and comments, all judged live. Questions were not tuned to these sets.

Questions

Will it drop agencies that actually want to buy from us?

Doorman judges intent against the description of what you sell, not the sender's job title, so an agency asking about your product reads as a buyer. Anything it isn't sure about is held and forwarded to you with a flag, not dropped.

Can leads go straight into our CRM?

Today Doorman forwards to email, Slack or a signed webhook. Point the webhook at your own endpoint or any automation tool that accepts webhooks to create the CRM record. Native CRM integrations aren't built yet.

Does a fake sign-up find out it was blocked?

Not from Doorman. Show everyone the same confirmation; just don't create the account when the action is drop.

How much does it cost?

Free for 1,000 checks a month. Pro is $12 a month for 25,000 and Business is $49 a month for 250,000. Every plan gets the same models. See pricing.

Try it on your own forms

Free for your first 1,000 checks every month. Start in watch mode and see every call before you trust it.