Blueprint 1.6.1 // user guide

Querymantic

Blueprint
see the demand before you write it

Turn a keyword export into a map of the real demand behind AI answers. Offline, deterministic, every number traces back to its row.

Demand intelligence. Offline. Provable.
software 0.2.0 document Blueprint 1.6.1 for Claude Code and Cowork querymantic.com

By

Mario Montanari

Operational AI Consultant and Incubator. He builds and ships AI systems and agents for companies and small businesses. Thirty years in digital since 1995, across every wave of the web, all the way to today's generative models. Technical SEO, GEO, and AEO. Author of Querymantic and the keyword-intelligence engine it runs on.

Starting point

What Querymantic is, in three lines

You drop your keyword exports into the workspace. Querymantic reads them, runs a deterministic analysis, and writes one structured file you build on. It makes no external calls and loads nothing at runtime. No API, no account, no telemetry.

It reads CSV or TSV from Semrush, Ahrefs, Google Search Console, Moz, Ubersuggest, or a generic CSV, and normalizes them into one schema. On top of the vendored engine it adds seven analysis modules and a guide built for SEO, GEO, and AI-search strategy. The output is run.json, the single state of the run, with a fingerprint of the inputs. Every figure is reproducible and checkable.


Why it pays off

The concrete benefits

Six practical reasons Querymantic changes how you work demand, before you even open a module.

Nothing leaves your computer

Offline, no API, no account, no telemetry. You can analyze a client's data without shipping it to a third-party service.

Every number is defensible

Same file, same result, and every figure traces back to the row that produced it. In front of a client you can show where each number comes from.

You see the invisible demand

The fan-out of zero-volume sub-queries decides AI citations and stays hidden from classic tools. Querymantic brings it to the surface.

It works with what you already pay for

It reads exports from Semrush, Ahrefs, Search Console, Moz, Ubersuggest, SeoZoom, or any CSV. No new subscription to open.

The analysis becomes a deliverable

From one run you get dashboards, decks, Word audits, and Excel sheets, branded and ready for the client in minutes.

First-class Italian

The fifth layer reads Italian intent that an English-born engine would mislabel, and fixes it before the analysis.


The idea that changes the work

The whole fan-out is what counts

Classic keyword research hunted for the big term to rank for and win the click. AI answer engines work differently. When a user asks a question, the engine breaks it into a fan of sub-questions, the fan-out, and builds the answer by covering them one by one. To get cited inside that answer you do not win the head term. You cover the fan-out.

head vol. 1,300 vol. 0 vol. 0 vol. 0 gatekeeper vol. 0 vol. 0 vol. 0 vol. 0 vol. 2 vol. 0

Keyword tools show you the head. The AI engine works the whole fan-out, and almost every one of those sub-queries reads as zero volume. That is why classic tools never show them.

The rule to remember

If a clean export leaves you fifty zero-volume sub-queries that fit the topic, keep them. One by one they are worth nothing. Together they are the fan-out. The value sits in the structure that links them. A single word's volume says little.

So you do not filter the export by volume before the analysis. That long tail carries the fan-out signal, and you keep all of it.


Three ways to use it

How you talk to Querymantic

You do not memorize commands. Once the plugin is installed, inside Claude Code and Claude Cowork you drop an export in the workspace and describe what you want.

1. Plain words, the simplest way

Drop the export in the folder and write what you want, in plain language. The prompt section below has a good stock of them, grouped by goal.

Analyze keyword.csv with Querymantic and give me the demand picture.

2. With the quick commands

Inside Claude Code and Cowork two commands wrap the same pipeline: /querymantic-analyze for analysis and /querymantic-audit for the full audit.

3. From the command line

From the plugin folder, with Python 3.10 or newer, no extra dependencies for the core.

# analyze a folder of exports and write run.json
python scripts/querymantic_run.py run --inputs exports/ --output run.json

# add gap analysis and a brand split
python scripts/querymantic_run.py run --inputs exports/ --output run.json \
  --client-domain example.com --brand-list "example,example shop"

