Target outcome
A before-and-after campaign scorecard with observed visibility changes
Set the baseline
Measure pickup
Check alternatives
Decide what scales
Run in Claude and Run in ChatGPT open a new browser tab with the prompt already typed. Nothing is sent until you submit it.
A campaign ships, a dashboard number moves, and nobody can say which pages the engines picked up. Two matched windows of AI-answer evidence, compared, turn that into a follow-up plan. Run it when you have a launch date and a list of shipped URLs; if pages that used to be cited have gone quiet with no campaign attached, that is a decay question, not this one.
Analytics and Search Console answer something else. Pageviews, rankings and clicks describe how humans reached a page, not whether an assistant quoted it. A campaign can lift organic traffic and leave the monitored answers untouched.
AI-answer evidence turns the campaign into a measurement: the same component metrics over two matched windows, the campaign URLs cited today, the prompts you targeted. What comes out is an association tied to dates and sample sizes, not a cause.
1. Match the two windows. get_brand_performance takes explicit start and end dates and returns mention rate, source citation rate, share of voice and sentiment, with scoreDetails carrying the numerator and denominator behind the first three. Call it once per window, matched in length. get_visibility_trend accepts the same custom dates and filters when a time series is needed.
2. Check which pages were picked up. get_page_presence accepts each custom window and returns, per page, status, citation count, unique question count, average position and providers. Call it for both windows. The monitored-page registry itself is current, so a URL present in only one result still needs a rename or registry check.
3. Split the delta by provider. get_provider_breakdown accepts the same dates and filters and returns up to ten observed providers. Call it per window, then use get_brand_performance per provider when you need metric denominators.
4. Verify the prompts you targeted. get_content_opportunities accepts both custom windows and returns at most ten rows per list. Compare the two scoped lists, then resolve their question text with get_prompts; saved campaign target IDs still identify intent, not data availability.
5. Write the follow-up plan. No tool here: observed improvements with dates and sample counts, inconclusive areas with the next check, gaps for the next campaign.
A real matched pair of windows: mention rate flat at 1.08 percent, share of voice flat at 0.25 percent, and source rate moving from 2.3 to 3.49 percent, a gain of 1.2 points on 54 of 1548 citable responses.
One metric moved, and it is the one a campaign can move. Source rate counts answers citing your pages, mention rate counts answers naming your brand, and publishing gets you cited before it gets you named. A campaign that lands shows up here first with the other two flat for weeks, so reading that flat mention rate as failure is the mistake this workflow prevents. Record both denominators: 1548 against 928 is not the same population.
Save the run as the next baseline: window dates, filters, denominators, campaign URLs, target prompt IDs and page pickup. Historical evidence windows can be queried again, but the saved run preserves campaign intent and the monitored-page configuration.
Absence from today's opportunity list is not proof a gap closed, and a citation without a brand mention is a separate observation.
Then let the returned status decide the next move. A campaign URL coming back WORKING has cleared the citation bar the tool applies: repeat its format. NEEDS_ATTENTION means cited but under that bar: give it one more window before judging the format. NOT_CITED after a full window is not a rewrite candidate yet: check the page is reachable and crawled first. DISCOVERED means engines cite a page you are not tracking: add it to the monitored set before the next run. When two WORKING candidates compete, take the one whose targeted prompts carry the larger denominator.
I want to measure the impact of a content campaign on my AI visibility. List the brands I monitor and ask which to use if there are several. Then ask me for the campaign launch date, the campaign URLs and any saved target prompt IDs. Without saved IDs, reconstruct the observed windows but say the campaign's intended prompt cohort is unknown. Unless I give other dates, use the 30 days after launch as the measurement window and the 30 days before as the baseline.
1. Call get_brand_performance once per window and compare mention rate, source citation rate, share of voice, sentiment and the scoreDetails denominators. Do not invent a composite score. If a window returns no responses, say so and stop comparing rates.
2. Call get_visibility_trend over explicit dates covering both windows, grouped weekly, mark the launch date, and report weekly totals with visibility rate and average position as association, not causation.
3. Call get_page_presence once per window with the same filters and match my campaign URLs exactly. Return each page's status, citation count, unique question count, average position and providers in both windows. A URL present in only one result needs a URL or monitoring-registry check before being called pickup or loss.
4. Call get_provider_breakdown once per window with identical filters, then get_brand_performance per observed provider per window. Flag small or missing samples instead of estimating them.
5. Pull get_content_opportunities once per window with identical filters. Resolve returned question text through get_prompts, then use get_prompt_answers for the saved target IDs and observed opportunity prompts. Classify each as observed with my brand, observed without it, or inconclusive. Empty lists mean no question met the opportunity rule in that scope, not proof every gap closed.
6. Build a follow-up plan separating observations, hypotheses, verification steps and next experiments, then rank the campaign URLs by returned status: WORKING first as formats to repeat, NEEDS_ATTENTION for one more window, NOT_CITED to a crawl check, DISCOVERED added to my monitored pages. Before attributing anything, ask about other events in the same period: a press push, a migration, a seasonal peak.
Connect Qwairy to Claude, pull the exact signals in the workflow, and leave with an execution-ready output.
Set up a Claude scheduled task that generates a weekly GEO performance brief using Qwairy's MCP server, with optional Slack distribution and Notion action items.
Build a GEO measurement dashboard with tracked AI-referral revenue, visibility metrics, competitive context, proxy signals, and an executive summary.
A Claude + Qwairy MCP workflow for CMOs adding AI search to their board deck. Produces a board-ready metric row with methodology, competitive context, trend direction, a concise narrative, and an assumption-labeled scenario.