Skip to content

Barnum, Esq.

Digital CMO

Core trick

Runs one isolated agent per marketing channel over raw platform exports, and reports NULL rather than zero for stages a channel does not measure.

Tags

Description

Digital CMO
katipally/Barnum★ 00 forksTypeScriptMITCreated Oct 23, 2026 · last push Oct 23, 2026

README excerpt

# Agentic CMO

A CMO agent that lives in Snowflake. One orchestrator manages one isolated agent per marketing channel: Google Ads, LinkedIn Ads, billboards, outbound email, email reply threads, conferences, SEO and GEO. Each channel agent reads its own raw platform export and reports what it actually measures. Where channels share a funnel (MQL, SQL, cost per SQL, CAC) the CMO compares them on it, writes decision memos, and plans next year in the CFO's language. A channel that does not measure a stage reports NULL, never zero.

Built on Snowflake Cortex Agents, Cortex Analyst, `AI_COMPLETE` and Claude.

```
 FRONTEND --REST + SSE--> FASTAPI BACKEND --PAT--> SNOWFLAKE (CMO_DB)
                             |
       deterministic routes  |-- SQL --------------------> CORE views + procs
       /now/review           |-- parallel Agent Run -----> CH_GOOGLE.AGENT  CH_LINKEDIN.AGENT ...
                             |-- stream ----------------> CORE.CMO_AGENT (synthesizes the memo)
       channel onboarding    |-- stage / AI_COMPLETE ---> CH_<X> schema per channel

 CORE        CHANNEL_REGISTRY  FUNNEL_FACT (union of active MAP views)  MQL_TO_SQL_RATE
             ASSUMPTIONS  ALLOCATION  DECISION_LOG  MAPPING_HISTORY  FUNNEL_SV  CMO_AGENT
 CH_<X>      UPLOADS stage  RAW_* tables  MAP view  SV  REPORT()  RECONCILE()  AGENT
```

- **Isolation.** Each channel has its own schema, raw tables, semantic view and agent. A channel agent's tools touch only its schema. The CMO reads only `CORE`

Team