Bjorn David Hansen·Marketing operator + AI enablement builder
Hi, I'm Bjorn.

I hit the number. I also build the tools that hit it for me.

I'm a senior digital marketing manager who drives roughly half the revenue of a company doing over a quarter-billion dollars a year — at goal-exceeding efficiencies. I'm also an AI enablement builder who turns the high-stakes marketing workflows around the campaigns into reusable, guardrail-protected tools. Most companies want one or the other. I do both at the same time, on the same paycheck.

Bjorn David Hansen
Seven-figure
Monthly paid media budgets across Google Ads, Microsoft Ads, and YouTube
Hundreds of thousands
SKUs in the ecommerce catalog the program serves
Strong YoY
Revenue and order growth in 2026, with improving marketing efficiency
19 ★ / 9 ⑂
On the public Google Ads MCP Server (open-source on GitHub)

The two lanes

Hire me for one. You get the other for free. Or hire me for both — that's the actual reason to talk.

Lane 1

The digital marketing manager who hits the number

Senior paid-media manager running enterprise-scale Google Ads, Microsoft Ads, and YouTube. Seven-figure monthly budgets, hundreds of thousands of SKUs, eighteen months at the current account. Goals on revenue, MER, CAC, and new-customer acquisition — not in-platform ROAS.

  • Roughly half the revenue of a $250M+ ecommerce business runs through the program I own.
  • 2026 YTD: strong double-digit revenue growth, improving marketing efficiency, disciplined CAC.
  • Budget pacing, bid strategy, promo architecture, feed management, and the daily PUSH/PULL/HOLD call — all owned end-to-end.
Lane 2

The AI enablement builder who makes the workflow runnable

Around the campaigns, I build the operational tooling that makes the throughput possible. Production Next.js apps. Python CLI suites. Multi-agent autonomous loops. Claude validation gates. An open-source MCP server with traction on GitHub. The team's coding-agent contracts in the repos.

  • Seven shipped tools (six private internal, one public on GitHub). All built with Claude Code as the coding agent.
  • Daily stack: Next.js, TypeScript, Python, Tailwind, Vercel, Cloudflare, Anthropic SDK, Google Ads / GTM / GA4 APIs.
  • I train cross-functional stakeholders to spot the next workflow worth lifting — so the building doesn't stop when I leave the room.
Most marketing teams have one operator who delivers the number and a separate engineering team who builds the tools. I'm both — without context-switching cost.

Selected builds

Seven shipped tools. Five in active production use, one with community traction on GitHub, one demo-ready. Real workflows, not weekend demos.

Due to the sensitive nature of these businesses, all of this coding work is private — except the public Google Ads MCP Server below.

SheetFlo

Private · Production

Performance control surface for Google Ads — hourly EOD spend forecasting, off-pace detection, and bid/budget orchestration from a few clicks.

Before
Juggle six spreadsheets (daily spend, 52-week pacing, BSP calculator, revenue feed, Google Ads UI) to decide PUSH/PULL/HOLD. Weekend coverage was effectively zero — nobody opens six tabs on a phone.
After
One tap refreshes the hourly EOD forecast, classifies severity, and overlays MER status. A second tap surfaces a recommendation; a confirm sends the bid batch with safety bounds, preview verification, and audit logging. The operator owns the decision; the manual spreadsheet work is gone.
Next.jsTypeScriptVercelAnthropic SDKGoogle Ads APIGoogle Sheets/Drive
  • Drives the daily operating cadence (morning, hourly, weekly).
  • Hard guardrails enforced at the API layer — `validateTroasRange` throws on every mutation.
  • Responsive — runs from a phone on nights and weekends.
  • Also the entry point for broader optimization work (feed-management roadmap, title-tag experiments, post-test attribute analysis).

Cadence

Private · Live deploy

Reproducible heuristics-led monthly budget planning workflow — ROAS-weighted daily distribution under a binding monthly cap, with a human review step.

