@eztech/seo-org
v0.1.5
Published
Always-on SEO · AEO · GEO agency for Kiro CLI and Claude Code — configure once per site, then autonomous agents audit, fix, track, and email daily/weekly/monthly reports across Google search, AI answer engines, and generative engines.
Maintainers
Readme
seo-org — always-on SEO · AEO · GEO agency
An autonomous agency plugin that drives a website to top rankings across search (Google/SEO), AI answer engines (AEO — AI Overviews), and generative engines (GEO — ChatGPT/Perplexity/Gemini). Built from a 1107-page practitioner manual (103 chapters, 31 SEO experts) into a 12-agent architecture with a headless always-on engine.
Runs in Claude Code (priority) and Kiro CLI (generated variant).
What it does
- Configure once (
/seo:configure <domain>) — collects every credential, goal, and guardrail, stores secrets securely (keychain / gitignored.env, never committed), verifies each connection live, captures a baseline, and arms the engine. - Works every day, never sleeps — a cron / AWS EventBridge engine fires the cadences headlessly whether or not any laptop is on.
- Emails you — daily "Today's SEO Pulse" (what was done, where you rank, actionable drops, index/crawl health, AI visibility, daily competitor watch + how to beat them, tool failures), weekly "Keyword Report", monthly "Full Audit".
- Fixes safely — high-confidence technical/on-page/internal-link fixes are auto-fix- eligible (reversible, logged); everything outward-facing (content, GBP, outreach, backlinks) is propose-only and waits for your approval. Compliance can halt the loop.
Architecture (two layers)
- Engine (
lib/,scripts/) — pure-Node orchestrator that applies the manual's deterministic thresholds (CADENCE.md) and renders the emails. Runs on cron/EventBridge. - Plugin (
commands/,agents/) — the control plane: onboarding + the 12 agent contracts + the LLM reasoning layer that enriches each run (competitor briefs, AEO/GEO drafting) as propose-only.
Tools — provide-key-to-activate
Every external tool is an optional adapter (adapters/README.md). Give a key → it
activates; give both Ahrefs and SEMrush → both run and cross-check; give neither →
the capability degrades to a free fallback and you get emailed the exact key to add.
A missing tool never crashes a run. Claude does all content generation; ChatGPT/Perplexity
are used only for GEO citation tracking — no two paid tools for the same job.
| Layer | Tools | |---|---| | Free core (always) | Google Search Console, GA4, PageSpeed, GBP | | Keyword/backlink/rank (either/both) | Ahrefs, SEMrush | | GEO citation tracking (either/both) | Perplexity, ChatGPT | | Generation | Claude (the engine) | | Email | AWS SES or SMTP |
Quick start
Just point your AI at it. Every agent sets up its own environment on first run (Node check,
npm install, dirs) — you only supply credentials. Full contract: INSTALL.md.
Kiro CLI
npm i -g @eztech/seo-org
mkdir ~/seo && cd ~/seo && seo-org init # workspace + Kiro agents
kiro-cli chat "seo-configure example.com" # onboard — collects + LIVE-verifies everything
seo-org schedule example.com # always-on, on this machine (no cloud)Claude Code — install the plugin from the marketplace, then give the engine a home
/plugin marketplace add Immy6315/claude-marketplace
/plugin install seo-org@immy6315-marketplacenpm i -g @eztech/seo-org && mkdir ~/seo && cd ~/seo && seo-org init/seo:configure example.com # onboard (collects + verifies everything)seo-org schedule example.com # always-on (macOS launchd — sleep-aware / Linux cron)
seo-org schedule example.com --wake # macOS: also auto-wake the Mac at 05:58
seo-org doctor example.com # what's active / missing
# OPTIONAL — only if the machine is fully powered OFF 24x7:
SEO_ORG_TARGET_ARN=... SEO_ORG_ROLE_ARN=... bash scripts/deploy-eventbridge.shCommands
/seo:configure · /seo:daily · /seo:weekly · /seo:monthly · /seo:audit ·
/seo:fix · /seo:status
Guardrails (locked)
Never toggle indexing/noindex, delete a live page, disturb a ranking page's internal
links, publish content, send outreach, buy links/PBNs, or post to GBP without explicit
human approval. GSC data lags 2–3 days (window ends today−3). ±2–3 position movement is
noise. Ambiguous signals are logged for human review, never auto-acted. See CADENCE.md §0.
Docs
ARCHITECTURE.md— the master spec.CADENCE.md— the always-on loop (daily/weekly/monthly rules + email contracts).scripts/ENGINE.md— operator guide (deployment modes, schedule, logs).lib/CONTRACTS.md— internal adapter/report contracts.knowledge/seo-aeo-geo-manual.txt— the full source manual.
