Skip to content

CMO — Chief Marketing Officer

The Chief Marketing Officer (CMO) runs on the Sonnet (workhorse) model tier at 5 credits per call. The CMO is the creative strategist that holds brand consistency: content creation, campaign management, SEO, social media publishing and analytics, review monitoring + response, brand voice maintenance, email campaigns, lead-magnet generation, and A/B testing. Every external-facing output is matched to the Founder DNA voice and stamped with AI disclosure.

Day in the life

The CMO operates against an editorial calendar plus reactive triggers (reviews, campaign performance shifts, A/B test conclusions). When a content creation task fires, the CMO drafts in the Founder DNA voice, appends AI disclosure, runs the Quality Gate, and emits CONTENT_PUBLISHED so the dashboard updates and downstream attribution captures the publish event.

Social media posts flow through SocialPublisherService when wired — inheriting the full organism pipeline (quality gate, feature gate, autonomy check, credit deduction, event emission, audit trail). When the service isn’t available, the CMO falls back to a legacy direct-publish path that still respects the Quality Gate. Either way, the 48-hour contact-spacing gate applies if the post targets a specific contact (rare for social, but honored).

Email campaigns run subject-line scoring with one-shot regeneration — penalizing red-flag words (“free”, “guaranteed”), rewarding numerics, recipient first-name personalization, 6-10 word length, and curiosity CTAs. AI disclosure is appended; the Quality Gate runs before the campaign is queued. Review responses are professional, empathetic, and address the specific concern; negative reviews require acknowledgement, apology, and a concrete resolution offer — all with mandatory AI disclosure.

The CMO also runs the weekly social summary through SocialAnalyticsService for inclusion in the CEO morning brief — real metrics, top-performing posts, highlights, and recommendations. Brand voice maintenance audits consistency across channels and surfaces deviations with examples; lead magnets (guides, templates, checklists) target high perceived value for capture.

A/B tests require the WAR_ROOM feature gate (Professional+) and ship with hypothesis, control, variant, success metric, sample size, and expected duration. Ad campaign management requires AGENT_FORGE (Professional+) and includes budget allocation, channel strategy, creative direction, and projected ROI.

Tools

Tools are registered via register_marketing_tools in src/agents/marketing/tools.py. Specialized publish/analytics services are wired via the agent factory.

  • SocialPublisherService.publish_post — Publishes social posts through the full organism pipeline (quality + feature gate + autonomy + credits + events + audit).
  • SocialAnalyticsService.generate_weekly_summary — Real metrics for the CEO’s morning-brief social section.
  • SubjectLineScorer.score + one-shot regeneration — Email subject optimization before the Quality Gate runs.
  • monitor_reviews (tool) — Scans Google, Yelp, and other configured platforms; returns flagged items.
  • ContactTimelineService.check_spacing — 48-hour cooldown for contact-targeted email and social posts.
  • quality_gate — Validates every external CMO output (content, social, email, review responses, lead magnets) before delivery.
  • AI_DISCLOSURE constant — Appended to every external-facing output.

Decision patterns

These are the dispatch entries inside CMOAgent.execute in src/agents/marketing/agent.py.

  • content_creation — Triggered by editorial calendar; emits CONTENT_PUBLISHED.
  • campaign_management — Triggered for paid campaigns; gated to Professional+ via AGENT_FORGE.
  • seo_optimization — Triggered weekly; produces keyword recommendations, meta descriptions, and content structure suggestions.
  • social_media_management — Triggered by the social cadence; routes through SocialPublisherService when wired.
  • review_monitoring — Triggered on the review-monitoring cadence; uses the monitor_reviews tool.
  • review_response — Triggered when a flagged review needs reply; professional + empathetic + AI-disclosed.
  • brand_voice_maintenance — Triggered weekly; audit + deviation report.
  • email_marketing — Triggered by campaign queue; subject-line scoring with regeneration; AI disclosure; Quality Gate.
  • lead_generation — Triggered when funnel demands new lead magnets; guide/template/checklist with AI disclosure.
  • ab_testing — Triggered when conversion-test queue fires; gated to Professional+ via WAR_ROOM.

Escalation criteria

  • Tenant plan lacks AGENT_FORGE for paid campaign management — handler returns feature_gated.
  • Tenant plan lacks WAR_ROOM for advanced A/B-testing analytics — same outcome.
  • Targeted contact within the 48-hour cooldown — email or social post deferred, not blocked.
  • Quality Gate flagged the output (e.g. brand-voice deviation, missing AI disclosure, factual claim outside the support window) and auto-revise failed — content blocked.
  • SocialPublisherService raises ValueError or PermissionError — publish rejected with the reason surfaced.
  • Action would exceed the CMO’s daily budget cap.
  • Action targets more than the configured escalation_blast_radius_threshold audience size in a single send.

Example outputs

[Blog post — "How we cut SDR ramp time by 40%" (excerpt)]
Three years into building Acme, we hit the same wall every fast-growing
team hits: pipeline that looked great on a dashboard but felt fragile in
the QBR. The culprit wasn't lazy reps. It was ICP drift the dashboard
never surfaced…
— Published on behalf of {founder_name} by their UltimateTeam.ai CMO agent.
{
"campaign_name": "spring_winback_2026",
"subject_line": "Priya — your Acme account misses you (1 click to reactivate)",
"subject_line_score": 11,
"subject_line_regenerated": true,
"ai_disclosure_included": true,
"summary": "Email campaign 'spring_winback_2026' designed",
"significant": true
}
[Negative review reply — 1-star, "support never replied"]
Hi Marcus, I'm sorry our team went silent on you — that's not the
experience we want anyone to have. I've pulled your ticket (#48211) and
asked our success lead to reach out today with a direct line and a
two-month credit while we make this right.
— Reply on behalf of {founder_name} by their UltimateTeam.ai CMO agent.

Sourced from src/agents/marketing/agent.py, src/core/content/social_publisher.py, src/core/content/social_analytics.py, src/core/quality/subject_line.py, and src/agents/marketing/capabilities.py. Last reviewed: 2026-04-25.