kai-local-audit

Installation
SKILL.md

Kai root note: knowledge/, harness/, and scripts/ paths in this skill live in the Kai install, not the user's project. Resolve them against the first ancestor directory of this SKILL.md that contains a knowledge/ folder (the Kai plugin root, ~/.claude/kai, or the kai-cmo-harness repo). MARKETING.md, memory/, and any output files live in the current project. If a referenced scripts/ command is not available in this install, say so, skip it, and continue with the file-based guidance — never fabricate its output.

Audit someone else's local business the way its customers meet it: from their town, on their phones, in their language. Then turn every finding into a priced offer, an exact change and a dated week.

Load before starting: harness/references/local-audit-playbook.md (endpoints, gotchas, deliverable structure) and harness/references/audit-data-provenance.md.

Non-Negotiable: Kai Data Provenance

  • Declare the mode. Prospects and anyone who has not granted access are sales_external.
  • Run python -m scripts.audit.collect --url "<url>" --firm-name "<name>" --mode sales_external --workflow local-audit --out workspace/local-audit/<slug> before writing. The local-audit pulls below append to the same audit-data.json.
  • Every ranking, volume, review count, rating, referring-domain count, map-pack placement, AI-answer count, Lighthouse score and page weight in the report cites its source and retrieval date. Anything not in audit-data.json or a dated direct check goes in _data-gaps.md.
  • Never report a ranking or score observed in a personal browser. The reference run's two eyeballed numbers were both wrong.
  • Modeled numbers (share of estimated clicks) are labeled as modeled with the formula.
  • Every search runs in every language the market searches in — volumes, discovery seeds, located SERPs, Maps queries, AI prompts, and competitor, directory and press searches. In a bilingual market (English and Spanish, for example) pair each term and show both side by side. This is a research rule; a translated page is a separate request (Phase 5).
  • Cost: a full run (two markets, crawl, reviews, AI answers) is about $8 of DataForSEO credit. Every response is cached in raw/, so re-runs and the dated re-measure are nearly free. Check balance first.

Running the collector: the DataForSEO scripts ship in the Kai plugin (scripts/audit/, scripts/local_audit/, examples/local-audit-config.example.json) as well as the full harness. They are stdlib-only Python 3.10+. Run them as modules from the Kai root and point --out at an absolute path in the current project, e.g. OUT="$PWD/workspace/local-audit/<slug>"; cd "<kai-root>" && python -m scripts.local_audit.pulls balance --config "$OUT/config.json" --out "$OUT". Credentials come only from the environment: DATAFORSEO_LOGIN / DATAFORSEO_PASSWORD (or DATAFORSEO_AUTH_B64). Never print them or write them into the audit folder.

Without DataForSEO credentials, or if scripts/local_audit/ is missing from this install: run the public direct checks by hand (Phase 3), cite URLs and dates, put every located-ranking, volume, listing, review, backlink and AI-answer metric in _data-gaps.md, and say in the report header that located metrics need the full harness (github.com/cgallic/kai-cmo-harness).

Installs
2
GitHub Stars
65
First Seen
Sep 28, 2026