Before
Roughly an hour per account per planning cycle. Pull last year's daily cost + conversion-value, find weekday-aligned matches manually, hand-balance daily totals to the monthly cap, review for math/header/monotonicity errors.
After
Enter the monthly cap; the system distributes it across days using 52-week weekday alignment, ROAS performance weighting, and day-of-week + promo multipliers. Manual Adjustments table (the explicit Human Intelligence Layer) lets you override any row — system re-normalizes to the exact monthly total. Claude validates against seven sanity rules before export.
Next.jsTypeScriptVercelAnthropic SDKGoogle Ads APIGoogle Sheets/Drive
  • Live on Vercel; used recurring monthly.
  • 364-day weekday alignment — "Mondays to Mondays, not calendar dates."
  • Dual-auth Sheets pipeline sidesteps Drive quota limits.
  • Cost-optimized Claude — invoked only when deterministic checks flag a critical failure.

PromoAds

Private · Live deploy

End-to-end promo automation across thousands of product pages — Claude-driven offer extraction, RSA copy drafting, SERP-render simulation, and validated GAE CSV export.

Before
Hand-roll RSA copy across thousands of product pages every promo cycle. High-stakes, time-pressured, error-prone.
After
Drop the promo brief in. Claude extracts offer facts with per-field confidence and source tracking. RSA copy is drafted and editable. SERP preview emulates how Google will render the headline combos. Output is a validated Google Ads Editor CSV — or push directly via the API for human review.
Next.jsTypeScriptAnthropic SDKGoogle Ads APIPlaywright
  • ~2,300 ad-group rows per run.
  • Real SERP combo generator (3-of-15 headline selection logic).
  • 28-column GAE CSV export.
  • Multi-agent collab files (AGENTS.md / CLAUDE.md / RALPH-REFLECTION) coaching multiple coding agents through the codebase.

Catalog Feed Audit Suite

Private · Methodology publishable

Deterministic Google Merchant Center feed-parity audits across hundreds of thousands of SKUs — 15 attribute checks, dual-agent cross-verification, autonomous loop with pass/fail gates.

Before
Weekly catalog audits done by eyeball or one-off LLM prompts. Each run reinvents column choices and methodology. Vendor-flagged issues had no independent verification path.
After
One CLI command audits the full catalog across 15 checks in seconds (coverage, GTIN, MPN, image link, URL liveness, availability, brand with compound-brand normalization, pricing, titles, etc.). Dual-agent (Claude Code + Codex) implements the same spec in parallel for cross-verification. Week-over-week regression diffs and pass/fail launch gates that block ad-disapproving regressions.
PythonpandasClaude Code CLICodex CLIGMC Content API
  • Audits a 265K+ SKU catalog in seconds.
  • Dual-agent cross-verification — disagreement is the investigation signal.
  • PRD-driven autonomous loop with a pass/fail "Judge" gate.
  • Methodology essay (~1,540 words) generalizing the pattern for ops teams.

Google Ads CLI Suite

Private · Architecture is the story

Python tooling that builds full Google Ads campaigns end-to-end and analyzes millions of search terms in seconds — with safe preview/pilot/execute mutation contracts on every operation.

Before
Custom Google Ads scripts proliferate across the team. Each duplicates client setup, filter logic, and safety patterns. AI agents had no consistent way to discover and call the existing tooling.
After
Centralized library: singleton client + 35+ UI-mirroring filter presets. Every mutation accepts three modes — preview (dry run), pilot (small subset), execute (full). Tool registry designed so AI agents can discover and reuse the verbs. Drafts complete campaign builds from a meeting transcript or a brief.
Pythongoogle-ads SDK v23pandaspytest
  • 32 CLI tools · 14 mutation modules · 22 tests.
  • Three-mode mutation contract on every operation.
  • Tool registry + playbook registry built for AI-agent reuse.
  • Streaming search_term_view extraction for multi-million-row L90 analysis.

TaskHub

Demo-ready

Passive task pipeline that solves the central failure of every project management system — manual input that eventually stops.

Before
Tasks scattered across four sources. Manual triage of meetings, email, calendar, chat. "What did we agree to in that meeting?" is a 20-minute archaeology hunt. Tasks get dropped or duplicated.
After
Pipeline reads my business channels passively. Claude extracts managers' and stakeholders' directives verbatim and creates canonical tasks from those quotes. Cross-source semantic dedup. Tasks surface in seven explainable priority lanes with a transparent score breakdown. As I communicate completion in those same channels, the registry updates passively. The only manual input is a yes/no feedback loop on each extracted task.
Python 3.13FastAPINext.js 16React 19SQLite + TursoClaude API
  • 40-test pytest suite.
  • 16 FastAPI REST endpoints.
  • 7-lane priority engine with explainable lane-assignment decision tree.
  • Fixture-backed demo seed — runnable end-to-end demo in 60 seconds.

