Decide what to write next
Two different questions - demand you are visible for and losing, and demand you have no page for at all - asked in the order that keeps them apart.
Use this when the output is a brief rather than a fix. The order matters because the cheap half of the answer is free and the expensive half exists only because the free half is structurally blind to it.
find_content_gaps - half A,
always returned and free: queries the site is already visible for
(impressions above the threshold) where no page of yours ranks well.
This is demand you are losing, not demand you are missing.
Read each row's cannibalizationStatus before briefing anything -
confirmed re-labels the row gapType: "cannibalized" and lists the
competingPages: consolidate, do not publish against yourself.
possible names an unread sitemap URL in suspectedPages - open it
first. none is the row this tool actually cleared. unknown means
there is no usable sitemap inventory, so the row is a candidate rather
than a cleared one.
find_emerging_keywords -
queries being asked more often, read on impressions rather than
clicks. Clicks lag by however long a page takes to rank, so rising
impressions with flat clicks is exactly the row worth acting on.
pattern: "accelerating" means the last rise was bigger than the one
before it.
find_content_gaps with includeUncovered: true - half B: topics
the workspace's confirmed products and audiences imply and the site has
no page for. Half A cannot see these at all, because both engines list a
query only if the site already drew an impression for it. This half
costs money on every call (one LLM expansion plus one keyword-volume
request per engine), is capped per workspace per day, and asks for
confirmation first.
Follow recommendedAction on each half-B topic - create (nothing
of yours is near it), refresh (a page of yours is adjacent, so expand
pageToRefresh rather than publishing a second page against it), or
verify_inventory (fewer pages were searched than the site has, so the
absence is a limit, not a finding). Read coverage.nearestDistance
alongside the verdict; the thresholds are declared, not calibrated.
An empty `uncovered` has three meanings
Read uncoveredStatus before concluding anything from it. not_requested
means you did not ask for half B. unavailable means the workspace has no
confirmed products or audiences for a topic to be implied from. failed
means the expansion could not run. None of the three means the site has no
uncovered demand.
Turn findings into one work queue
Answer "what should I work on" with four kinds of finding priced in a single unit, then drill into the ones you pick.
Get the brand and competitor sets right
Two small lists that silently decide what several other tools report - worth checking before you trust a branded split or a share of voice.