Bing visibility agent
Four numbers from Bing every week, and every deploy pushed to it.
Copilot answers from Bing’s index, and ChatGPT search reads Bing as one of its sources, so a page Bing has not fetched cannot be cited there. Bing Webmaster Tools shows all of this, but only to someone who opens it every week and reads four reports side by side.
Running on our own company since Oct 6, 2026 · Bing Webmaster Tools · IndexNow · Risk: Low. Everything on this page is public; there is nothing to sign in for.
Tasks and outputs
What it takes on
Pull the week’s numbers
Calls the Bing Webmaster API for crawl stats, traffic, queries, pages, sitemaps and quota, and keeps each answer as a dated file.
Export what Copilot cites
Opens Bing Webmaster Tools in the signed-in Chrome, downloads the three AI Performance CSVs and normalises them by what their columns mean.
Summarise and push
Writes the four numbers beside last week’s with the queries behind them; after a deploy, pushes the changed URLs to IndexNow.
Who it is for: Teams that publish often and want to know, weekly, whether Bing is keeping up: how many pages it holds, whether anyone arrives from it, which questions Copilot cites them for, and whether the last deploy was pushed to it.
How we use it: We have run it on claw-world.app every week since October 2026. Its first readout found Bing holding 191 of our pages and no category query at all; its second found the pages Copilot cites and two template problems on every post. The numbers it reads are the ones on the public run log.
What each number is counted to
01Pages indexed is Bing’s InIndex on the last day of its crawl stats. The target is parity with the sitemap, not a bigger number: retired pages still in the index count against it.
02Impressions and clicks are the 28 days ending the day before the snapshot, summed by day. A single-week change under 2x is not a signal.
03Copilot citations are the AI Performance series summed over 28 days and over the whole exported window. Bing calls the report a sample; the count is a floor.
04A category query is what a buyer of the service types: AEO, answer engine, AI visibility, mentioned in ChatGPT and the like, never the brand name. The definition is shared with the Google readout; changing one changes both.
05IndexNow pushes are the log lines with a 2xx status in the 7 days before the snapshot. Zero means a deploy went out without one.
06Changing a definition changes what every past summary meant, so it is written down first.
The rules the agent’s output is written to, from the file named above. This site prints no example output; what the agent has shipped is in its run log.
Workflow
How a run goes, step by step
Pick a step to see what goes in, what comes out, and where a person is involved.
Step 1 of 6
Pull the API
Asks Bing which site string it wants, then pulls seven reports for it. A report that answers 403 or 404 is skipped and the run goes on; Bing’s wrapped dates are unwrapped here.
The API key, read from a file outside the repository
A dated folder with sites, traffic, queries, pages, crawl, crawl issues, feeds and quota as JSON
None. If the key file is missing, the run stops before any call.
Step 2 of 6
Export the AI report
Opens one tab in the signed-in Chrome over the DevTools protocol, sets the range to three months, downloads the overview series, the grounding queries and the cited pages, and closes only that tab.
Chrome with remote debugging on a fixed port, signed in to Bing Webmaster Tools
Three CSV files in the same folder, and a screenshot of the report
When the browser is not signed in: the script stops and says so, and a person signs in once. A manual download dropped into the folder works the same.
Step 3 of 6
Normalise
Recognises each CSV by what its columns mean (query, page, date) rather than by its headers, so a renamed column does not break the week, and keeps the original columns alongside.
The three CSVs
One JSON file of citations by query, by page and by day
None.
Step 4 of 6
Summarise
Writes the four numbers beside the previous snapshot’s, the crawl figures, the queries and pages Bing showed the site for, the Copilot grounding queries and cited pages, and which pages are cited this week that were not last week.
This week’s folder and the previous one
summary.md, with its window and the snapshot it is compared to in the first line
A person reads it. The first time a category question appears, they note which page caught it.
Step 5 of 6
Report
Puts the four numbers into the week’s report with one sentence of judgement. The whole summary is not pasted; the report is for reading.
summary.md
One line in the weekly report
The person running it writes the sentence.
Step 6 of 6
Push after a deploy
After every deploy, the deploy script asks the sitemap generator which URLs are built from the files that changed and submits exactly those to IndexNow. A template change that alters every page is pushed once by hand; the whole sitemap is never resubmitted weekly.
The commit range of the deploy
One line in the IndexNow log: when, how many URLs, what IndexNow answered
When the push fails, the deploy still goes out; a person reruns the push.
Before you start
What you’ll need to bring
Company material
The site verified in Bing Webmaster Tools, and the list of category terms a buyer of what you sell would type.
Source material
Your sitemap, served and submitted to Bing, and the IndexNow key file at your site root. The agent reads both; it writes neither.
Platform account
A Bing Webmaster API key for the API reports, and a Chrome profile signed in to Bing Webmaster Tools for the one report that has no API. No password handed over.
Run environment
A machine that can keep that Chrome open during the export, Node.js for the scripts, and an agent runner that follows a written workflow. We use Claude Code.
Run log
Recent runs, as they happened
The full log is public and read-only. It holds every run on record, including the ones that stopped to wait for a person.
View the full run logGuides and files
Set it up yourself
The setup guide, and the files the agent is built from. You run it in your own environment, with your own accounts.
- 01
Runtime
- An agent runner that can follow a written workflow and run Node scripts — we use Claude Code.
- Node.js 20 or later, for the five scripts.
- 02
Browser setup
- A dedicated Chrome profile signed in to Bing Webmaster Tools, launched with remote debugging on a fixed port. Only the AI Performance export, the Recommendations lists and Site Scan need it; the four numbers come from the API.
- Signing in is a one-time human step in that window; the session persists in the profile.
- 03
Account setup
- The site verified in Bing Webmaster Tools (importing it from Google Search Console takes a minute).
- A Bing Webmaster API key, issued per user under Settings → API access, kept in a file outside the repository.
- An IndexNow key: any 32-character key, served as a text file at the site root. No account needed.
- 04
Configuration
- The site’s host name and the folder the weekly snapshots go to.
- The list of category terms a buyer of your product would type, so the summary can say whether a query of that kind has appeared. Keep it identical to the one your Google readout uses.
- A deploy hook that calls the IndexNow submitter with the URLs that changed.
- 05
First run
- Run the API pull once and check that the site string and the four numbers match the Bing Webmaster Tools dashboard.
- Run the browser export and confirm the three CSV files landed; if the browser is not signed in, the script stops and says so.
- Push one URL to IndexNow and look for it in the IndexNow report in Bing Webmaster Tools the next day.
SKILL.md
Workflow · Markdown. The steps above, the definitions and the known pitfalls, as the runner reads them.
pull.mjs
Script · Node. Calls the Bing Webmaster API and writes one dated JSON file per report.
export-ai.mjs
Script · Node. Drives the signed-in Chrome over the raw DevTools protocol: the AI Performance CSVs, the Recommendations lists, a Site Scan.
ingest-ai.mjs
Script · Node. Normalises the CSVs by column meaning into one JSON file.
summarize.mjs
Script · Node. Writes summary.md beside the previous snapshot.
indexnow-submit.mjs
Script · Node. Submits URLs to IndexNow: a list, the files a deploy changed, or the whole sitemap once.
Not packaged for public download yet. The guide on the left describes what each one does, step by step, so you can rebuild the setup; the Hosted and Fully managed tiers run them for you today.
Rather have us run it?
Hosted: your accounts in a cloud browser we run, and you review what goes out. Fully managed: we set the strategy and run the agents.
Good to know
Where it stops and asks for you
- The browser is not signed in. The export stops before touching anything and says so. The API numbers are already on disk; only the Copilot part waits for a person.
- Bing renamed a button. The export matches visible text, exactly first and then by contains. When neither matches, the run stops with a screenshot and the list of clickable texts, and the text in the script is updated.
- The IndexNow key file is not served. The submitter checks the key URL first and stops; IndexNow silently ignores submissions whose key it cannot read, so this is never retried blind.
- The API throttles. A report answering 403 or 404 is skipped and the run goes on; the per-URL lookup stops after about ten calls and is not part of the weekly numbers.
Risk notice
What to watch for
- Bing states the AI Performance report is a sample, not a full log: low-frequency citations do not appear, so the citation count is a floor, never a total.
- The browser export depends on Bing’s UI; a redesign breaks it until someone updates the button text. The four numbers come from the API and are unaffected.
- IndexNow accepts whatever it is sent: resubmitting the whole sitemap every week teaches Bing nothing, and the skill forbids it outside a template change that alters every page.
FAQ
Questions about this agent
The browser export stops with “not signed in”.
Open Bing Webmaster Tools in that same Chrome profile and sign in by hand; nothing else changes. The API pull does not need the browser at all.
Bing renamed a button and the export cannot find it.
The export clicks by visible text. The script has a discover mode that screenshots the page and lists every clickable text, so the new name is a one-line change.
IndexNow answered 200 but the page is still not indexed.
A 2xx means received, not indexed; IndexNow never reports what Bing did with a URL. The IndexNow report in Bing Webmaster Tools and the next week’s indexed count are where that shows.
The per-URL lookup answers “ThrottleHost”.
The Bing API throttles after about ten URL lookups in a row. Wait a minute and continue; the weekly numbers do not use that endpoint.
Would you rather we ran this agent for you? There is a managed service for that.
Talk to us