# render deliverables from an existing run
python scripts/querymantic_run.py forge run.json --formats html docx

# check a run against the contract
python scripts/querymantic_run.py validate run.json

Each command with --help lists every option. The three subcommands are run, forge, and validate.


The toolbox

Example prompts

Copy them, adapt them, paste them into Claude Code or Cowork with your export in the workspace. They are plain language. You describe the goal, the plugin picks the modules.

0First steps, if you have never coded

No code, no commands. You drag in the file and talk the way you would talk to a person. Querymantic does the rest.

I have a keyword file called keyword.csv. What can you tell me about this topic?
Explain in plain words what is inside this export and where it makes sense to start.
I am a beginner. Look at this file and tell me the three or four main themes.
I cannot read these numbers. Tell me which words are worth it and why, no jargon.
Take this file and write me a plain recap I could show a client.
AGetting started

The first look at demand, when you open a new export.

Analyze keyword.csv with Querymantic and give me the demand picture: main clusters, intents, and where the gaps are.
Read this export and tell me which intents dominate and which clusters are worth it.
Normalize these three files into one analysis and show me the corpus overview.
BFull audit

All the lenses at once, for a full view.

Run the full Querymantic audit on this export: fan-out coverage, citation readiness, entities, demand trend, and winnable clicks.
Run the demand audit for client example.com, with gap analysis against their domain and a brand vs non-brand split.
CLens by lens

When you want one module, focused.

For the cluster "protective rituals" give me the fan-out coverage: which sub-queries I cover, which archetypes I am missing, and the gatekeepers.
How ready am I to get cited in AI answers, cluster by cluster? Give me the editorial checklist.
Map the corpus entities and tell me which ones I own and which I only ask for.
With the monthly series, classify the demand: what is rising, what is falling, what is seasonal.
Estimate the band of winnable clicks per cluster, so I prioritize real clicks over raw volume.
DLanguages

The engine is born in English, its main language, and reads French, German, and Spanish well. Querymantic adds Italian as a fifth language. With a non-English export, name the language so intent reads right.

This export is Italian: detect the language, reclassify Italian intent, then give me the demand picture.
Find the transactional and commercial clusters in Italian that an English analysis would mislabel.
This file is in French. Account for that when reading intent and give me the main clusters.
German export: analyze the demand and flag the commercial intents.
The keywords are in Spanish. Give me the demand picture with the right intents.
I have a mixed export, Italian and English together. Separate the languages and analyze each one properly.
EThe long tail, the part that counts

The prompts that keep you honest about the fan-out.

Keep the whole on-topic tail, even at zero volume. Remove only the off-topic homonyms, then pass me the full export for analysis.
Do not drop the low-volume keywords. Give me the full fan-out of gatekeepers to build the content structure on.
FClient deliverables

When the analysis has to ship as a document.

Build the deliverables from the last run. HTML and Word are enough.
Generate the branded .pptx deck and .docx audit for example.com from the current run.
GChecking and traceability

To confirm every number holds.

Open run.json and show me the sha256 fingerprint of each input file and the modules that ran.
Validate this run against the contract and flag any structural problem.

The seven lenses

The modules, in brief

Each module answers one question and writes its own space inside run.json. All offline, all traceable.

01 // coverage

Fan-Out Radar

Does my cluster cover the sub-queries the engine would break the request into? It finds the gatekeepers and the missing archetypes. This is the core lens.

02 // citability

Citation Grid

How ready is this cluster to get cited in AI answers? It turns that into an editorial checklist, cluster by cluster.

03 // authority

Entity Web

Which entities I own and which I only ask for. It maps topical authority and the entity gaps to close.

04 // trend

Demand Pulse

Whether demand is rising, falling, seasonal, or flat. It wants the monthly series as input (--series). Without it, clusters come back unknown.

05 // priority

Click Ceiling

The band of winnable organic clicks per cluster. Always a band with a low and a high, because a single value would lie about its own precision. Priority follows real clicks over raw volume.

