frameworkmkt-jbnx · v41099:cowork-fable2026-08-06served from databaseAll documents

mkt.jbnx.io — JBNX Marketing Team Plan v2.1 (P1 data layer shipped)

mkt.jbnx.io — JBNX Marketing Team

BLUF: A lean AI marketing pod that turns the week's shipped work into multi-channel content, measured against one funnel per product, on rails JBNX already pays for. Weekly output: blog + newsletter + social set + monthly AEO pass — at a hard-capped ≤ $25/mo LLM budget and $0 new infrastructure until P3.

Version 2.1 · 2026-08-06 (P1 data layer SHIPPED) · slug mkt-jbnx · directive v31. Supersedes v1: folds in the 8-point critique and a cost-reduction pass. v2.1: P1 executed — during build we found prior marketing groundwork already in the database (schema marketing: AEO research, KPI/metrics, and a channel registry with budgets and kill criteria, plus five pf_mk_ portal views). The new pipeline tables were consolidated INTO marketing as the single home; the plan's mkt schema naming is corrected accordingly, metrics_daily was dropped in favor of the richer existing marketing.metrics, assets.channel is FK'd to the existing channel registry, and RLS hardening was applied to the seven legacy tables (it was off). Baseline remains Brock Mesarich's "Master Claude for Marketing"* course, rebuilt JBNX-native.


1. Baseline (unchanged from v1, abbreviated)

The course builds one operator's system in eight moves: workspace memory → voice skills mined from real corpus → a repurposing chain (1 source → blog/newsletter/LinkedIn/IG) → Higgsfield visuals → Clay leads + outreach → Supabase tracker dashboard → Blotato/Zapier distribution → Semrush SEO/AEO. Core insight kept: everything is a skill with a mined voice behind it, chained into pipelines, human-gated only at the publish/send edge. The affiliate vendor stack is replaced wholesale by connected tools (Canva, Resend, Gmail, Supabase, Firecrawl, llm.jbnx.io).

2. Principles

  1. Funnel before content. Nothing publishes until each hero product has a defined funnel (visit → email capture → signup), a quarterly North Star, and UTM tagging on every outbound link. Content without attribution is cost, not marketing.
  2. The portal is the source. The directive already forces customer-readable --done lines on every agent run. The default weekly source is the week's handovers, auto-compiled into a build-in-public changelog. No new content burden on the CEO — the raw material already exists in Postgres.
  3. A pod, not a bureaucracy. Two active identities; everything else is a skill. Directive loop (claim → boot → work → verify → usage → release) applies, batched into one weekly run.
  4. Approval = publish wherever possible. Prioritize API-publishable channels (newsletter via Resend, blog via PR merge, X via API). Manual channels (LinkedIn/IG) batch into one fixed 15-minute weekly CEO slot.
  5. Born-closed data. New mkt schema: not exposed to Data API, RLS on, anon/authenticated revoked, reads via public.pf_mkt_* SECURITY DEFINER views gated by portfolio.is_ops_reader(), dead-grants query before calling it hardened.
  6. FedM8 data is permanently out of scope. No reads from its database, no veteran PII near this system. Public-site AEO audits of fedm8.com are fine. First campaigns: CipherDeck + NodeDough.
  7. Metered and capped. All model calls through llm.jbnx.io virtual keys with hard monthly budget caps, Langfuse-traced with campaign_id metadata so cost-per-asset is a query, not a guess.
  8. Voice is learned, not mined once. Every CEO edit to a draft is training signal: diff drafted vs approved, store deltas as facts, fold into the voice skill monthly.

3. The team — 2 identities + a skill library

IdentityStatusOwns
MKT-LeadStanding (weekly batch run)The whole production loop: changelog compile, voice drafting, repurposing, Canva creative specs, AEO audits, metrics rollup, weekly brief. Runs Writer/Creative/Analyst work inline as skills. Reports to 02.
MKT-GrowthOn-demand (P5)Leads, enrichment, outreach drafts. Isolated identity because outreach needs its own audit trail and its own budget cap. Never sends unapproved.

Skills (repo /skills/): email-voice · blog · newsletter · linkedin · x-posts · repurpose · changelog-compile · carousel · infographic (Canva) · aeo-audit · outreach. Split into 5 seats only when weekly volume demands parallel leases — seats are cheap to add, org structure is not free to run.

