Target outcome
A paid-placement intelligence map by prompt, advertiser, product, and observed model
Measure the paid surface
Inspect the triggers
Separate the surfaces
Build the watchlist
Run in Claude and Run in ChatGPT open a new browser tab with the prompt already typed. Nothing is sent until you submit it.
Sponsored placement, organic recommendation and cited source can sit in the same answer, and folding all three into one number produces a report nobody can defend. Keep them apart, and what surfaces is the ranked list of questions a competitor pays for while you are absent organically.
Ad presence gets read as strength: a rival shows up three times, so the assumption is budget and reach. What the pull returns is detected ad rows in your monitored dataset. No impressions, no spend, no targeting, and one ad can produce several rows, so counting rows as media builds a market-share claim on a row counter.
The rows carry the advertiser, the product, the monitored question and the model, but no answer identifier. Paid and organic evidence stay a contextual candidate: enough to pick which questions to write for, not to describe a media plan.
1. Pull the detections. get_sponsored_content covers up to 365 days and returns totals for ads, advertisers, prompts and products, then the top advertisers and the most recent ads. One limit governs both lists and stops at 20, with no pagination, so compare each length against its total. The provider field holds the stored model identifier. With no detections it returns zeros and two empty lists, which ends the workflow.
2. Name the advertisers. Advertiser and product names come back raw, and the competitor flag says a detection was linked to a tracked competitor domain, not which one. Pull get_competitors for IDs, domains and relationship classes and reconcile on names, raising its 20-row default until the whole set returns.
3. Resolve the questions and read them. get_prompts pages the portfolio, 50 rows by default and 100 at most, with an offset and a total, so page until the total is covered; an ad text matching more than one prompt stays unresolved and out of the ranking. For each resolved prompt, get_prompt_answers returns the most recent answers with model, date, truncated text and whether your brand was mentioned, and get_answer_details opens one in full with competitor positions and cited sources.
Two tiers, decided by the brand-mention field. A resolved prompt where no returned answer mentions your brand goes in tier one: a competitor is paying for a question you are absent from, an editorial brief with an owner. One mention or more puts it in tier two, the watch list. Inside a tier, order by distinct advertiser count, then by most recent detection date.
The test is question-level. Model and date belong in the evidence row, not in the tier assignment, and "never mentioned" holds only across the answers you pulled, so state that limit beside the ranking.
Store brand, window and limits with the output; a cited URL is not the ad destination.
I want to audit the sponsored placements detected around my monitored prompts. If I monitor more than one brand, list them and ask which to use. Keep paid placements, organic mentions and citations in separate columns, and never invent spend, impressions or causality.
1. Pull sponsored content for the last 30 days with a limit of 20. Report the run parameters, the full summary and every advertiser and recent-ad row, flagging any list shorter than its total as a slice. The provider field is a stored model identifier. If the summary shows no ads, say the period produced no detections and stop: that is a normal outcome, not a reason to widen into organic data.
2. Register every raw advertiser and product name with its prompt text and date. Pull my competitors with a limit high enough to return the whole set and reconcile on names; the competitor flag never says which competitor. Then ask me which advertiser names are mine or a reseller's, since nothing marks that: keep those out of the ranking.
3. Page my prompts, 100 per request, until the returned total is covered, and resolve each ad prompt text to a single prompt; texts matching several stay excluded. For each, pull the answers with an explicit limit that you state, then open the most relevant one in full with competitor positions and cited sources.
4. Rank the resolved prompts in two tiers, tested per question and not per model. Tier one: no returned answer mentions my brand. Tier two: at least one does. Order each tier by distinct advertiser count, then by most recent detection date, and state the answer limit the tiers were computed over. Tier one lines get an owner and a first action, tier two a re-check date.
Every paid to organic link is matched on question, model and date only, with no shared answer identifier, so never call it a proven join.
Connect Qwairy to Claude, pull the exact signals in the workflow, and leave with an execution-ready output.
A six-step workflow for inspecting competitor visibility trends, mapping current source evidence, reading monitored answers, and building a prioritized response plan with Qwairy MCP.
Summarize monitored prompts into attack, defend, monitor, and ignore counts, review the supported attack and defend shortlist, and add explicit business judgment for resource allocation and prompt expansion.
Compare equivalent prompts, dates, providers, models, answers, competitors, and citations to diagnose why AI visibility differs without mistaking correlation for cause.