06 // opt-in

Live Wire

It pulls in observed data from Search Console and real citations, and compares measured against expected. Off by default. It will not run without that data.

07 // delivery

Output Forge

It turns a run into client deliverables: script-free HTML dashboards, .pptx decks, .docx audits, .xlsx workbooks, all brandable. A format without its library gets skipped and logged, never faked.

On top of the engine's four languages, English, French, German, and Spanish, Querymantic adds Italian as a fifth language: it detects and reclassifies Italian intent before the other modules run.


The right order

The flow in six steps

Querymantic opens the work and draws its structure before you write a line. The order counts.

  1. Cast a wide net in collection.Autocomplete, related, questions, People Also Ask, variants. The more archetypes you gather, the more complete the fan-out you can rebuild.
  2. Keep the whole on-topic tail.Even at zero searches. Strip only the off-topic homonyms. The on-topic tail stays.
  3. Pass the whole export to Querymantic.Tail included. No volume prefilter.
  4. Read the Fan-Out Radar.Pull the gatekeepers and the missing archetypes. That is the real list of what to cover.
  5. Structure the article on the fan-out.Each gatekeeper becomes a section or a paragraph in answer-ready form, never an outline around a single head keyword.
  6. Refine and close the gaps.Citation Grid for answer-ready form, Entity Web for the entities you do not own yet.

Keep in mind

Practical tips
Do not prefilter by volume. The zero-search tail that fits the topic carries the fan-out signal, and you keep it.
Do not confuse cleaning with pruning. Cleaning removes off-topic homonyms, the on-topic tail stays whole.
Give Demand Pulse the monthly series. With --series it classifies the trend, without it returns unknown, and that is not a bug.
For Click Ceiling bring CTR and SERP features. Without them it runs on defaults and the band stays generic.
Turn on Live Wire only with real data. Search Console export or observed citations in hand, never before.
Always open run.json. Every input has its sha256 fingerprint and every number traces to the row that produced it.

Declared limits

What Querymantic does not do

Method honesty

The fan-out numbers are a deterministic model of the fan-out, computed from the corpus. They are not the real fan-out observed from ChatGPT or an AI Overview. They are an estimate that holds up to a re-check, with declared parameters, and you treat them as an estimate. Never present them in an article as hard facts from the engine.

The sub-query count per cluster is a configurable ceiling, labeled as a secondary estimate, not a figure from a search engine.

An output format without its optional library gets skipped and logged, never faked. What this guide documents works. The rest lives in the roadmap as exactly that.

Sprint 2

The technical part

Here you open the hood. The run.json structure, the module slots, the right order of the lenses, the advanced command-line options, and the provenance manifest that keeps the numbers honest. You need it if you want to drive Querymantic by hand or understand where every figure comes from.

The single state

Inside run.json

Every run writes one file, run.json, and it is the source of truth for that analysis. It has three keys at the top level, and each one has a precise job.

{
  "querymantic": { versions, input fingerprint, modules that ran },
  "engine": { analysis from the vendored engine },
  "modules": { one slot per module that ran }
}

The querymantic key

It is the run's registry. It holds schema_version and plugin_version, the generation time, the list of inputs, and above all input_hash, the sha256 fingerprint of the source files. Change an input file and the fingerprint changes. That is how every result stays reproducible and checkable.

The engine key

The analysis from the vendored keyword-intelligence engine. The stable fields everything builds on live here: the corpus overview, per-keyword metrics and scores, topical clusters, and gaps. The engine answers one question. What demand exists and how it is structured.

The modules key

One space per module. Each one reads the state, writes its own slot, and leaves the others alone. There are eight slots, in the order that makes sense to run them.

language_layer // language and intent re-read (Italian)
entity_web // entity graph, owned and demanded
fan_out_radar // fan-out coverage, gatekeepers, archetypes
demand_pulse // trend and seasonality from the monthly series
citation_grid // AI citation readiness, per cluster
click_ceiling // band of winnable clicks
live_wire // observed data, opt-in
output_forge // branded deliverables

