From recomby-geo
Ingests client materials (PDF, DOCX, PPTX, XLSX, URLs, notes) and conducts structured research to build a brand_context.json for the GEO pipeline.
How this command is triggered — by the user, by Claude, or both
Slash command
/recomby-geo:01-intake <client-folder, e.g. clients/acme>The summary Claude sees in its command listing — used to decide when to auto-load this command
# 01 · Intake — Build the Brand Context The single source of truth for the entire pipeline. Every downstream skill reads `brand_context.json`. If this is wrong or thin, every later skill amplifies the error. **Core principle**: AI recommends whoever best answers the question. The richer and more precise this profile, the more accurately the rest of the pipeline can identify the exact questions this business should own. --- ## Inputs - `clients/<slug>/inputs/` — materials provided by the client (any of: PDF, DOCX, PPTX, XLSX, image, plaintext notes, URL list). - The user may also prov...
The single source of truth for the entire pipeline. Every downstream skill
reads brand_context.json. If this is wrong or thin, every later skill
amplifies the error.
Core principle: AI recommends whoever best answers the question. The richer and more precise this profile, the more accurately the rest of the pipeline can identify the exact questions this business should own.
clients/<slug>/inputs/ — materials provided by the client (any of: PDF,
DOCX, PPTX, XLSX, image, plaintext notes, URL list).clients/<slug>/brand_context.json — validates against
schemas/brand_context.schema.json (3 layers + extended).clients/<slug>/intake-log.md — append-only human-readable log of what
was extracted from which source.Run sequentially. Do not signal readiness to 02-audit until every gate passes.
For each file in clients/<slug>/inputs/:
| Input type | Approach |
|---|---|
*.pdf | Read with the Read tool (built-in PDF support up to 10 pages; for larger PDFs, pass pages ranges) |
*.docx | unzip -p file.docx word/document.xml | sed 's/<[^>]*>/ /g' then tr -s ' ' '\n' |
*.pptx | Same as docx but ppt/slides/slide*.xml |
*.xlsx / *.csv | python3 -c "import pandas; print(pandas.read_excel(...).to_csv())" |
| URL list | WebFetch each URL with extraction prompt |
*.png / *.jpg | Read (multimodal) — extract text and structural info |
| Notes | Read directly |
Do not dump raw content into brand_context.json. Apply the extraction filter: keep only signals that map to a schema field. Discard the rest.
Fill these from materials. If any is missing or thin (single word, "TBD", generic-quality phrase), ASK the user a targeted question. Don't continue with placeholder values.
company.name + URL + one-line descriptionproduct_or_service.category + description + core_offeringstarget_customer.primary_icp — Forrester-style: persona_label,
demographics (role/segment, geography, size/age), jobs_to_be_done (≥1),
pain_points, search_behaviorcompetitors[] — 1–3 entries. Verify each via WebFetch on their
public site before recording. Don't trust user-named competitors blindly.core_differentiator (concrete, ≥10 chars, not "we provide quality")competitive_moat (one-sentence why-AI-should-recommend-us)Do all three independently. Don't ask the user; the user doesn't have this data.
3a. AI Perception Scan
target_queries if present, else
generate from category + ICP.skills/02-audit/SKILL.md). For multi-engine coverage you may
optionally invoke seo-geo-optimizer (vendored).layer_2_market_reality.ai_recommends[]: model, query,
recommended brands, whether us mentioned, position, captured_at.WebFetch it. Verify it's real, recent,
on-topic. Record into citation_sources[].3b. Competitor Reality
WebFetch their homepage + key
pages. Record core_approach, strengths, weaknesses, ai_visibility_notes,
key_differentiator_vs_us, verified_at.3c. Community Voice
WebSearch: "<category> reddit recommendation", "<category> vs <competitor> forum", "<category> review hacker news".WebFetch top 2–3 threads. Read actual user language.real_user_questions[] with source URL and intent
classification.From Layer 1 + Layer 2, identify question types where this business CAN
win but currently isn't. At least one entry. Each entry must include
opportunity + rationale + supporting_evidence (cite specific Layer 2
findings).
Build target_queries[]. Sources:
product_or_service.category × ICP jobs_to_be_done.Each entry needs query, intent, priority (P0/P1/P2), rationale, expected_answer_shape.
Minimum 10 entries. Aim for 25–40 to give 02-audit a robust baseline.
content_assets[] with type + freshness.Before persisting brand_context.json, present to user:
User confirms → write JSON.
python3 -c "import json,jsonschema; \
s=json.load(open('plugins/recomby-geo/schemas/brand_context.schema.json')); \
d=json.load(open('clients/<slug>/brand_context.json')); \
jsonschema.validate(d,s); print('OK')"
If validation fails: do not signal readiness. Fix.
jsonschema.validate fails, do not signal
readiness. Fix the data.seo-geo-optimizer (vendored from 199-biotechnologies) — its
scripts/entity_extractor.py is useful for pre-populating Layer 2
citation_sources from already-known authority pages.Organization / Brand / Event — Layer 1 field
names align with public structured-data conventions; helps 06-distribution.references/auriti/princeton-geo-methods.md — defines what a
"winnable query" looks like; informs Step 5 priority assignment.target_customer field shape.When all 8 steps pass, write to clients/<slug>/intake-log.md:
## <ISO timestamp>
- Sources processed: <list>
- Fields populated: layer_1 ✅, layer_2 ✅, layer_3 ✅
- Target queries: <count>
- Schema validation: PASS
- Ready for: 02-audit
Then signal: "brand_context.json built. Run 02-audit next."
npx claudepluginhub viryazheng/recomby-geo --plugin recomby-geo2plugins reuse this command
First indexed Jun 16, 2026
/intake-from-campaignScans existing campaign materials, media kits, or marketing assets and generates intake documents by analyzing brand elements, messaging, performance data, and creative assets.
/brand-setupSets up a new brand profile with voice, audience, competitors, guidelines, and compliance rules. Stores the profile for reuse across all marketing operations.
/discover-brandSearches connected enterprise platforms for brand materials and produces a structured discovery report with sources, conflicts, and open questions.
/research-brandDeep research on a brand for content creation - positioning, competitors, pain points, differentiators
/refresh-brand-contextRe-scans brand guidelines, media plans, and audience profiles; checks platform connections; pulls campaign metrics; and updates CLAUDE.md with refreshed brand context.
/start-0-2Guides users through their first marketing task: creating brand guidelines and customer personas using /brand:voice and /research:persona commands. Part of a training module for marketing automation.