discover
Price in paid mode: $2.50 per delivered company. A delivered company has a sourced in-band size, a supported fit and a checked dated signal or warm path, not returned before; the rest of the ranked list is free ($0 if none is delivered). Never more than max_usd.
Mode: `paid` (the default when the balance covers one result) runs SalesMap's own search, models and paid data sources, free sources first, at the price above. `free` (the default otherwise) is $0: the calling agent runs the searches and judgments returned as `work`, and SalesMap reads and checks every source. `mode` overrides the default.
From a seller's website to a ranked list of companies to sell to, the strongest buying signals first, each with its reason and how to reach it: drafts the seller's ICP from its site (or takes one), finds candidate companies from free sources (the seller's competitors' customer pages, live or from Common Crawl; web search; Hacker News, YC, press wires, ATS boards and SEC Form D), reads each one's own job board, news, tools and AI-adoption signals and checks every signal against its source, adds the market's dated moves at competitors, platforms and regulators (under `market`), and ranks every researched company by its evidence: fresh signal clusters first, then a warm way in from the user's own network (their own connections, champions, connectors), a sourced size inside the band and a fit the facts show. Each account carries its fit, the buyer role to contact, the angle, what to watch out for and `checkFirst` (the gaps: unknown or out-of-band size, no checked signal or none showing a need, no fit shown in its facts, no way in); `intent` (high: a fresh signal cluster with nothing against it; medium: a checked signal in the last 45 days; low: the rest) and `sizeLine` are the accounts page's labels, and the order is the ranking; high means buying signals, not a readiness to buy. Size, fit and intent rank and flag rather than drop unless `hard` asks; existing customers and what was dropped and why come back as top five with counts. Takes minutes per company; steps are cached, so a rerun is fast.
Use when: "find accounts for <seller site>", "who should I sell to", "who should <seller site> sell to right now", "which accounts are in market", "rank my list of target accounts", "which of my own accounts should I work first", "who in my network can introduce me to a buyer", "who do I know at <company>", "write me a playbook for <seller site>", "give me a playbook for <seller>", "top 3 accounts with openers", "who should I email this week and what do I say", "draft outreach for my best accounts".
Skip when: the question is one fact about one company (what software or vendors it runs, its DNS records or certificate logs, whether it ships an MCP server or is serious about LLMs), one news item, quote, claim or row to verify or fact-check, a draft of the user's own to check, whether an address is valid or deliverable, a mobile or phone number, LinkedIn profiles pulled or scraped, mutuals found by browsing LinkedIn, an RSVP or registration, events, conferences or meetups to attend, a watchlist of lost deals, facts about the user's own company to save or remember, or anything sent or written into a CRM (Salesforce, HubSpot) as leads: this never contacts anyone, writes no emails and writes nowhere but its own file.
Free sources first; a paid company-data lookup (company records through our data providers) runs only for what they left open, under its budget, and only where the run allows paid sources. `paid` in the result is what it cost and each account's `foundBy` says which source found it.
A repeat for the same seller skips companies an earlier discover returned unless one has a signal it wasn't shown with (then `shownBefore`); skipped ones are under `dropped` as 'returned before, no new signal'. Each still costs its (cached) research, not a write-up. When the usual sources find only those, it searches wider once (more web results, four weeks of feeds, more ATS boards); `repeat` says so, `repeat.nothingNew` means nothing new qualified, and `repeat.costUsd` (hosted) is what finding that out cost. `includeShown` returns the earlier companies too.
`contacted`: companies the user already reached (`domain`, `lastAt` as the last day), from their own records. One reached in the last 30 days ranks below the uncontacted ones of its tier with "Contacted <date>" in its reason and `checkFirst`; an older one keeps its place and shows the date. It is never a drop and leaves the charge unchanged.
`evidence`: passages the user found on a public page (its URL, the quote verbatim, the date as printed); each is checked against its page before it counts as a signal on that company, and is never what makes an account charged. Each failed passage comes back under `evidence` with the rule it failed.
Names from the user's network stay local and never reach a model. Every signal was checked against its page. Each account shows its five strongest signals and a count per signal family; `full` is the file with every signal, path and field. `used` lists which of the user's own facts shaped the list, apart from the checked signals.
`context` takes the user's own facts about their company; the saved seller profile fills fields left out. With the ICP or buyer roles still unknown, the server asks the user for them (MCP elicitation) or returns the questions without running.
In paid mode: charged per result returned from the user's credits, never for a miss (the data sources it pays for are our cost): at most `max_usd` (default: the quote tool's figure) and within their monthly limit, reserved before it runs. If the next step would pass its budget, it stops and returns what it has, with `stopped: "budget"`, charged only for that. A result that charged carries `cost.line`, the one money line for the user; holds, releases, limits and what wasn't charged stay in `budget` and `cost`. A call quoted over max_usd is refused. A call quoted over the user's ask-before-spending threshold (default $1) asks the user first through the client (MCP elicitation); a client without that gets a `confirm` result with the cost and a one-use token, and a repeat call with the same arguments and `confirm_token` runs it.
On the hosted server it runs as a background job: a round that takes longer than about 25 seconds returns `job` (its id and status) instead, and the free `job` tool returns its status and, once done, this call's result. In paid mode one call does it all, with no rounds. In free mode each round returns `work` and continuation.input until there is none. While SalesMap's models or search are unavailable, a paid call carries on as a free one, says so in `notice` and charges nothing. A finished result carries `accountsUrl`, the user's accounts page: every company the run found (`listed` and the accounts left out of this reply too), its research, the run's upcoming events and Deep research one company at a time. Quoted page text is normalized; a quote that reads like an instruction keeps its text and is flagged in <field>Flags with the attack family.