The modules in line

The module order counts

You pick modules with --modules and they run in the order you list them. The order carries weight. Some modules read the work of others, so if you place them wrong they read raw data instead of the corrected kind.

Two dependencies to respect

On an Italian export, list language_layer first, before the analysis lenses, so everything else reads language and intent already corrected.

Then entity_web goes before fan_out_radar: the Radar uses the entity graph when it is there, and still works without it, in reduced form.

A full, safe order on an Italian corpus, the way the module's own code suggests:

python scripts/querymantic_run.py run --inputs exports/ --output run.json \
  --modules language_layer entity_web fan_out_radar citation_grid click_ceiling

Without --modules, the default set runs. You list it only when you want a subset or your own order.


The levers

Command-line options

Three subcommands, run, forge, and validate. The options that matter, grouped by what they do.

Input and analysis (run)

--inputsfolder or CSV/TSV file to analyze.
--outputwhere to write run.json.
--modulesthe modules to apply, in the given order.
--labela label to recognize the run.

Demand strategy

--client-domainturns on gap analysis against the client's domain.
--brand-listsplits brand demand from non-brand.
--seriesbrings the monthly series, which Demand Pulse needs to classify the trend.
--seozoom-yearties the year to a SeoZoom export's monthly columns, so periods become real dates. Without it they stay neutral labels, because you do not invent the year.
--livewireturns on Live Wire, the one module that looks at observed data. Off by default.

Delivery (forge)

--formatswhich deliverables to render: html, pptx, docx, xlsx.
--outthe destination folder for the artifacts.
--brandthe brand file used to color and mark the outputs.

Each subcommand with --help shows the full list. A format without its optional library gets skipped and logged, never faked.


The proof of the proof

Reading the provenance

Next to the sample outputs lives a manifest, _provenance.json. It serves one purpose. To stop the outputs committed as proof from going stale in silence when the code that generates them changes. It is the guard that keeps the guide itself honest.

It has three parts, all readable at a glance.

artifactsthe sha256 of each output file treated as proof.
sourcesthe sha256 of each source that determines those bytes: the module code, the engine, the input samples, the gazetteer, the brand template, the plugin version.
perimeterthe explicit statement of what is in and what is out, with the reason written line by line.

The limit, written down

Outside the perimeter sit the interpreter and the operating system, because a different OS or Python can reproduce the same numbers with last-bit differences in the decimals, and a byte check would mark them as errors. So the manifest signs the sources, not the output bytes across different platforms.

The third-party libraries that render the bytes, like the ones for pptx and xlsx, enter the perimeter through their declared pins. A version change trips the guard. One gap stays, named openly in the manifest: an environment whose installed versions drift from the pins can change the bytes without moving any source signature. The --check-committed control covers it, on request, in the fixed local environment.


The through line

Why it is built this way

One idea holds it all together. The engine says what demand exists and how it is shaped. The modules say what to do with it. The single state, run.json, links the two, and each module is a pure step. It reads the state, writes its own slot, touches nothing else.

Determinism is enforced in continuous integration: same input, same output, byte for byte, on Python 3.10 and 3.12. That is where the promise at the backbone of Querymantic comes from, and now you can check it with your own hands by opening run.json and following the fingerprints.

What to take with you

The thread, now in your hands

Click-based keyword research has stopped being enough. Answer engines break every question into a fan of sub-queries, and the page that wins is the one that covers the fan-out. Querymantic makes it visible, offline, with every number tracing back to its row.

From here the practice is simple. Cast the net wide, keep the whole tail, read the Fan-Out Radar gatekeepers, and build the content structure on them. The numbers you get are a model, with declared parameters, and that keeps you honest when you write. Sprint 2 gave you the levers to drive all of it by hand and to check every figure yourself.

This Blueprint is a starting point to bend to your work. Try it on a real export, open run.json, follow the fingerprints. The demand nobody types is right there, and now you know where to look.

Demand intelligence. Offline. Provable.