How We Work

Back to Documents

How We Work - Juicy Marbles Ad Operations

The Team

Role Who What They Do
Automation Claude (AI) Prepares reports, analysis, campaign dry-runs, ad copy drafts, executes approved actions
Operations Henrik Reviews Claude's output, catches errors, validates strategy, manages the workflow
Decision Maker Jon Approves or rejects every action that touches live campaigns or spends money

The Workflow

Three-step approval chain. No shortcuts.

1
Claude prepares
2
Henrik reviews
3
Jon approves
4
Claude executes

Step 1: Claude Prepares

Claude runs analysis, generates reports, builds campaign packages, writes ad copy, and produces recommendations. Everything is a draft until Henrik reviews it.

Claude's output can be wrong. Bad negative keyword recommendations, incorrect diagnostics, inflated savings estimates - these all happen. That's why Step 2 exists.

What Claude does autonomously (no approval needed)

  • Read/export data from any platform (Meta, Google, Shopify, Klaviyo, Polar)
  • Run analysis scripts and generate reports
  • Generate AI ad copy variants (as drafts)
  • Run tests, linting, local development
  • Investigate issues (curl checks, API reads, data exploration)
  • Build campaign structures in --dry-run mode

Step 2: Henrik Reviews

Henrik is the quality gate. He:

  • Reads every report before Jon sees it
  • Catches mistakes in analysis (wrong keywords, bad data interpretation)
  • Validates strategic recommendations against actual business context
  • Fixes errors and sends back for rework if needed
  • Decides when output is ready for Jon

Nothing goes to Jon until Henrik says it's ready.

Step 3: Jon Approves

Jon reviews the polished package and makes decisions:

  • Approve or deny each recommended action
  • Adjust budgets or targeting if needed
  • Prioritize which actions to execute first

Jon's time is valuable. The goal is to give him a clean package where each action takes 2-5 minutes to evaluate.

Step 4: Claude Executes

Only after Jon explicitly approves an action, Claude executes it:

  • Pause or enable campaigns
  • Add negative keywords
  • Create new campaigns (as PAUSED, Jon activates)
  • Apply budget changes
  • Upload audience lists

The block-client-writes.py hook prevents accidental write operations. Every write to Meta, Google, Shopify, or Klaviyo APIs requires explicit approval flow.

What Needs Approval

Action Henrik Review Jon Approval
Pause/enable campaigns Yes Yes
Add/remove negative keywords Yes Yes
Create new campaigns Yes Yes
Budget changes Yes Yes
Email sends (Klaviyo) Yes Yes
Audience/segment changes Yes Yes
Any API write operation Yes Yes
Data exports (read-only) No No
Analysis and reports No* No
AI copy generation (drafts) No* No
Test runs and local dev No No

* Reviewed before delivery, but no formal approval step required.

Deliverable Format

Reports and recommendations go to Jon as:

Decision packages

Clear actions with approve/deny for each item

Campaign dry-runs

Full structure previews, nothing live

Ad copy packages

Scored variants, Jon picks favorites

Fix documentation

Step-by-step instructions for technical issues

Every deliverable includes: what, why, expected impact, and risk level.

Safety Guardrails

Hook

block-client-writes.py

PreToolUse hook blocks any Bash command that writes to Meta, Google, Shopify, or Klaviyo APIs

Hook

block-em-dashes.py

Prevents AI slop in written output

Default

--dry-run by default

Campaign creation scripts preview only unless explicitly told otherwise

Policy

All campaigns created as PAUSED

Jon manually activates after review

When Things Go Wrong

Claude's analysis is a starting point, not gospel. Common errors to watch for:

  • Recommending negative keywords that block good prospecting/conquest terms
  • Incorrect technical diagnoses (e.g., claiming HTTPS is broken when it's fine)
  • Inflated savings estimates
  • Missing business context (e.g., not understanding that "impossible steaks" is a conquest opportunity)

Henrik catches these. That's the whole point of the review step.