Marketing Superskiller
A self-hosted platform that runs a library of AI “skills” as tracked jobs and turns their output into branded client deliverables.
- Next.js 15
- React 19
- TypeScript
- SQLite
- Claude Code CLI
- Python
- Puppeteer
- MCP
Marketing Superskiller (internally branded “DKB Labs”) is an agency operating system that pairs a Next.js/SQLite dashboard with a catalog of roughly 135 self-contained Claude “skills” (about 38 first-party, the rest curated third-party imports), 10 specialized sub-agents, and Python automation — all organized per client and brand. An operator parameterizes a skill from the dashboard and runs it as a tracked job; a Node runner shells out to the Claude Code CLI, streams a typed event log, and renders the result as paired HTML + PDF artifacts on branded templates. Every brand carries its own marketing-context, brand-guidelines, and ICP “memory” files that each run reads, plus its own integration credentials. It currently spans seven clients across roughly twenty brands.
▸ Technical deep dive
Skills are declared as structured contracts — a YAML manifest plus a Markdown prompt — that specify typed inputs and outputs, which per-brand memory files they read, which integrations they require, and whether they write to a live system. Skills chain into multi-step “playbooks” (onboarding, SEO deep-dive, CRO sweep, paid-acquisition audit, and others) that can pause for a client questionnaire and produce review-ready output for the operator to apply, rather than writing to live systems unattended. Output is deliverable-first: a draft-to-final lifecycle, inline editing with live re-render, an “unbrand” white-label toggle, and a report generator that consolidates a date range of completed jobs into a one-page executive summary.
Technical highlights
- Per-job runner spawns the Claude Code CLI as a subprocess, parses its stream-json output into a typed event log (with per-run cost and turn counts), enforces timeouts, and tree-kills orphaned child processes on shutdown.
- Pluggable LLM-provider layer with adapters for Claude, Gemini, OpenAI, DeepSeek, and a local Ollama route, configured from a single
providers.yamlconsumed by both the TypeScript runner and the Python scripts. - Live-data integrations over the Model Context Protocol — Google Ads, GA4, Search Console, Sheets, Drive, Ahrefs, and LinkedIn Ads via Composio, plus first-party Python MCP servers.
- Strict per-tenant isolation: every database query is scoped to (client, brand), filesystem paths are validated against traversal, and a “cross-brand read guard” warns if a skill session touches another brand’s files.
- Self-updating “brand memory”: a meta-skill reconciles each strategic run’s findings against six canonical per-brand Markdown files and demotes contradicted claims so each engagement informs the next.
- Deliverable pipeline renders branded PDFs via Puppeteer, exports fillable questionnaire PDFs (pdf-lib) and Word documents (docx), and includes a PSD-to-template editor (psd-tools + Pillow) that turns design files into branded report templates; recurring runs are scheduled in-app with node-cron and catch up on boot.
How it works
Four layers: a Next.js 15 / React 19 dashboard (App Router, routes under /c/[client]/[brand]/… plus roughly 50 API route groups); a catalog of self-contained skills and ten reusable sub-agents; a library layer holding the runner, provider adapters, MCP registry, scheduler, brand-memory hooks, and document renderers; and persistence split between a single SQLite database (jobs, events, schedules, playbook-runs, scans) and a per-brand filesystem tree (context, guidelines, assets, outputs, deliverables, credentials). A “job” is the unit of work, and an “include in scope” flag marks the jobs the report generator may consolidate.
- Scale
- ~90,500 lines of application code; dashboard ~54,200 LOC across 353 TypeScript/TSX files, plus ~31,100 Python. ~135 skills (~38 first-party, ~97 third-party), 10 sub-agents, 9 playbooks. 7 clients / 21 brands.
- Integrations
- Google Ads, GA4, Search Console, Sheets, Drive, Ahrefs, LinkedIn Ads (via Composio MCP); first-party GA/GSC/Sheets MCP servers; optional ScrapingBee, Tavily, and image-generation MCP.
- Deployment
- Local Windows production build (port 3838); remote access via an auth-gated Cloudflare Tunnel; in-app scheduling with node-cron.
- Provenance
- The platform itself — dashboard, runner, playbooks, and brand-memory loop — is original work, as are ~38 first-party skills; the remaining ~97 skills are curated third-party imports under MIT / per-author licenses.