
What is EEO?
EEO stands for Everything Engine Optimization, an umbrella term covering SEO, AEO, GEO, and LLMO. The project helps brands understand and improve how they appear in answers generated by AI engines.
EEO combines three related capabilities:
- EEO Audit: asks AI engines questions that real buyers might ask, then measures brand visibility in the returned answers. Reports include the original answers for inspection.
- Brand registry: stores machine-readable brand cards that follow the
eeo.brand.v1schema. Brands can claim cards through domain verification in a public pull request. - Site generator: turns brand cards into a static site with
llms.txt, JSON-LD, and arobots.txtfile that allowlists AI crawlers.
The project is designed to be open, dependency-free where possible, and inspectable. Its broader rules and five-rule conduct pact for optimization providers are documented in the EEO standard.
Why AI brand visibility matters
When a buyer asks an AI engine for a recommendation, the response is assembled from information the model has read, such as articles, reviews, and listing pages. A brand's own description may not reach the model in a structured format.
EEO addresses this problem by giving brands an open format for stating their facts, a public process for proving domain ownership, and tools that make the resulting information readable by engines, developers, and buyers.
Choose an EEO workflow
The repository provides several entry points. Choose the one that matches your goal:
- Use
eeo-local.htmlfor a quick browser-based audit without installing anything. - Use
cli.cjsfor repeatable checks, batch audits, datasets, and scheduled retests. - Use the Docker image to run a community brand site locally.
- Use
server.cjsand theweb/project for a self-hosted web edition of the audit tool. - Use the GitHub Action, MCP server, or Chrome extension when integrating audits into development or research workflows.
Run a single-file audit
1. Download and open the tool
Download eeo-local.html from the repository and open it in a browser. This edition does not require Node.js, package installation, or a server.
2. Select engines and provide keys
Choose engines from the catalog, which contains 26 presets, including 11 China-native engines. Paste the API keys required by the selected engines. The tool keeps these keys in the browser's localStorage.
3. Complete the brand form
Enter the brand information and select the relevant industry. Then run the audit. EEO asks buyer-oriented questions and evaluates how prominently the brand appears in the answers.
4. Inspect and export the report
The report includes an S-to-D grade, awareness and mention scores, a breakdown by engine, and every original answer. You can export the result as JSON or print it to PDF for sharing and review.
Run audits from the CLI
The command-line workflow requires Node 18 or newer. The CLI has no dependency installation step for its core workflow.
1. Create the configuration file
Copy the example configuration and fill in the engine settings and API keys that you plan to use:
cp config.example.json config.json
Keep the configuration appropriate for your local environment and do not commit secrets to a public repository.
2. Check one brand
Run a single brand audit by providing the brand name and industry:
node cli.cjs check 蜜雪冰城 --industry 餐饮
The CLI sends the configured audit requests and produces the corresponding visibility results.
3. Run a batch audit
Place brand names in a text file, one per line, and write the results to CSV:
node cli.cjs batch brands.txt --csv result.csv
This is useful when comparing multiple brands or creating a repeatable reporting process.
4. Audit a dataset
Use a dataset-driven command when you want to process brands from an industry category:
node cli.cjs dataset 白酒 --limit 10
The --limit option keeps the example run small. Use node cli.cjs --help to see all available commands, including watch for scheduled retests.
Run a community brand site with Docker
The Docker workflow generates a brand site from datasets/brands-1k.json. It does not require API keys because it serves the generated brand information rather than running an engine audit.
docker build -t eeo-community .
docker run -p 8080:80 eeo-community
After the container starts, open http://localhost:8080. The site provides one page per brand and includes llms.txt, JSON-LD, and robots.txt support for AI crawlers.
This Docker setup is different from the self-hosted audit server. For the audit server, inspect server.cjs and config.example.json. The web interface can be built with:
cd web
npm install
npm run build
A prebuilt web interface is also included in public/.
Understand the repository structure
eeo-local.htmlis the single-file audit tool with 26 engine presets.cli.cjsprovides check, batch, dataset, and watch workflows.core.cjscontains the shared audit engine used by the CLI, MCP server, and GitHub Action.server.cjsis the self-hosted server edition, whileweb/contains its React and Vite source.action/contains the GitHub Action for running brand visibility audits in CI.mcp/contains the MCP server for Claude Desktop, Cursor, and Windsurf.extension/contains the Chrome MV3 quick-check extension.datasets/contains the full brand collection and curated seed data.platform/contains claim verification and finalization scripts.standards/taxonomy/contains industry traits and buyer-question banks.tools/contains generators for sites,llms.txt, schemas, and indexes.
Claim or add a brand card
Claim an existing card
Brands should first search datasets/ for an existing card. The claim process is described in platform/README.md and uses domain verification through a public pull request.
This process provides a visible record that the brand controls the verified domain associated with the card.
Add a missing brand
If the brand is not listed, create and submit a card according to CONTRIBUTING.md. Follow the repository's schema and contribution rules before opening the pull request.
Advanced workflows and contribution tips
Connect compatible AI endpoints
Engine watchers can propose new engine presets for the detection catalog. The CLI, self-hosted server, and MCP server can also connect to OpenAI-compatible endpoints through config.json. Review the contribution guidance before adding a preset or changing detection behavior.
Automate recurring audits
Use the CLI's watch command for scheduled retests. For repository automation, the action/ directory provides a GitHub Action that can run visibility audits in CI. The repository also includes workflows for claim verification, claim finalization, and monthly self-audits.
Use the MCP server in AI tools
The MCP server is available for Claude Desktop, Cursor, and Windsurf. It reuses the shared audit engine, allowing compatible clients to access the project's audit capabilities through an MCP integration. Configure it with the same general engine and key settings described by config.example.json.
Extend industry taxonomies
Taxonomy contributors can add industry trait libraries and buyer-question banks under standards/taxonomy/. Acceptance rules are documented in the taxonomy README. Adding an industry alias is described as an easy first contribution.
Generate machine-readable publishing assets
The site-generation tools can turn brand cards into a static information site. The generated output is intended to make brand facts easier for engines and other tools to discover through llms.txt, JSON-LD, and crawler rules.
Keep audits interpretable
EEO reports preserve every original engine answer rather than exposing only a score. When comparing runs, review the per-engine breakdown and the source answers alongside awareness and mention scores. This makes it easier to distinguish a broad visibility change from a result caused by one engine or one question.
For repeatable results, keep the industry selection, brand data, engine configuration, and batch input consistent between runs. When adding a new engine or taxonomy, document the change so later reports can be compared fairly.
Conclusion
EEO provides an open workflow for measuring how AI engines describe brands and for publishing brand facts in a structured format. Start with eeo-local.html for a no-install audit, move to the CLI for batch or scheduled work, and use Docker or the self-hosted server when you need a local community instance.
Once you understand the basic workflow, you can claim brand cards, contribute taxonomy data, add engine presets, integrate audits into CI, or connect the MCP server to compatible AI development tools. The project is released under the Apache License 2.0, while the standard and taxonomy files use the licenses documented in the repository.
