{"id":50747603,"url":"https://github.com/alexpospekhov/searchstack-aeo","last_synced_at":"2026-07-16T10:00:56.938Z","repository":{"id":348465795,"uuid":"1198217851","full_name":"alexpospekhov/searchstack-aeo","owner":"alexpospekhov","description":"Searchstack — Open-source AEO/GEO/SEO tech stack for AI-native founders. Monitor your visibility across Google, AI Overviews, ChatGPT, Perplexity, Claude \u0026 Grok from one CLI. 22 commands, 9 APIs, llms.txt generator, Markdown reports, cron-ready.","archived":false,"fork":false,"pushed_at":"2026-04-01T08:54:29.000Z","size":16363,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-01T10:23:43.692Z","etag":null,"topics":["aeo","ai-search","backlinks","chatgpt","cli","geo","google-ai-overview","google-search-console","grok","indexnow","keyword-research","llms-txt","ollama","perplexity","python","seo","seo-tools","serp"],"latest_commit_sha":null,"homepage":"https://github.com/alexpospekhov/searchstack-aeo#readme","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexpospekhov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-01T08:11:10.000Z","updated_at":"2026-04-01T09:26:40.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/alexpospekhov/searchstack-aeo","commit_stats":null,"previous_names":["alexpospekhov/searchstack-aeo"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/alexpospekhov/searchstack-aeo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexpospekhov%2Fsearchstack-aeo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexpospekhov%2Fsearchstack-aeo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexpospekhov%2Fsearchstack-aeo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexpospekhov%2Fsearchstack-aeo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexpospekhov","download_url":"https://codeload.github.com/alexpospekhov/searchstack-aeo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexpospekhov%2Fsearchstack-aeo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35539519,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-16T02:00:06.687Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aeo","ai-search","backlinks","chatgpt","cli","geo","google-ai-overview","google-search-console","grok","indexnow","keyword-research","llms-txt","ollama","perplexity","python","seo","seo-tools","serp"],"created_at":"2026-06-10T22:30:49.946Z","updated_at":"2026-07-16T10:00:56.918Z","avatar_url":"https://github.com/alexpospekhov.png","language":"Python","funding_links":[],"categories":["Open-Source Repos \u0026 Tools"],"sub_categories":["GEO Monitoring \u0026 Tracking"],"readme":"# Searchstack — AEO/GEO/SEO for AI-native founders\n\n\u003e Open-source AEO / GEO / SEO tech stack for AI-native founders.\n\n[![PyPI](https://img.shields.io/pypi/v/searchstack.svg)](https://pypi.org/project/searchstack/)\n[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n\nMonitor your visibility across Google, AI Overviews, ChatGPT, Perplexity \u0026 Claude — from one CLI.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"demo/searchstack-demo.gif\" alt=\"searchstack CLI demo\" width=\"900\"\u003e\n\u003c/p\u003e\n\n## Who is this for\n\n- **AI-native founders** — you're building a product and need to be visible in both Google AND AI search, but don't have $400/mo for Semrush\n- **Indie hackers \u0026 solo devs** — you ship content, want to know if it's working, and prefer CLI over dashboards\n- **SEO-aware engineers** — you understand technical SEO but need a tool that also covers the new AEO/GEO landscape\n- **Agency operators** — you manage SEO for multiple clients and need automated reports you can schedule and pipe to Slack\n\nIf you've ever wondered *\"Does ChatGPT know my product exists?\"* — this tool answers that question.\n\n---\n\n## searchstack vs The Rest\n\n| Feature | searchstack | Ahrefs ($99+/mo) | Semrush ($130+/mo) | Free tools |\n|---------|:-----------:|:-----------------:|:-------------------:|:----------:|\n| Google rankings (GSC) | ✅ | ✅ | ✅ | ✅ GSC only |\n| Keyword research | ✅ | ✅ | ✅ | ❌ |\n| Backlink analysis | ✅ | ✅ | ✅ | ❌ |\n| Technical audit | ✅ | ✅ | ✅ | Partial |\n| **ChatGPT citation check** | ✅ | ❌ | ❌ | ❌ |\n| **Perplexity citation check** | ✅ | ❌ | ❌ | ❌ |\n| **Claude citation check** | ✅ | ❌ | ❌ | ❌ |\n| **Grok (xAI) citation check** | ✅ | ❌ | ❌ | ❌ |\n| **Local LLM check (Ollama)** | ✅ | ❌ | ❌ | ❌ |\n| **Google AI Overview monitor** | ✅ | ❌ | ❌ | ❌ |\n| **AI referral tracking** | ✅ | ❌ | ❌ | ❌ |\n| CLI / scriptable | ✅ | ❌ | ❌ | ❌ |\n| Cron / server deploy | ✅ | ❌ | ❌ | ❌ |\n| Markdown reports | ✅ | ❌ PDF only | ❌ PDF only | ❌ |\n| Open source | ✅ | ❌ | ❌ | Varies |\n| Monthly cost | **~$5** | $99-999 | $130-500 | $0 (limited) |\n\nThe bottom 5 rows are what no existing tool does. That's why searchstack exists.\n\n---\n\n### What's inside\n\n- **AEO Monitor** — check if ChatGPT, Perplexity, Claude, Grok, and **local models (Ollama/Qwen/Llama)** cite your site when users ask about your niche\n- **GEO Monitor** — track Google AI Overview: who gets cited for your target keywords (and whether it's you)\n- **Google Search Console** — rankings, clicks, impressions, CTR, indexing status, sitemap health\n- **Keyword Research** — suggestions, volumes, competitor overlap, keyword gaps (DataForSEO)\n- **Position Tracking** — compare rankings over time, detect improvements and drops\n- **Backlink Analysis** — your profile + competitor backlinks, referring domains, domain rank\n- **Technical Audit** — meta tags, JSON-LD validation, internal linking, orphan pages, on-page scoring\n- **Traffic Analytics** — Plausible integration with AI referral breakdown (chatgpt.com, perplexity.ai, claude.ai)\n- **Search Submission** — IndexNow (instant Bing/Yandex), Bing Webmaster, GSC sitemap resubmit\n- **llms.txt Generator** — `searchstack llms generate` creates llms.txt + llms-full.txt from your sitemap following the [llmstxt.org](https://llmstxt.org) spec. Validate with `searchstack llms validate`.\n- **Content Monitor** — `searchstack monitor` shows per-page performance: rankings, clicks, indexing status, keyword tracking, changes since last check.\n- **SEO Audit** — `searchstack audit` combines GSC data with keyword volumes, calculates opportunity scores, finds content gaps.\n- **Markdown Reports** — `searchstack report` generates a full 14-section .md file with executive summary and auto-recommendations. Run it monthly, diff the results, track progress over time.\n- **Local LLM Support** — run AEO checks against Ollama, LM Studio, vLLM, or any OpenAI-compatible local model. Test how open-source models (Qwen, Llama, Mistral, Gemma) represent your brand — completely free, no API keys, runs offline.\n- **Cron-ready** — pure CLI, no GUI, no browser. Deploy on any server, schedule via cron (`0 8 * * 1 searchstack report`), pipe output to Slack/email. Built for automation.\n\n**22 commands. 10 API integrations (5 cloud AI + local LLMs). One config file. Runs anywhere Python runs.**\n\n```\n$ searchstack ai\n\n  Checking AI citations for example.com...\n\n  ChatGPT (gpt-4o-mini):\n    \"What is the best tool for X?\"      ✅ CITED\n    \"How to solve Y?\"                    ❌ not cited\n    \"Top Z software in 2026\"             ✅ CITED\n\n  Perplexity (sonar):\n    \"What is the best tool for X?\"      ✅ CITED  → https://example.com/guide\n    \"How to solve Y?\"                    ✅ CITED  → https://example.com/docs\n    \"Top Z software in 2026\"             ❌ not cited\n\n  Claude (haiku):\n    \"What is the best tool for X?\"      ❌ not cited\n    \"How to solve Y?\"                    ❌ not cited\n    \"Top Z software in 2026\"             ❌ not cited\n\n  Summary: ChatGPT 2/3 | Perplexity 2/3 | Claude 0/3\n  Saved: ~/.searchstack/snapshots/ai_citations_20260401_1200.json\n```\n\n---\n\n## Try it free (no API keys needed)\n\nThese commands work with zero configuration — they just crawl your sitemap:\n\n```bash\npip install searchstack\n\n# Check meta tags on all your pages\nsearchstack meta\n\n# Validate JSON-LD structured data\nsearchstack schema\n\n# Find orphan pages (no internal links)\nsearchstack links\n\n# Full on-page SEO score for any URL\nsearchstack onpage https://yoursite.com/pricing\n```\n\nNo API keys. No accounts. No config file. Just install and run.\n\n---\n\n## The Problem\n\nGoogle page 1 isn't enough anymore. **60% of Google searches now show an AI Overview** that answers the query directly. ChatGPT and Perplexity are becoming primary search tools for millions of users.\n\nAhrefs and Semrush cost $100-400/mo and **track none of this**.\n\nsearchstack covers all three search layers for ~$5/mo:\n\n| Layer | What it is | What searchstack does |\n|-------|-----------|----------------------|\n| **SEO** | Google organic rankings | GSC positions, keywords, competitors, technical audit |\n| **AEO** | AI chatbot visibility | Checks if ChatGPT, Perplexity, Claude cite you |\n| **GEO** | Google AI Overview | Monitors who Google's AI cites for your keywords |\n\n---\n\n## Quick Start\n\n```bash\npip install searchstack\n```\n\nCreate `.searchstack.toml`:\n\n```toml\ndomain = \"yoursite.com\"\nsitemap = \"https://yoursite.com/sitemap.xml\"\n\n[dataforseo]\nlogin = \"you@email.com\"\npassword = \"api-password\"\n\n[openai]\napi_key = \"sk-...\"\n\n[perplexity]\napi_key = \"pplx-...\"\n```\n\nRun:\n\n```bash\nsearchstack ai          # are AI chatbots citing you?\nsearchstack geo         # does Google AI Overview cite you?\nsearchstack gsc         # your Google rankings\nsearchstack report      # full 14-section Markdown report\n```\n\nSee [Services Setup Guide](docs/SERVICES.md) for connecting all 9 services step by step.\n\n---\n\n## Commands\n\n### AEO / GEO — AI Search Visibility\n\n```bash\nsearchstack ai                       # citation check: ChatGPT + Perplexity + Claude + Grok\nsearchstack ai chatgpt               # ChatGPT only\nsearchstack ai perplexity            # Perplexity only\nsearchstack ai claude                # Claude only\nsearchstack ai grok                  # Grok (xAI) only\nsearchstack ai ollama                # local model (Ollama/LM Studio/vLLM)\nsearchstack geo                      # Google AI Overview for all target keywords\nsearchstack geo \"your keyword\"       # single keyword check\nsearchstack llms generate            # generate llms.txt + llms-full.txt from your sitemap\nsearchstack llms validate            # validate existing llms.txt against spec\nsearchstack llms check               # check if your site has AI-ready files\n```\n\n### SEO — Google Rankings \u0026 Research\n\n```bash\nsearchstack gsc                      # top queries with clicks, impressions, CTR, position\nsearchstack gsc pages-perf           # top pages\nsearchstack gsc trend                # daily trend\nsearchstack gsc inspect \u003curl\u003e        # check if URL is indexed\nsearchstack keywords \"phrase\"        # keyword suggestions with volumes\nsearchstack competitors              # your ranked keywords vs competitors\nsearchstack gaps                     # high-volume keywords where you rank poorly\nsearchstack serp \"query\"             # live SERP top-10\nsearchstack track                    # position changes since last check\nsearchstack bulk domain1 domain2     # competitor traffic comparison\nsearchstack backlinks                # your backlink profile\nsearchstack backlinks competitor.com # competitor's backlinks\n```\n\n### Technical Audit — Site Health\n\n```bash\nsearchstack meta                     # title/description length check\nsearchstack schema                   # JSON-LD structured data validation\nsearchstack links                    # internal linking + orphan page detection\nsearchstack onpage \u003curl\u003e             # full on-page SEO score\nsearchstack pages                    # indexing status of all sitemap URLs\n```\n\n### Traffic \u0026 Submission\n\n```bash\nsearchstack traffic                  # Plausible analytics + AI referral tracking\nsearchstack indexnow                 # submit URLs to Bing + Yandex instantly\nsearchstack bing                     # Bing Webmaster stats\nsearchstack bing submit              # submit URLs to Bing\nsearchstack gsc resubmit             # resubmit sitemap to Google\n```\n\n### Dashboards \u0026 Reporting\n\n```bash\nsearchstack monitor                  # site health: traffic + rankings + indexing per page\nsearchstack audit                    # full SEO audit with keyword volumes + opportunity scores\nsearchstack report                   # full Markdown report (14 sections)\n```\n\n---\n\n## Services\n\n9 integrations. None required — each command gracefully skips unavailable services.\n\n| # | Service | Cost | What it unlocks |\n|---|---------|------|----------------|\n| 1 | **[Google Search Console](https://search.google.com/search-console)** | Free | Rankings, clicks, indexing status |\n| 2 | **[DataForSEO](https://dataforseo.com)** | $50 prepaid | Keywords, SERP, AI Overview, backlinks |\n| 3 | **[OpenAI](https://platform.openai.com)** | ~$0.001/query | ChatGPT citation check |\n| 4 | **[Perplexity](https://docs.perplexity.ai)** | ~$0.005/query | Perplexity citation check (best — returns source URLs) |\n| 5 | **[Anthropic](https://console.anthropic.com)** | ~$0.001/query | Claude citation check |\n| 6 | **[xAI](https://console.x.ai)** | ~$0.002/query | Grok citation check |\n| 7 | **[Plausible](https://plausible.io)** | $9/mo | Traffic analytics, AI referral tracking |\n| 8 | **[Bing Webmaster](https://www.bing.com/webmasters)** | Free | Bing stats, URL submission |\n| 9 | **[IndexNow](https://www.indexnow.org)** | Free | Instant Bing/Yandex notification |\n| 10 | **[Ollama](https://ollama.com)** / any local LLM | Free | Test local models (Qwen, Llama, Mistral, Gemma) |\n\n**Why Bing matters:** ChatGPT Search, Perplexity, and Microsoft Copilot all use Bing as their search backend. If you're not in Bing, you're invisible to 3 major AI search products.\n\n### Local LLM setup (Ollama, LM Studio, vLLM)\n\nRun AEO checks against local models — free, offline, no API keys:\n\n```bash\n# 1. Install Ollama and pull a model\nbrew install ollama\nollama pull qwen3:8b\n\n# 2. Add to .searchstack.toml\n# [ollama]\n# base_url = \"http://localhost:11434/v1\"\n# model = \"qwen3:8b\"\n\n# 3. Run\nsearchstack ai ollama\n```\n\nWorks with any OpenAI-compatible server:\n\n| Server | Config `base_url` | Notes |\n|--------|------------------|-------|\n| **Ollama** | `http://localhost:11434/v1` | Default, easiest setup |\n| **LM Studio** | `http://localhost:1234/v1` | GUI for managing models |\n| **vLLM** | `http://localhost:8000/v1` | Production-grade serving |\n| **llama.cpp** | `http://localhost:8080/v1` | Lightweight C++ server |\n| **LocalAI** | `http://localhost:8080/v1` | Drop-in OpenAI replacement |\n\n**Why test local models?** Open-source LLMs (Qwen, Llama, Mistral, Gemma) are increasingly used in products, search tools, and agents. Knowing how they represent your brand helps you optimize content for the entire AI ecosystem — not just the big 4.\n\nMonthly cost: **$5-10** for full daily monitoring, **$1-2** for weekly AEO/GEO only, **$0** for GSC + technical audit.\n\n---\n\n## Report\n\n`searchstack report` generates a Markdown file with:\n\n| # | Section | Source |\n|---|---------|--------|\n| 1 | Executive Summary | All |\n| 2 | Traffic (30 days) | Plausible |\n| 3 | Search Queries | GSC |\n| 4 | Google AI Overview visibility | DataForSEO |\n| 5 | AI chatbot citations | OpenAI, Perplexity, Anthropic, xAI |\n| 6 | Google positions | DataForSEO |\n| 7 | Competitor traffic | DataForSEO |\n| 8 | Indexing status | GSC |\n| 9 | Backlinks | DataForSEO |\n| 10 | Keyword gaps | DataForSEO |\n| 11 | Position changes | DataForSEO (vs snapshot) |\n| 12 | Meta issues | Sitemap crawl |\n| 13 | Orphan pages | Sitemap crawl |\n| 14 | Recommendations | Auto-generated |\n\n### Sample report output\n\n\u003cdetails\u003e\n\u003csummary\u003eClick to expand a report fragment\u003c/summary\u003e\n\n```markdown\n# SEO/AEO/GEO Report — 01-04-2026\n\n\u003e yoursite.com | Generated 2026-04-01 09:00\n\n## Executive Summary\n\n| Metric | Value |\n|--------|-------|\n| Visitors (30 days) | **1,247** |\n| Google AI cites us | **0** times |\n| Backlinks | 89 (from 23 domains) |\n| Keyword gaps (not in top-10) | 12 |\n| Positions: improved / declined | 5 / 2 |\n\n**Status:** 🟡 Growing\n\n## 3. Google AI Overview visibility (GEO)\n\n- Keywords checked: 23\n- AI Overview present: 18/23\n- **AI cites us: 0**\n- Organic top-10: 7\n\n### Top Cited (instead of us)\n\n| Domain | Times cited |\n|--------|------------|\n| competitor1.com | 8 |\n| competitor2.com | 5 |\n| wikipedia.org | 4 |\n\n## 4. AI chatbot citations (AEO)\n\n- ✅ **ChatGPT**: 3/8 queries cite us\n- ✅ **Perplexity**: 5/8 queries cite us\n- ❌ **Claude**: 0/8 queries cite us\n\n## Recommendations\n\n- 🤖 **Google AI never cites us** — improve citation-ready content\n- 🎯 **12 keyword gaps** — update existing articles for these queries\n- 🔗 **Low backlinks (23 domains)** — need outreach campaign\n```\n\n\u003c/details\u003e\n\n---\n\n## Configuration\n\nAll keys via `.searchstack.toml` or environment variables (env vars take priority):\n\n```bash\nexport DATAFORSEO_LOGIN=\"email\"          export DATAFORSEO_PASSWORD=\"pass\"\nexport OPENAI_API_KEY=\"sk-...\"           export PERPLEXITY_API_KEY=\"pplx-...\"\nexport ANTHROPIC_API_KEY=\"sk-ant-...\"    export XAI_API_KEY=\"xai-...\"\nexport PLAUSIBLE_API_KEY=\"key\"           export BING_WEBMASTER_API_KEY=\"key\"\n```\n\nFull config template: [docs/SERVICES.md](docs/SERVICES.md#full-config-file-template)\n\n---\n\n## Architecture\n\n```\nsrc/searchstack/\n├── cli.py              # argparse entry point\n├── config.py           # .searchstack.toml + env loading\n├── snapshots.py        # JSON snapshot save/load/compare\n├── providers/          # API clients (one per service)\n│   ├── gsc.py            # Google Search Console\n│   ├── dataforseo.py     # DataForSEO\n│   ├── plausible.py      # Plausible Analytics\n│   ├── bing.py           # Bing Webmaster\n│   ├── openai.py         # OpenAI (ChatGPT)\n│   ├── perplexity.py     # Perplexity\n│   ├── anthropic.py      # Anthropic (Claude)\n│   ├── grok.py           # Grok (xAI)\n│   └── google_ads.py     # Google Ads Keyword Planner\n└── commands/           # one file per CLI command\n    ├── ai.py             # AEO citation check\n    ├── geo.py            # GEO AI Overview monitor\n    ├── gsc.py            # Google Search Console\n    ├── traffic.py        # Plausible traffic\n    ├── keywords.py       # keyword suggestions\n    ├── competitors.py    # competitor analysis\n    ├── gaps.py           # keyword gaps\n    ├── serp.py           # live SERP\n    ├── track.py          # position tracking\n    ├── backlinks.py      # backlink profile\n    ├── meta.py           # meta tag audit\n    ├── schema.py         # JSON-LD validation\n    ├── links.py          # internal linking\n    ├── onpage.py         # on-page scoring\n    ├── pages.py          # indexing status\n    ├── indexnow.py       # IndexNow submission\n    ├── bing.py           # Bing Webmaster\n    ├── report.py         # Markdown report generator\n    ├── monitor.py        # Site health monitor\n    ├── audit.py          # SEO audit with opportunity scores\n    └── llms.py           # llms.txt generation and validation\n```\n\nMinimal dependencies: `google-auth`, `google-auth-oauthlib`, `google-api-python-client`, `requests`. No heavy frameworks.\n\n---\n\n## Server \u0026 Cron Deployment\n\nsearchstack is a pure CLI tool — no GUI, no browser window, no interactive prompts (after initial OAuth setup). Deploy it on any Linux server and automate with cron.\n\n### Example: weekly monitoring on a VPS\n\n```bash\n# Install\npip install searchstack\n\n# Copy your .searchstack.toml and token.pickle to the server\nscp .searchstack.toml token.pickle yourserver:~/.config/searchstack/\n\n# Add to crontab (crontab -e)\n# ┌─── Weekly full report (Monday 8am)\n0 8 * * 1  searchstack report \u003e\u003e /var/log/searchstack.log 2\u003e\u00261\n\n# ┌─── Daily position tracking\n0 6 * * *  searchstack track \u003e\u003e /var/log/searchstack.log 2\u003e\u00261\n\n# ┌─── Submit new content to search engines (every 6 hours)\n0 */6 * * *  searchstack indexnow \u003e\u003e /var/log/searchstack.log 2\u003e\u00261\n\n# ┌─── Weekly AEO check (Wednesday)\n0 9 * * 3  searchstack ai \u003e\u003e /var/log/searchstack.log 2\u003e\u00261\n\n# ┌─── Weekly GEO check (Wednesday)\n0 10 * * 3  searchstack geo \u003e\u003e /var/log/searchstack.log 2\u003e\u00261\n```\n\n### Pipe to Slack / email\n\n```bash\n# Send report to Slack via webhook\nsearchstack report \u0026\u0026 curl -X POST -d \"{\\\"text\\\":\\\"$(cat ~/.searchstack/snapshots/report_$(date +%Y%m%d).md)\\\"}\" YOUR_SLACK_WEBHOOK\n\n# Or email it\nsearchstack report \u0026\u0026 mail -s \"SEO Report $(date +%Y-%m-%d)\" you@company.com \u003c ~/.searchstack/snapshots/report_$(date +%Y%m%d).md\n```\n\n### Docker (coming soon)\n\n```dockerfile\nFROM python:3.12-slim\nRUN pip install searchstack\nCOPY .searchstack.toml /root/.config/searchstack/config.toml\nCOPY token.pickle /root/.config/searchstack/\nCMD [\"searchstack\", \"report\"]\n```\n\n---\n\n## Documentation\n\n| Document | What's in it |\n|----------|-------------|\n| **[Services Setup Guide](docs/SERVICES.md)** | Step-by-step setup for all 9 services, full config template, verification checklist |\n| **[AEO/GEO Explained](docs/AEO-GEO-EXPLAINED.md)** | How AI search works, which models power which search engines, why Bing matters, monitoring strategy |\n| **[Detailed Reference](docs/DETAILED-REFERENCE.md)** | Deep dive into every feature, command, and service |\n| **[llmstxt.org spec](https://llmstxt.org)** | The llms.txt standard — `searchstack llms` implements generation and validation with built-in docs |\n\n---\n\n## FAQ\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eDo I need all 9 services?\u003c/strong\u003e\u003c/summary\u003e\n\nNo. Each command gracefully skips unavailable services. You can start with just the free tools (`meta`, `schema`, `links`, `onpage`) and add API keys as needed. The most impactful paid service is DataForSEO ($50 one-time) — it unlocks GEO monitoring, keyword research, and competitor analysis.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eHow much does it actually cost per month?\u003c/strong\u003e\u003c/summary\u003e\n\n- **$0/mo** — GSC + technical audit (meta, schema, links, onpage, pages)\n- **$1-2/mo** — add weekly AEO + GEO monitoring\n- **$5-10/mo** — full daily monitoring including all API calls\n- **$50 one-time** — DataForSEO deposit (lasts months, no subscription)\n\nCompare: Ahrefs starts at $99/mo, Semrush at $130/mo, and neither tracks AI visibility.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eDoes searchstack work without DataForSEO?\u003c/strong\u003e\u003c/summary\u003e\n\nYes. Without DataForSEO you lose: keyword research, live SERP, GEO monitoring, competitor analysis, backlink checks, and position tracking. You keep: GSC rankings, AEO citation checks (ChatGPT/Perplexity/Claude/Grok), Plausible traffic, technical audit, Bing submission, and IndexNow.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eIs this a replacement for Ahrefs/Semrush?\u003c/strong\u003e\u003c/summary\u003e\n\nFor technical SEO and AI search monitoring — yes. For features like site explorer, content gap analysis at scale, or rank tracking with 10,000+ keywords — no. searchstack is designed for founders and small teams who need the most impactful SEO data without enterprise pricing.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eCan I monitor multiple sites?\u003c/strong\u003e\u003c/summary\u003e\n\nCurrently one site per config file. For multiple sites, use separate `.searchstack.toml` files and run with `--config` flag (coming soon) or separate directories.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eWhy does ChatGPT Search use Bing?\u003c/strong\u003e\u003c/summary\u003e\n\nMicrosoft invested $13B in OpenAI. As part of the deal, ChatGPT Search uses Bing as its search backend. Perplexity and Microsoft Copilot also use Bing. This means **3 out of 5 major AI search products** pull from Bing, not Google. Read more in [AEO/GEO Explained](docs/AEO-GEO-EXPLAINED.md#the-critical-role-of-bing).\n\n\u003c/details\u003e\n\n---\n\n## Roadmap\n\n- [ ] `searchstack init` — interactive setup wizard\n- [ ] `searchstack cron` — scheduled monitoring via system cron\n- [ ] `searchstack diff` — visual diff between report snapshots\n- [ ] `searchstack dashboard` — local HTML dashboard\n- [ ] Reddit, HackerNews, Twitter mention tracking\n- [ ] YouTube search visibility\n- [x] ~~llms.txt generation and validation~~ (shipped in v0.1.0)\n- [ ] GitHub Actions integration for CI/CD monitoring\n\n---\n\n## License\n\nMIT\n\n---\n\nBuilt by [Alex Pospekhov](https://github.com/alexpospekhov)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexpospekhov%2Fsearchstack-aeo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexpospekhov%2Fsearchstack-aeo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexpospekhov%2Fsearchstack-aeo/lists"}