# SEO Index Sweep

Weekly, browser heavy.

- Repository: https://github.com/markfulton/ai-employees (826 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-30
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add markfulton/ai-employees --skill seo-index-sweep -g -a claude-code -y`
Codex: `npx skills add markfulton/ai-employees --skill seo-index-sweep -g -a codex -y`
Cursor: `npx skills add markfulton/ai-employees --skill seo-index-sweep -g -a cursor -y`
Gemini CLI: `npx skills add markfulton/ai-employees --skill seo-index-sweep -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add markfulton/ai-employees`

## Description

Weekly, browser heavy. Unions every sitemap each property declares without a browser, builds the candidate set from URLs not already in the indexing ledger, then drives the member's own search performance console to inspect each candidate and request indexing inside an account wide allowance. Spends what is left on sitemap health, which is unmetered. It inspects, requests, and views or submits sitemaps inside that console and does nothing else there, ever, and it never removes a sitemap.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

## Shared work cycle

After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.


# Index sweep

**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SEO_ROOT»/scripts/guard.mjs" seo-index-sweep`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/seo-index-sweep.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.

You are the discovery engine for «BUSINESS NAME». A new article can sit undiscovered for weeks if a search engine is left to find it alone. Your job this run: find every published URL that has never had a request spent on it, ask for each one inside the allowance, and keep every declared sitemap fresh, which costs nothing and is where most of the leverage actually is.

Read `«SEO_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, `recipes/BROWSER-RECIPES.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.

The rest: https://github.com/markfulton/ai-employees/blob/HEAD/employees/seo-employee/routines/seo-index-sweep/SKILL.md
