The pain it fixes
For the traveler
45%
of US travelers named comparing multiple options as a frustrating moment in planning. Many already hand some of the narrowing to AI: 34% use AI during travel research, and 67% are comfortable with AI comparing and narrowing options.
Skift Research + McKinsey, Sept 2026, n = 1,015 US travelers (data as of June 2026). US travelers, not Alaska visitors.
For your business
The short list an AI tool writes is the new first page, and you cannot see it. In the report's own test, five AI tools answered the same hotel question and no hotel appeared in all five answers. Incomplete or poorly spread facts can keep a good offer off that list "without the provider ever knowing" (Skift Research + McKinsey, Sept 2026).
The monitor is how you find out every week, without opening three chat apps by hand.
What it automates
The AI visibility audit scores four checks by hand, 0 to 2 each. The monitor runs two of them for you across three AI tools, every week. The other two stay with a person.
| Check | The question | Who scores it |
|---|---|---|
| Appear | Are you in the answer at all? | Automated The monitor looks for your name and its other spellings: whole words, any capitalization. |
| Cited | Are you in its sources? | Automated The monitor looks for your website in the answer's citation links. |
| Described | Right category, place and promise? | A person The weekly report lists the answers to read. |
| Current | Today's prices and policies? | A person Structured data helps keep your facts machine-readable. |
Two parts
Part A: structured data (fix the input). Your approved facts as schema.org markup on your own pages: hours, season, price, minimum age, duration, rain and cancellation policy. Open the generator. No AI, no code.
Part B: the weekly monitor (measure). A small Python program sends the same traveler questions to the Claude, OpenAI and Gemini APIs with live web search, and records who was named and which sites were cited. It writes a weekly diff and a quarterly trend.
Who should build it
A developer
Start from the tested bundle below, or give the build brief to a coding agent (Claude Code, OpenAI Codex or Gemini CLI). Roughly 1 to 3 days of build (80% interval: 1 to 5), then about an hour a week to read the report.
A vendor
Commercial AI-visibility services exist. Compare them on the number of prompts, which AI tools they cover, whether you keep the raw answers and their citations, and the price per prompt.
ATIA, once for every member
Cost scales with prompts, not with businesses: one answer is checked for every watched name. 50 prompts × 3 tools × about 4.3 weeks is about 645 answers a month, whether the list holds 1 business or 300.
Estimate: API cost at 50 prompts, three AI tools, weekly is roughly $10 to $100 a month (80% interval). The monitor replaces this estimate with the measured cost after its first run, and stops at a monthly budget you set.
Honest caveats
- API answers are a proxy panel, not what the consumer apps show. The apps travelers use add their own settings, location, account history and features. Watch the direction over time; do not treat one answer as what every traveler sees.
- One week is noise. The same question asked twice can get a different answer. Report quarterly trends. Do not infer ranking or bookings from one answer.
- Costs are estimates until the first run. After that, the monitor multiplies the usage each provider reports by the prices you set. Your provider billing page is the real bill.
- Model and tool names change. The bundle keeps them in one settings file, and its
checkcommand tells you when a name was rejected. - Software counts mentions; it does not judge them. It can tell you that you were named, not whether you were described fairly. That is why Described and Current stay human.
See why one week is noise (fictional sample report)
Two mock weeks of the bundle's fictional data. Bay Light was named in 5 of 48 answers both weeks, so the total looks flat, yet four answers flipped underneath it.
Who was named and cited Named this run Named last run Bay Light Day Cruises 5 of 48 (10%) 5 of 48 (10%) Mile 12 Kennel 5 of 48 (10%) 5 of 48 (10%) Harbor Kayak Co. 4 of 48 (8%) 4 of 48 (8%) Sample Fjord Tours 4 of 48 (8%) 4 of 48 (8%) Gained mentions (same prompt and tool, named now, not last run) - Bay Light Day Cruises: openai, prompt P03 - Bay Light Day Cruises: openai, prompt P16 Lost mentions (named last run, not now) - Bay Light Day Cruises: anthropic, prompt P03 - Bay Light Day Cruises: gemini, prompt P02 Sources cited for the first time - visitfairbanks.example (cited in 1 answer) - travelblog.example (cited in 1 answer)
The full sample report (plain text) also lists the most-cited sources, the answers to read by hand and the quarterly table.
Downloads
- ai-answer-monitor.zip The weekly monitor (Python, about 70 KB). Try it with no keys and no internet in mock mode on fictional data. Real runs need API keys. Includes a README for non-developers, tests and an optional weekly schedule for a private GitHub repository.
- monitor/README.md Read the setup steps before you download.
- Structured data generator Opens in your browser. Fill in your facts, copy one block per page, tick the visible-facts checklist.
- example-baylight.jsonld The fictional Bay Light example: the business and its trip in one file. On a website they go on two pages. The price, street address, phone number and hours are invented.
Try the monitor in two minutes
Unzip, open a terminal in the folder, and run these (Python 3.10 or newer; nothing is sent anywhere):
Commands
python monitor.py run --mock python monitor.py run --mock --fixtures fixtures/week2 python monitor.py diff --mock
The build briefs
For a developer or a coding agent. They are the Prompt Kit's 1.c briefs, updated with what the tested bundle does. AI drafts. You approve.
Brief 1: the weekly monitor
Build brief
Brief 2: structured data for the website
Or skip the AI: the structured data generator does this in your browser.
Paste approved business facts only. Never guest names, emails, phone numbers, card numbers or other guest details.
Build brief
Generate JSON-LD for our website using schema.org, from the approved fact sheet below only. [PASTE APPROVED FACT SHEET AND PAGE LIST] - Home page: one LocalBusiness block (or TouristAttraction or LodgingBusiness if that fits better) with name, address, telephone, url, openingHoursSpecification for the season, and amenityFeature (LocationFeatureSpecification) for checkable facts such as a heated cabin or restrooms. amenityFeature belongs on the business, not on a trip. - Each product page: one TouristTrip block with provider (pointing to the business @id), touristType, itinerary (an ItemList of Place) and offers. The Offer carries price, priceCurrency USD, availability, validFrom and validThrough for the season, url, and additionalProperty (PropertyValue) for minimum age, duration, rain policy and cancellation policy. - No AggregateRating built from our own reviews. - Output one <script type="application/ld+json"> block per page and say which page each goes on. List every fact in the markup that a visitor also needs to see on that page, and flag any fact that is not on the page now, because the two need to match. - Use only the approved facts. Write [FILL] where a fact is missing; do not guess. Mark your reply DRAFT - PENDING OWNER REVIEW. I will check every block at validator.schema.org (TouristTrip) and run the home page through Google's Rich Results Test (it covers the LocalBusiness part only) before publishing.
Google's "Things to do" listings come from booking feeds sent by connectivity partners, not from markup. Ask your booking platform whether it sends one.
How you will know it worked
Number 1: the share of AI answers that name your business, by question and by AI tool, reported once a quarter. Start from your hand-run audit score as the baseline. Watch the Cited share next to it: when your own site is the source, the facts are yours.
Read the quarterly table in the report, not the weekly change.
Climb from: 1.a Rewrite for the short list (identical facts everywhere) and 1.b Your own curated ten. This rung needs 1.a published first.
Before you use it
AI drafts. You approve. The monitor reports; a person reads the report before it is shared, and scores Described and Current.
- Recommendation: run the monitor in a private repository, never in the public kit repository. Keep API keys in environment variables or GitHub Secrets.
- Contractual: if you show AI answers to members, staff or anyone else, show their citations with them. Check the Anthropic and OpenAI usage terms. Check the Gemini API terms for Grounding with Google Search before you store or show grounded answers, including how Google Search suggestions are displayed (storing full Gemini answers is off by default in the bundle).
- Recommendation: generic traveler questions only. No traveler or guest data in the prompts.
- Policy choice: which businesses are watched (members only, or competitors too) and who sees the results. For an association, agree it with the board before the first run.
- Recommendation: markup facts match the visible page, and no AggregateRating from reviews you collect yourself.
- Bay Light Day Cruises, Mile 12 Kennel, Harbor Kayak Co. and Sample Fjord Tours are fictional. Every
.exampleaddress leads nowhere.