Inspiration

Search is changing forever. With the rise of AI search engines like Perplexity and Google AI, traditional SEO is no longer enough. I realized that if an AI doesn't recommend a company's product, they instantly lose a customer—but companies have absolutely zero visibility into what these AIs are saying about them.

Testing this manually requires typing hundreds of queries, taking notes, and writing complex schema code by hand. I wanted to build an autonomous agent that could completely automate this massive problem.

What it does

AEO Watchdog is an autonomous AI agent that audits and fixes a brand’s visibility across modern AI search engines.

You simply give it a brand name, and the agent takes over

It dynamically brainstorms buyer-intent search queries. It physically drives a web browser to search Perplexity and Bing side-by-side, extracting their generative AI answers. It grades the results, telling you if your brand won, if your competitors beat you, and what links the AI cited. Finally, it scrapes the brand's actual website and uses AI to automatically generate 5 perfectly formatted AEO (AI Engine Optimization) files—like robots.txt and faq-schema.json—ready to be deployed to the company's server.

How we built it

I built AEO Watchdog using Node.js as the core engine. Here is the flow I engineered:

Interactive CLI: You input a brand name, URL, and a basic query.

AI Brainstorming: I used the Google Gemini 2.5 Flash API to act as a marketing strategist, automatically generating hidden buyer-intent questions that a human might miss.

Multi-Engine Automation: I used Playwright to physically spin up a web browser. The agent autonomously searches both Perplexity and Bing side-by-side, waits for the generative AI answer to load, and scrapes the text.

Remediation: Finally, the agent navigates to the brand's actual website, scrapes the raw text, and feeds it back to Gemini to automatically build 5 optimized AEO files (like robots.txt and faq-schema.json) ready to deploy.

Challenges we ran into

The biggest challenge was the sheer unpredictability of scraping AI search engines. Because Perplexity and Bing constantly update their UI or throw CAPTCHAs to block bots, my initial attempts kept crashing. To fix this, I had to engineer a robust fallback extraction layer. If the script can't find the exact CSS selector for the AI's answer within 5 seconds, it gracefully degrades and parses the full page's text instead of crashing. This ensures the demo and the tool remain 100% stable.

Accomplishments that we're proud of

I am incredibly proud of making this a true "end-to-end" solution. It would have been easy to just build an auditing tool that tells a company, "Hey, you have a problem." Instead, I engineered a system that actually builds the solution for them by dynamically scraping their own website to write the exact .txt and JSON files they need to fix their ranking.

I’m also really proud of the fallback logic I wrote. Getting a headless browser to reliably scrape heavily guarded AI search engines without crashing or getting blocked by CAPTCHAs was a massive technical hurdle that I successfully overcame.

What we learned

I learned how to bridge the gap between headless browser automation and Large Language Models. Before this, I mostly wrote simple scripts. This project taught me how to combine Playwright with Gemini to create an actual agent—a program that doesn't just follow static rules, but dynamically brainstorms, investigates, and reacts to errors on the fly.

What's next for AEO WatchDog

In the future, I want to take AEO Watchdog from a CLI tool to a full SaaS platform. The next steps are:

Automated Scheduling: Allowing brands to run these audits automatically every week to track their AI visibility over time.

A Visual Dashboard: Building a beautiful web frontend to display historical visibility scorecards and competitor analysis graphs.

More Engines: Expanding the web automation to check Google's AI Overviews, DuckDuckGo Chat, and ChatGPT's web search capabilities.

Built With

Share this project:

Updates

Submission history