Skip to main content
Glama

SalesMap

Build a sales playbook

playbook
Read-only

Price: $7.50 on a discover for the same seller from the last 7 days, $25.00 when it has to run its own sweep. Never more than max_usd. A Markdown sales playbook for a seller's top three accounts right now: runs discover, then per company why now (the signals that passed their check, with links and dates), who to reach (a warm path from the user's network, else the buyer roles), the angle and a first-email draft. The write-up is checked claim by claim against the signals and the seller's offer; any sentence that fails is cut. Saves the playbook to a file and returns its path with a short summary. Takes minutes; discover's research is cached, so a rerun is fast. Use when: "write me a playbook for getklira.com", "give me a sales playbook for ", "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 user wants a ranked list without write-ups, one fact about one company, a draft of their own checked, or anything sent or written into a CRM (Salesforce, HubSpot) as leads: this never contacts anyone or writes anywhere but its own file. Observed (checked signals), Inferred (angle, roles) and drafts are labelled apart in the file. Openers are drafts for the user to edit, not facts about the people. 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. Charged per result returned from the user's credits, never for a miss: 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; budget says what was reserved and charged. A call quoted over max_usd is refused. A call quoted over the user's confirm amount (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 this server callerSearch is on by default: rounds that return work are free, and the playbook is charged $5.00 instead of $25.00; while our models are unavailable (or with callerJudge) the calling agent's model also writes and checks it, labelled judgedBy: "caller". Quoted page text is normalized; a quote that reads like an instruction keeps its text and is flagged in Flags with the attack family.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
daysNo
sellerYesThe seller's site, e.g. getklira.com
contextNoThe user's own facts about their company: who they are, the company, product, ICP, buyer roles, customers, competitors, deals won and lost, regions, exclusions. Fields left out come from the saved seller profile. These are the user's inputs, not findings.
max_usdNoMost this call may spend, in USD; default its quote. A call quoted over it is refused.
searchesNoWith callerSearch: each `work` id → the JSON its prompt returned, including every earlier round's answers
companiesNoRate these companies instead of searching the market
callerJudgeNoWith callerSearch: the calling agent's model also makes the judgments (fit screen and ranking text, job-post extraction, competitor site checks; a playbook's write-up and claim check), returned as `work` like the searches. What it judged is labelled `judgedBy: "caller"`; every signal is still checked against its page by our code. Hosted, this happens on its own while our models are unavailable; locally it is always so
connectionsNoA LinkedIn Connections.csv, for warm paths; names stay local. Locally, ~/.salesmap/Connections.csv when omitted
callerSearchNoThe calling agent does the searches (the seller's offer and ICP draft, competitors, tool list, candidate companies, each company's news, the events search), where the server offers it; on the hosted server it is the default. A call returns `work` (search prompts with ids) until every search has an answer; a repeat call with the same input and `searches` carries the answers. Our code still checks every page, quote and date
confirm_tokenNoThe token a previous call returned in `confirm`, standing for the user's agreement to that cost; one use, same arguments.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
costNo
nextNo
noteNo
pathYes
workNo
todayYes
budgetNo
sellerYes
stoppedNo
judgedByNo
companiesYes
needsCreditNo
reusedDiscoverYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / needsCredit
      Added value: +{
      +  "type": "string"
      +}
  2. Changed6 schema fields changed
    • changedInput schema / properties / callerJudge / description
      Previous value: -"With callerSearch: your own model also makes the judgments (fit screen and ranking text, job-post extraction, competitor site checks; a playbook's write-up and claim check), returned as `work` like the searches. What it judged is labelled `judgedBy: \"caller\"`; every signal is still checked against its page by our code. Hosted, this happens on its own while our models are unavailable; locally it is always so"New value: +"With callerSearch: the calling agent's model also makes the judgments (fit screen and ranking text, job-post extraction, competitor site checks; a playbook's write-up and claim check), returned as `work` like the searches. What it judged is labelled `judgedBy: \"caller\"`; every signal is still checked against its page by our code. Hosted, this happens on its own while our models are unavailable; locally it is always so"
    • changedInput schema / properties / callerSearch / description
      Previous value: -"Your own agent runs the searches (the seller's offer and ICP draft, competitors, tool list, candidate companies, each company's news, the events search), where the server offers it; on the hosted server it is the default. A call returns `work` until every search has an answer: run each prompt with your web search, then call again with the same input and `searches`. Our code still checks every page, quote and date"New value: +"The calling agent does the searches (the seller's offer and ICP draft, competitors, tool list, candidate companies, each company's news, the events search), where the server offers it; on the hosted server it is the default. A call returns `work` (search prompts with ids) until every search has an answer; a repeat call with the same input and `searches` carries the answers. Our code still checks every page, quote and date"
    • changedInput schema / properties / confirm_token / description
      Previous value: -"The token a previous call returned in `confirm`, sent only after the user agreed to that cost; one use, same arguments."New value: +"The token a previous call returned in `confirm`, standing for the user's agreement to that cost; one use, same arguments."
    • changedInput schema / properties / connections / description
      Previous value: -"A LinkedIn Connections.csv, for warm paths; names stay local"New value: +"A LinkedIn Connections.csv, for warm paths; names stay local. Locally, ~/.salesmap/Connections.csv when omitted"
    • changedInput schema / properties / context / description
      Previous value: -"What you already know about the user and their company, from your memory, CLAUDE.md and this conversation: who they are, the company, product, ICP, buyer roles, customers, competitors, deals won and lost, regions, exclusions. Fill every field you know before calling; leave out what you don't, never invent it. The saved profile (seller_profile) fills the rest. These are the user's inputs, not findings."New value: +"The user's own facts about their company: who they are, the company, product, ICP, buyer roles, customers, competitors, deals won and lost, regions, exclusions. Fields left out come from the saved seller profile. These are the user's inputs, not findings."
    • changedInput schema / properties / context / properties / warmPaths / description
      Previous value: -"Warm paths the user confirmed (s48): company domain and who or how, e.g. \"Jane Doe (VP Ops), via Sam Lee\". Saving replaces the list: pass the whole list. Stays local; never sent to a model"New value: +"Warm paths the user confirmed (s48): company domain and who or how, e.g. \"Jane Doe (VP Ops), via Sam Lee\". A save replaces the whole list. Stays local; never sent to a model"
  3. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.