Escalation per agent_ops.policy: brand/copy/design → MKT-Lead decides, 02 arbitrates. CEO sees only spend ≥ $500/mo, legal-binding, irreversible (passing critical_test).

4. Architecture — cost-reduced

P1 ships zero new infrastructure. No Railway service, no domain, no hub UI. P1 = schema + views + LiteLLM keys + skills in the repo. Approvals happen where they already happen: in chat.

5. Data model (schema marketing, v1 — live)

campaigns (theme, goal, window, north_star) · sources (type, provenance, content_hash for dedupe) · assets (source_id, channel, body/url, voice_skill_version, utm, status draft → review → approved | rejected → published, publish_after, published_url) · voice_feedback (asset_id, drafted_hash, approved_diff, mined_at) · calendar · leads (minimal PII, source-tagged) · outreach (send requires approved_by) · competitors + competitor_snapshots · seo_findings · metrics (existing, period-grain) · funnels (product, stage, target, actual).

6. Pipelines

  1. Weekly heartbeat (one batched run): pg_cron pokes → MKT-Lead claims, boots → changelog-compile over the week's handovers → repurpose → blog + newsletter + LinkedIn + X (+ carousel spec) → all to reviewCEO approves in chat → API channels publish immediately (Resend broadcast, blog PR, X post), manual channels queue for the 15-min slot → verify live → usage + status + release. One claim, one session, all assets.
  2. Outreach (P5): ICP with 02 → enrich (web research first) → per-lead drafts via email-voice → approval → send from dedicated cousin domain → replies triaged.
  3. AEO sweep (monthly): audit the public properties + competitors → rewrite proposals as PRs to owning repos → findings to seo_findings.
  4. Metrics (owned channels only): Resend opens/clicks via API + site analytics/visit-beacon + UTM-attributed signups → metrics_daily + funnels → weekly brief. Social vanity metrics: monthly manual glance, not engineered.
  5. Voice learning (monthly): mine voice_feedback diffs → bump voice skill versions.

7. Guardrails

  1. Nothing publishes or sends without chat approval. Whitelisting a proven low-risk channel later is a 02 decision, logged.
  2. Outreach is never auto-sent, runs from a cousin sending domain after warm-up, includes unsubscribe handling, and stays low-volume until deliverability proves out. cipherdeck.com/jbnx.io domain reputation is never spent on cold email.
  3. No vendor trials before their gate. Trials convert to charges; the gate table (v1 §8) stands: Canva/Resend/Gmail now; Blotato when the manual slot fails twice; Clay when outreach volume proves; Semrush when analyst cadence is real; Higgsfield only if video ads become a real need.
  4. FedM8 per §2.6. Secrets by name only; Railway Variables + Supabase Vault.
  5. Budget caps are hard: LiteLLM refuses over-cap calls. Combined vendor+infra recurring tracked in #/spend, flagged at $200/mo trend.

8. Budget

Linev1 est.v2
Railway service$5–10/mo from P1$0 until P3, then ~$3–5/mo
LLM (capped keys)uncapped, ~5 keys≤ $23/mo hard cap (2 keys)
ScrapingFirecrawl daily~$0 (direct fetch weekly; FC reserve)
Vendors$0–150/mo drift risk$0, gated, no-trial rule
Engineering~4.5 sessions P1–P5~2.5 sessions (P1 halved, hub deferred, seats collapsed)

9. Phases

10. KPIs (weekly brief, outcome-first)

North Star per product (P0.5) · UTM-attributed signups/wk · newsletter subs + open rate · source→publish cycle time · assets/wk · cost per published asset (Langfuse query) · outreach reply rate (P5) · AEO findings merged.

11. CEO actions (batched; #1 blocks everything repo-shaped)

  1. Mint the fine-grained PAT (mkt.jbnx.io, jbnx.io, ai-portal, claude-ops, cipherdeck; Contents+Workflows RW) → set GITHUB_TOKEN in Railway → delete the two plaintext credential files from the Claude project → rotate the still-live Railway token. (Already in ceo_actions, 2026-08-06.)
  2. Same sitting, marketing-upstream items already in your queue: FedM8 DNS records (email signups down since Aug 2) · Resend no-reply@cipherdeck.com sendable · jbnx.io revamp ship.
  3. P0.5 input (one line each): North Star for CipherDeck and for NodeDough this quarter.
  4. DNS for mkt.jbnx.io — not needed until P3 Option B.