Answer Radar / Fix and verify
Measured, then fixed, then measured again
Most trackers stop at the score. Answer Radar carries the gap through a fix a person approves, then re-runs the same prompts after the engines have had time to read the page, and reports what moved. Not what you hoped moved.
Updated 2026-09-04
What the loop is
Six tool calls, two of which a human has to be in front of.
A fix is a brief, an article or a response written against one recommendation gap and built only from what the audit recorded. Answer Radar assembles the evidence, you write the words, a guard refuses any source the engines never returned, a person approves in the Fixes page, and after you publish, a re-verification re-measures the same buying questions with the same configuration and reports movement. It never reports a cause, and it says so in every response.
The check, recorded on 4 September 2026 on our own project
Gap 557a8732 is our rank-one recommendation gap: no engine named Linkeddit for competitor monitoring software that tracks pricing changes and product launches. We wrote a draft and asked the guard whether it cited only what the run recorded.
answer_fix_check({
gap_id: "557a8732-3b02-4858-84f0-6aebbdea0286",
content: "Draft: a comparison page for competitor monitoring
software that tracks pricing changes and product launches.
Sources the engines actually read include
https://www.price2spy.com/ and https://visualping.io/ .
It would also cite https://linkeddit.com/competitor-intelligence
as our own page."
})Recorded through the Linkeddit MCP connector from VS Code. The write tools were not executed for this recording because each creates a row on the account.
Response, abridged from the recording
- faithful
- false
- checked
- 3 URLs, 0 citation ids
- price2spy.com
- supported true, matched_by domain, three citation ids. The run cited that site but not that exact page.
- visualping.io
- supported true, matched_by domain, three citation ids.
- linkeddit.com/competitor-intelligence
- supported false, matched_by null. Real and public, but no engine cited it when answering this question, so a fix may not present it as evidence the engines used.
- available_evidence
- 24 citations across 17 domains, including aimultiple.com, softwarereviews.com, prisync.com, competiflow.com, veilleo.com, getapp.com and reddit.com, so the draft can be rewritten against what exists.
The guard did its job. The same check runs again inside answer_fix_update, so a draft the check passed will save and a draft it flagged is refused with nothing written.
The six steps, and the tool behind each
Named as they appear in the connector. Steps 4 and 6 are where a person is required.
Step 1
Draft the evidence skeleton
answer_fix_draft
For a gap and a type (brief, article or response) it assembles the gap's summary, the facts observed during measurement and the recommended actions, deterministically, from the run's recorded evidence. No model, no prose. You or your assistant write the words.
Step 2
Check your draft against the evidence
answer_fix_check
For every URL in your content and every citation id you pass, it says whether the gap's run recorded it, and lists the evidence that does exist so you rewrite instead of guess. It writes nothing and rejects nothing.
Step 3
Store it under the guard
answer_fix_update
Any change to the body or the sources is re-checked exactly as the draft was. An edit that cites a source the run never recorded is rejected and nothing is written. Approved and published cannot be set here.
Step 4
Save it for a person to approve
answer_fix_save
Puts the fix in the Fixes workspace and returns the deep link. This is the governed step: it creates a row a human will act on. Approval is a human action, in the app, never from a tool call.
Step 5
Register the re-measurement
answer_verify_start
Starts no run now. Content published today is not retrievable today, so the follow-up is due after an indexing delay, 168 hours by default. Pass the fix id so the report records what was being tested.
Step 6
Read what moved
answer_verify_get
Once the follow-up settles, an observed delta per segment with one of six outcomes. The report is null until then, which means not measured yet, never no change.
The six outcomes a re-verification can report
About movement only. The threshold applied is the larger of 0.10 and one over the sample count, and every delta carries both numbers.
| Outcome | What it means |
|---|---|
| improved | Presence or recommendation rate rose past the threshold on paired segments. |
| declined | It fell past the threshold. |
| mixed | The compared metrics crossed in different directions. Never collapsed to one verdict. |
| no_significant_change | Both sides measured, nothing moved beyond what the sample size can resolve, however large it looks. |
| not_comparable | A segment existed on one side only, or the instrument changed. Never reported as a fall to zero. |
| ambient_change_not_isolated | The project's untargeted control prompts moved as much as the target. The measurement cannot separate your change from whatever moved everything. |
Segments are paired only when engine, model, tool version, geography and language all match on both sides. Control prompts are the project's other prompts, the ones the fix did not target; when a gap has no prompt there is no control set and the report says so rather than treating every other prompt as one.
What the loop refuses to tell you
Each of these is a place where a plausible number would have been easy to print.
- It does not attribute movement to your change. The result is always an observed delta. There is no field in which a cause can be recorded.
- It does not report a confidence value, because none is computed.
- It does not compare share of voice or mean position between runs. Only presence rate and recommendation rate, on identical denominators, are subtracted.
- It does not check accuracy. A faithful draft is correctly sourced, not correct; whether a cited page supports the claim attached to it is the approver's job.
- It does not approve or publish. Both are human actions in the workspace, and the update tool cannot set either status.
Frequently asked questions
How do I fix an AI visibility gap and know whether it worked?+
Draft against the gap's recorded evidence, write the page, check that every source you cite is one the engines actually returned, save it for a person to approve, publish, then register a re-measurement of the same prompts on the same configuration. After the indexing delay Answer Radar reports what moved, per engine, with a threshold and a control set. That is the whole loop, and every step is a tool you can call from the app or from your AI assistant.
Does Answer Radar write the fix?+
No, on purpose. The draft tool assembles evidence and generates no prose, because writing is something your assistant already does well once it has the facts. What it cannot do on its own is know what the engines said, which sources they cited, and whether anything moved after you published. Those are the parts we build.
What does the faithfulness check actually catch?+
Sources the run never recorded. On our own project on 4 September 2026 a draft cited our competitor intelligence page as evidence; the check returned supported false for it, because no engine cited that page when answering the question, and listed the 17 domains that were available instead. The check is structural: it cannot tell you whether a cited page supports the specific claim you attached to it. A person does that at approval.
Why wait 168 hours before re-measuring?+
Because a page published today is not retrievable today. An immediate re-run would report no change about something nothing has seen yet, and that result would look like a finding. The default delay is 168 hours; registration starts no run and returns followup_due_at.
When does a change count?+
A rate over n samples can only move in steps of one over n, so the threshold is the larger of the configured minimum change, 0.10 by default, and that resolution taken from the coarser side. A delta under the threshold is no_significant_change. Presence rate and recommendation rate are compared; share of voice and mean position are not, because one is a distribution and the other an ordinal whose absence is not zero.
Is there a confidence score on the result?+
No. None is computed, so none is reported. A plausible-looking number there would be the most quotable thing in the response, and it would be made up. The outcome describes movement only; nothing in the report attributes the movement to your change.
Read next
Content gaps
Which of your pages was supposed to answer the question, and what it does not say.
Read HelpVerifying a fix
The delay, the pairing rule, the threshold and the six outcomes, from the backend definitions.
Read ConnectorThe loop from your assistant
Every step above is a tool call in the Linkeddit MCP, with the same account and the same guard.
ReadStop at the score, or carry it through to a re-measured result
The fix and verify loop is part of Answer Radar, included with the Compete plan, in the browser and through the MCP connector.