scan_ai_visibility
Start a free AI-visibility scan for a B2B company's website.
Checks how often AI engines (ChatGPT, Claude, Perplexity, Gemini, Google AI
Mode, Microsoft Copilot) name the company when buyers ask for vendor
recommendations, and finds the gaps. The scan runs in the background
(roughly 1-2 minutes); call get_visibility_report with the returned
report_id to read the score and findings.
ASK THE USER for geo_scope and sells_to before calling, if you do not
already know them. Everything past `email` is optional and the scan runs
without it, but geo_scope changes EVERY question we generate: a firm that
sells across one country, scored on one city's questions, looks invisible
when it is not. Guessing is worse than asking, and asking costs one line of
conversation. Where you do not know, omit the field rather than inventing a
plausible value: an omitted field is recorded as unknown, and the report
says its framing was assumed.
Every parameter carries its own description, generated from the one intake
contract the in-app scan form renders from, so what you are told here and
what a customer is asked are the same question.
Returns:
report_id, a report_url to view live, whether an existing report was
reused (free scan already used this month), and which intake answers
were missing, so you can offer to re-run with them.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | The user's work email. Required: we send the finished report there and it identifies the account. One free scan per email per month. | ||
| domain | Yes | The company's website or domain, e.g. "acme.com". | |
| capacity | No | Who will do the fixes? We size and sequence the plan to match. A solo founder does not get a list built for a five-person team. One of: solo (Just me); one_marketer (One marketer); small_team (A small team, 2 to 4); full_team (A full team, 5 or more). Shapes the fix plan, which is generated in the tail after the engines answer. Omit it rather than guessing: an omitted answer is recorded as unknown, a guessed one is indistinguishable from a real answer. | |
| sells_to | No | What size and type of customer? SMB and enterprise are different questions with different winners. Shapes the same. 'Best sales engagement platform for SMB teams' is not the same question as 'for enterprise revenue orgs'. Omit it rather than guessing: an omitted answer is recorded as unknown, a guessed one is indistinguishable from a real answer. | |
| geo_scope | No | Where do you sell? Getting this wrong skews the whole report: a national firm scored on one city's questions looks invisible, and a local one scored nationally looks unwinnable. One of: global (Anywhere); national (Across one country); national_local (National, with a local angle); local (My own city or region). Shapes every buying question. This is the single highest-leverage answer here. Omit it rather than guessing: an omitted answer is recorded as unknown, a guessed one is indistinguishable from a real answer. | |
| locations | No | Which places? The country you sell across, or the cities you are bound to. Shapes which geography goes into a localized buying question. Omit it rather than guessing: an omitted answer is recorded as unknown, a guessed one is indistinguishable from a real answer. | |
| competitors | No | Who would a buyer otherwise pick? Companies the user says a buyer would pick instead of them. We track whoever the engines name either way, so this is the user's own view rather than the whole comparison set. Shapes the comparison set, the mismatch between who you name and who the engines do, and which of those two a given finding is about. Omit it rather than guessing: an omitted answer is recorded as unknown, a guessed one is indistinguishable from a real answer. | |
| buyer_questions | No | Questions your buyers ask. Questions this company's buyers actually ask. They are put to the engines verbatim and tracked scan over scan, which is what makes a trend line mean anything. Shapes the questions themselves, pinned ahead of the generated ones. Omit it rather than guessing: an omitted answer is recorded as unknown, a guessed one is indistinguishable from a real answer. |