geovouch
v0.3.1
Published
GeoVouch client — measure whether AI assistants name your brand, know when the evidence can carry a decision, and prove whether what you shipped worked. Bring an API key; the storage, the engines and the statistics are ours.
Maintainers
Readme
geovouch
Measure whether AI assistants name your brand when buyers ask them questions — know when that measurement can carry a decision, and prove whether what you shipped actually worked.
npm i geovouchimport { GeoVouch } from "geovouch";
const gv = new GeoVouch({ apiKey: process.env.GEOVOUCH_API_KEY! });
const { engines } = await gv.scoreboard(); // per engine, never averaged
const { actionable } = await gv.gaps(); // only what the evidence can carry
const brief = await gv.brief(actionable[0].question);
// …your agent writes and ships the page, in your stack …
await gv.recordAction({ question: actionable[0].question, kind: "answer_page",
url: "https://you.com/blog/x", publishedAt: new Date() });
const { assets } = await gv.lift(); // did it work?What this package deliberately does not expose
No database, no migrations, no vendor token, no engine list to configure, no statistical parameter to tune. Those are ours — and keeping them ours is what lets the numbers get better without you redeploying.
Three things the API refuses to blur
unmeasured is never 0. An engine that answered without retrieving has told you nothing about
whether your pages were a source, so sourcedRatePct is null rather than zero. A lift verdict with
no control is unmeasured, not "no effect".
Engines are never averaged. They diverge by roughly 46×, so a single blended "AI visibility score" is the mean of four different instruments.
A gap you may act on is not a gap you can see. gaps() returns two lists. actionable cleared a
precision floor, sat fully below the 50% win/loss line, and passed an anytime-valid familywise
threshold — so you can check every morning without inflating your error rate. researchOnly did not,
and spending on it is spending on a draw.
The loop
scoreboard → gaps → brief → you act, in your own stack → recordAction → lift
We never publish on your behalf: your agent already has the access, the conventions and the review rules, and any connector we built would be a worse version of what you already own. The receipt is the seam — it is what makes the last step possible for work we did not do.
MIT © The Influence Company
