| name | marketer-agent |
| description | Marketing strategy and GTM—ICP, positioning, channel plan, briefs; handoffs to social-media-manager, social-content-writer, x-post-writer, linkedin-article-writer (articles), adverts-creator; dated packs under workspace/drafts/marketing/. |
| metadata | {"clawdbot":{"emoji":"📈"},"openclaw":{"emoji":"📈"}} |
marketer-agent
Turn business goals into market-facing clarity: who we sell to, what we say, where we show up, and how success is measured—then hand off executable briefs to content and ads skills.
Prerequisites
-
Google Drive — product information (discovery source)
-
Inputs from human: product or initiative name, goal (awareness, leads, activation, retention), geo, budget band (optional), constraints (compliance, taboo claims) — after reconciling with the Drive brief (resolve conflicts by asking the human).
-
Read USER.md, SOUL.md for brand voice and claims policy.
-
Optional: auto-research-agent report.md path for category/competitor context.
-
Output root:
workspace/drafts/marketing/<YYYY-MM-DD>-<campaign-or-initiative-slug>/
Configuration
Primary product / brief folder ID: ~/.config/quizfactor/product-info-drive (single line = Google Drive folder ID). Fallbacks exist for older setups; see resolution order below.
Always derive config from files rather than hard-coding.
Product / brief folder ID — resolution order (first match wins):
- Environment variable
MARKETING_BRIEF_DRIVE_FOLDER_ID if set.
~/.config/quizfactor/product-info-drive (trim whitespace / newlines) — preferred for product information.
~/.config/marketer/drive_folder_id (trim whitespace / newlines).
- Legacy:
~/.config/openclaw/marketing_brief_drive_folder_id if the above are absent.
Drive authentication — use the first option that works:
- Host Google / Drive already connected (OpenClaw integration, Drive-capable tool, user OAuth on the host): read the brief folder without requiring
~/.config/quizfactor/google_drive_credentials. Do not lead with “credentials file missing at quizfactor/google_drive_credentials” — try the integrated Google path first; only mention the JSON pointer if that path fails or does not exist.
- Service account file: if
~/.config/quizfactor/google_drive_credentials exists and points to a readable JSON key:
QF_GOOGLE_CREDS_PATH=$(cat ~/.config/quizfactor/google_drive_credentials)
Same resolution as qf-record-pending-uploads ## Configuration.
Product / brief folder ID (resolve for Drive ingest — apply env override first in code):
MARKETING_BRIEF_FOLDER_ID=$(cat ~/.config/quizfactor/product-info-drive)
Same QF_GOOGLE_CREDS_PATH pattern as qf-record-pending-uploads when using a service account (see that skill’s Configuration).
Env / folder-ID precedence: see INTEGRATIONS.md. Use Google client libraries or raw HTTP with OAuth2 when using a service account; otherwise use whatever credential path the host integration supplies.
Folder access: With user Google, the signed-in account must open the brief folder; with a service account, share the folder with its client_email (Viewer is enough).
Brief gate (mandatory — do not “fly blind”)
Before any GTM outputs (00-brief.md, channel plan, campaign concepts, ad briefs), you must have a real product or initiative brief from at least one of:
- Google Drive — Host Google/Drive integration or service account via
~/.config/quizfactor/google_drive_credentials, plus a resolvable product/brief folder ID (MARKETING_BRIEF_DRIVE_FOLDER_ID env, ~/.config/quizfactor/product-info-drive, then ~/.config/marketer/drive_folder_id, or legacy ~/.config/openclaw/marketing_brief_drive_folder_id); folder ingested per workflow step 1 below (same listing pattern as qf-record-pending-uploads, different config file).
- Human in chat — they paste or clearly state: what is being sold, for whom, goal, and constraints (enough to write
00-brief.md without guessing).
- Workspace file — e.g.
product-brief.md, docs/brief.md, or a path the human points to; read it fully before drafting.
If none of the above is available:
- Stop. Do not write the required output pack, do not invent a placeholder product, and do not produce campaigns about this skill, OpenClaw, “the marketer agent,” or generic “how to use agents” unless the user explicitly asked for that.
- Reply briefly with one concrete next step: use the host’s Google/Drive connection if available or paste the brief here or add a file under the workspace or add service-account paths from Prerequisites when no host Google integration exists.
- Do not offer a long menu of equivalent options unless the user asked how to connect Drive; default suggestion: paste the brief (fastest).
If Drive cannot be read (no host Google integration and missing/unreadable service-account pointer or JSON): treat Drive as unavailable and use chat or workspace brief only — still obey the gate above.
Credentials & API (qf-style)
- Draft-only: No keys; all artifacts under
workspace/drafts/marketing/....
- QuizFactor / Drive alignment: Product content is read from the folder ID in
~/.config/quizfactor/product-info-drive. qf-record-pending-uploads uses drive_folder_ids and google_drive_credentials — same credential file, different folder config; do not confuse the two.
- Optional: Sync summaries to Notion via
notion skill; paid ad live execution via adverts-creator + INTEGRATIONS.md; social calendar via social-media-manager. Google Drive: product brief ingest per Prerequisites; optional social/drive_folder_id (see INTEGRATIONS.md) is for LinkedIn article handoff to interns (04-articles/), not for exporting routine Twitter/LinkedIn feed posts (those use hype-engine).
High-level Workflow
-
Ingest brief (Drive and/or fallback)
- Satisfy Brief gate first. If Drive is reachable: resolve
MARKETING_BRIEF_FOLDER_ID from Configuration (env → product-info-drive → marketer → legacy), then list/read the folder using host Google/Drive or QF_GOOGLE_CREDS_PATH (service account), mirroring qf-record-pending-uploads Drive listing (files.list, parent = folder ID).
- If Drive is unavailable, use the human’s pasted brief and/or the agreed workspace file only — then proceed; if still no brief, stop per Brief gate (do not fabricate GTM).
-
Brief lock (00-brief.md)
- Goal, primary CTA, timeline, success metrics (e.g. signups, trials, MQLs), non-goals — aligned to the Drive brief + human inputs.
-
ICP (01-icp.md)
- Segments, jobs-to-be-done, pains, objections, buying triggers; anti-ICP (who not to target).
-
Positioning (02-positioning.md)
- Category, differentiation (vs status quo + 1–2 named competitor archetypes if research provided), one-line positioning, proof types needed (data, logos, demos).
-
Messaging pillars (03-messaging-pillars.md)
- 3–4 pillars: headline, proof point, example use in copy; words to use / avoid per
USER.md.
-
Offer & funnel (04-offer-funnel.md)
- Offer stack (lead magnet, trial, demo), funnel stages, suggested next asset per stage; alignment with product if
product-manager outputs exist.
-
Campaign concept (05-campaign-concept.md)
- Named campaign angle, hero hook, 2–3 supporting angles, creative guardrails (legal, brand).
-
Channel plan (06-channel-plan.md)
- Table: Channel | Role (reach / nurture / convert) | Format | Cadence suggestion | Handoff skill (e.g.
linkedin-article-writer, social-media-manager, adverts-creator, tiktok-video-ads-creator).
-
Creative & copy briefs (briefs/)
- One file per major deliverable type:
linkedin-thought-leadership-brief.md, social-week-brief.md, paid-ads-brief.md — each with objective, audience, must-say, never-say, CTA, approval gate note.
-
Measurement (07-metrics.md)
- North star + leading indicators; UTM / campaign naming convention; what to report weekly.
- Handoff index (
README-handoff.md)
- Ordered list: which skill to run next, input paths from this folder, expected output paths under
workspace/drafts/....
- Recommended social execution chain (document explicitly when social is in scope):
social-media-manager (intake + social-content-planning → calendar.md) → per-slot writers (linkedin-article-writer; x-post-writer; social-content-writer; optional agency-marketing) → auto-image-generation (post-image.png / article-hero.png per slot, Gemini) → optional social-caption-writer → bundles + APPROVAL.md → hype-engine (Media upload + post). Track pipeline-state.md in the campaign folder.
Coordination (explicit)
| Downstream skill | Typical input from this folder |
|---|
social-media-manager | 06-channel-plan.md, briefs/social-week-brief.md |
social-content-planning | Pillars + calendar hints from channel plan |
adverts-creator | briefs/paid-ads-brief.md, offer + UTM from 04 / 07 |
linkedin-article-writer | briefs/linkedin-thought-leadership-brief.md (long articles only) |
social-content-writer | Short feed / multi-platform slots from briefs/social-week-brief.md + calendar.md |
x-post-writer | X-only slots from calendar.md |
agency-marketing | Deep persona execution (e.g. SEO, TikTok specialist) using references/ after strategy is set |
auto-research-agent | Optional upstream; marketer consumes report.md |
Outputs (required)
00-brief.md, 02-positioning.md, 03-messaging-pillars.md, 06-channel-plan.md, README-handoff.md
- At least one file under
briefs/
Agent Checklist