Skip to content

kl527/omark

Repository files navigation

GTM Operator

Autonomous marketing agent swarm built on Cloudflare Workers + Agents SDK.

Architecture

  • Orchestrator Agent — evaluates goals vs metrics, creates tasks, delegates to specialized agents
  • Content Agent — generates social media post drafts, publishes after approval
  • Analytics Agent — ingests X + website metrics on a schedule, updates goal progress
  • Approval Workflow — routes high-risk actions (publish, outreach) through human approval
  • Dashboard — Next.js app for managing goals, reviewing approvals, viewing action log

Stack

  • Cloudflare Workers (Durable Objects, D1, Workflows)
  • Agents SDK (agents npm package)
  • Next.js 15 + Tailwind CSS
  • pnpm workspaces + Turborepo

Project Structure

apps/
  dashboard/       Next.js dashboard
backend/
  agents/          Cloudflare Worker — all DO agents + workflows
packages/
  types/           Shared TypeScript types
  schema/          D1 migrations + query helpers
  policy/          Risk evaluation engine
  adapters/        External service adapters (X API, analytics, AI)

Setup

# Install dependencies
pnpm install

# Create D1 database (first time only)
cd backend/agents
pnpm wrangler d1 create omark-db
# Update wrangler.jsonc with the returned database_id

# Apply D1 migrations
pnpm wrangler d1 execute omark-db --local --file=../../packages/schema/migrations/0001_initial.sql

# Start agents worker (port 8787)
pnpm dev

# In another terminal — start dashboard (port 3000)
cd apps/dashboard
pnpm dev

Risk Model

Risk Level Behavior
Low Auto-execute (e.g. generate draft, analyze metrics)
Medium Execute + log/notify (e.g. update campaign)
High Requires human approval (e.g. publish post, outreach)

Testing

pnpm test

Deployment

# Deploy agents worker
cd backend/agents && pnpm deploy

# Deploy dashboard
cd apps/dashboard && pnpm build && pnpm wrangler deploy

About

Open Marketing

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages