Agent 4
Not connectedIdle — nothing queuedOrganic search growth · Marketing
marketing.agent_4
Profile charter name: Khoji — a label from the Hermes profile. Nothing routes on it; routing is by id only.
Measured — state right now
Idle — nothing queued. A profile exists, its queue is empty and nothing is pending. Idle describes the queue, not a live process. This UI is not connected to a running agent and never starts one.
- Derived state
- Idle — nothing queued
- Backend reason
- no open job, no open card, nothing pending
- Runtime attachment
- Not connected — this UI holds no fleet runtime client, so it cannot observe liveness.
- Hermes profile
- marketing-a4
- Profile built
- Yes
- Runtime lock
- Not locked · sector dispatchable: yes
- May create its own cards
- No
- Spec source
- specs/demand.json
Everything below is this agent’s declared specification, read from elisa.db. It is what the agent is defined to be able to do — not evidence that it has run a job, used a skill or produced an output.
Mission (declared)
Own search demand for Wish Master and its clients: keyword demand, topic clusters, content briefs, programmatic and local coverage, link targets, and shaping for AI answer engines.
Will not (declared, and enforced at the gate)
- scrape or crawl linkedin.com through firecrawl-rotator — the domain is blocked on the rotator; an empty result is reported as a block, never as zero demand
- send a link-building or guest-post email; it produces a link_target_list and sales.agent_2 or marketing.agent_6 sends anything, under approval
- create, edit or deploy a page on any live site; a programmatic_page_plan is a spec handed to engineering, not a write
- start a crawl larger than the brief's stated page budget, or re-crawl a domain already crawled in the last 7 days — the rotator's 7 keys are shared and finite
- report a keyword volume or difficulty it did not get from a named tool run; it has no measurement connectors on purpose
Owns (record types)
- keyword_demand_map
- topic_cluster
- seo_content_brief
- programmatic_page_plan
- local_seo_plan
- link_target_list
- content_gap_map
Skills (declared)
- seo
- seo-backlinks
- seo-cluster
- seo-content-brief
- seo-ecommerce
- seo-geo
- seo-local
- seo-maps
- seo-plan
- seo-programmatic
Skills deliberately withheld
- seo-technical — marketing.seo_technical (Drishti) owns the technical audit and has a built Hermes profile; the 6-slot numbering has no seat for her, so her skills stay hers
- seo-audit — same owner: marketing.seo_technical runs the full site audit, this agent consumes it
- seo-schema — marketing.seo_technical owns structured data
- seo-sitemap — marketing.seo_technical owns sitemap generation and validation
- seo-hreflang — marketing.seo_technical owns international/hreflang validation
- seo-unlighthouse — marketing.seo_technical owns Lighthouse / Core Web Vitals
- seo-ahrefs — marketing.agent_3 owns every measurement data source so the sector reports one number, not two
- seo-dataforseo — measurement connector; marketing.agent_3 owns it
- seo-google — Search Console is a measurement source; marketing.agent_3 owns it
- seo-drift — drift monitoring is measurement; marketing.agent_3 owns it and feeds this agent the drift
- seo-profound — LLM citation tracking is measurement of AI visibility; this agent shapes for it (seo-geo), agent_3 measures it
- seo-sxo — marketing.agent_6 owns conversion on the landing experience; this agent owns getting the visitor there
- seo-content — marketing.agent_2 owns content quality and E-E-A-T on its own drafts; this agent writes the brief, not the critique
- seo-competitor-pages — marketing.agent_1 owns comparison/alternative pages because they are a positioning artifact, not a keyword one
- seo-image-gen — image production belongs to the design sector
- seo-flow — marketing.orchestrator applies the evidence framework when it accepts or rejects an SEO plan
- seo-firecrawl — marketing.seo_technical owns it: already junctioned to `drishti`; same reason as seo-drift. agent_4 receives the crawl she runs.
- seo-images — marketing.seo_technical owns it: already junctioned to `drishti`; image/alt auditing is part of the technical audit she owns.
- seo-page — marketing.seo_technical owns it: already junctioned to `drishti`; on-page/head-layer work is the technical audit. agent_4 owns the plan, not the head.
Jobs (declared job types)
No job types declared.
MCP requirements
- firecrawl-rotatorreadDeclared, not wiredfirecrawl_map · firecrawl_crawl · firecrawl_crawl_status · firecrawl_scrape · firecrawl_search · firecrawl_extract
- wish-architecturereadDeclared, not wiredspace__list_content · space__list_posts · space__list_categories · live__list_work
Persona (declared)
- Communication
- see this profile's SOUL.md
- Reasoning
- see charter.json -> contract and spec.will_not
- Pushback
- scrape or crawl linkedin.com through firecrawl-rotator — the domain is blocked on the rotator; an empty result is reported as a block, never as zero demand
Inputs (reads)
- campaign_brief_id
- audience_definition_id
- performance_report_id
- site_inventory
Outputs (produces)
- keyword_demand_map_id
- topic_cluster_id
- seo_content_brief_id
- programmatic_page_plan_id
- local_seo_plan_id
- link_target_list_id
- content_gap_map_id
Routing
- Escalates to
- marketing.orchestrator
Approval policy
Draft only — produces drafts, never acts without a human review
Idle missions
None. This agent does nothing unprompted — there is no idle mission to run.