Google Ads MCP Server

Public · 19★ / 9 forks

Open-source Model Context Protocol server that bridges Google Ads to Claude Desktop — marketers query and manage campaigns through natural language.

Before
Querying Google Ads required UI clicks, GAQL knowledge, or one-off custom scripts. AI assistants had no programmatic access to ad-account data.
After
Ask Claude Desktop a question in natural language. The MCP server translates and runs the GAQL; results come back inline. AI becomes an operating peer rather than a chat tool.
PythonModel Context ProtocolAnthropicDockerKubernetes
  • Public on GitHub — verifiable in 10 seconds, no auth required.
  • 19 stars / 9 forks — community-validated.
  • 5 documented build phases (ad groups → keywords → budgets → visualizations → automated insights).
github.com/bjorndavidhansen/google-ads-mcp-server

How I work

The pattern across every tool. Same six moves, every time.

  1. 01

    Map the messy workflow

    Sit next to the operator. Watch the actual moves they make — every tab, every spreadsheet, every dropdown. The tool is built against the real workflow, not the imagined one.

  2. 02

    Encode the expert judgment

    The operator's heuristics — "compare Mondays to Mondays," "weekdays earn more than weekends," "never push CSV without a preview" — become executable code, named explicitly, with documented thresholds.

  3. 03

    Add guardrails before features

    Hard bounds, dry-run/pilot/execute contracts, preview verification, audit logging, rollback capture. The expensive mistakes that already happened can't happen again.

  4. 04

    Keep humans at the gate

    AI handles extraction, normalization, and validation. Humans approve mutations. Severity levels carry prescribed actions, but the operator owns the final PUSH/PULL/HOLD call.

  5. 05

    Train the team alongside the tool

    Working sessions on how to spot a workflow that's a candidate for tool-lifting, how to scope the build, how to evaluate the outcome. The pipeline of "workflows to lift" goes from single-source intake to multi-source spotting.

  6. 06

    Make it repeatable

    Document the playbook so the next operator can re-run it. Codify patterns in essays and shared tool registries. The expert judgment becomes institutional, not tribal.

Outside the laptop

Most of the operator/builder energy comes from somewhere quiet outside the work.

Bjorn hiking — out from behind the laptop
Family — the actual reason I optimize for nights and weekends being workable from a phone

I work remote, mostly from Miami. My wife and daughter are the actual reason I designed my work to be runnable from a phone in the first place — the operator-controlled, off-pace-detector, one-tap-from-anywhere version of the job is downstream of wanting to be at the park on a Saturday afternoon and still confident the account is on pace.

Outside of work I hike, read, and tinker with side builds (some of which become real builds — that's how TaskHub started). I'd rather have one strong demo to walk through than ten polished slides about what I'd theoretically do.

If you're a hiring manager scanning this page in 30 seconds: I'm a senior digital marketing manager who hits the number, and an AI enablement builder who turns the marketing-side workflow into reusable tools. Same operator. Same paycheck. Different lanes, no context-switching cost.

Public artifacts

What's already public, plus a couple things landing soon.

Google Ads MCP Server

Live · 19★ / 9 ⑂

Open-source Model Context Protocol server bridging Google Ads to Claude Desktop. Marketers query and manage campaigns through natural language.

View on GitHub →

Probabilistic → Deterministic

Article · publishing soon

A 4-stage methodology for scaling AI from chat to a versioned multi-agent toolchain — captured from real ops work. The playbook the rest of the org can copy.

On request

Cadence wizard walkthrough

Loom · on request

A 60-second tour of the daily budget planning workflow — LY pull, manual review, Claude validation gate, clean export.

On request

Let's talk

I'm looking for an organization that wants both lanes at the same time — paid-media leadership that hits the number AND AI-assisted operating treated as strategic infrastructure for the marketing team. If your team runs on Python notebooks, internal CLIs, coding assistants, and agentic workflows alongside the campaigns themselves, we should talk.