← guides
guide · published 2026-05-04

The complete agency guide to GEO with Arenza — onboarding 50 client brands in one afternoon

An SEO/GEO agency with 50 client brands needs different ergonomics than a single-brand VP. This guide walks through Arenza's agency-first features end-to-end — bulk-import 50 brands from one CSV in under 5 minutes, copy-settings to share prompt sets, white-label every report, Slack digests, MCP for Claude. Includes timing benchmarks: 50 brands onboarded in ~45 minutes, weekly client reporting on autopilot.

If you run an SEO/GEO agency with multiple client brands, you optimize for throughput, white-label trust, and batch operations — not for the depth of any single dashboard. This guide walks through Arenza's agency workflow end-to-end with timing benchmarks at 10 / 50 / 200 client brand scale.

Day 1 onboarding: 50 client brands in 45 minutes

  1. Contact hello@arenza.ai with your agency email + brand count. Onboarding agent provisions /portfolio access within 1 day.
  2. Bulk import: click 📋 Import multiple from CSV. Drop a spreadsheet with columns name,domain,region_preset,agency_public_name. Validates client-side (you fix errors immediately, not after a round trip). Submit → 50 brands created in seconds.
  3. Apply a prompt template across the portfolio: open one brand → /prompts → click 🪄 Suggest buyer prompts → review the AI-suggested 12 (review takes ~30 seconds; the LLM runs in 3-8s). Track the ones you want.
  4. Copy that prompt set to all client brands in the same vertical: /portfolio/copy-settings → pick source brand → multi-select target brands → check Prompts → Submit. 1 operation = 50 brands populated.
  5. Configure agency Slack channel (cross-brand alerts): /portfolio/alerts → New rule → trigger=avs_drop, threshold=5pts, period=24h, channel=your #alerts Slack. Single rule, fans out to all 50 brands.
  6. White-label per top-3 client (the ones that matter for renewals): /brands/[slug]/settings/white-label → upload client logo + accent color + public display name. Reports + emails + share URLs now carry their brand, not Arenza's.

Realistic time: 45 minutes including coffee. The bulk import + copy-settings combo is what makes this fast — the alternative (single-brand onboarding × 50) takes ~8 hours.

Daily 10am ritual (5 minutes)

  • Open /portfolio. Scan the red/yellow/green grid — anything in red needs attention.
  • Cross-brand AVS chart panel — spot the dropping line, click into the brand.
  • Brand sidebar → Opportunities/Discussions tab — mark as done what you handled overnight.
  • Slack #alerts channel — anything fired since you last checked? Click through to brand.

Goal: surface the 1-2 brands that need work today, not get sucked into 50-brand surveying.

Weekly client meeting prep (per brand, 3 minutes)

  1. Open /brands/[slug]/dashboard for that client.
  2. Compare AVS trend vs last week (cross-brand chart).
  3. Pull the Sources page — note which publishers gained/lost weight (PR pitch material).
  4. Schedule weekly digest: /brands/[slug]/settings/schedule → add client VP email. Auto-sends Mondays 9am with their snapshot, white-labeled under your agency name.

On automatic from week 2 onwards. The agency principal does monthly QBR review, not weekly dashboard babysitting.

White-label settings reference

  • logo_url: PNG / JPEG / SVG / WEBP, upload via /brands/[slug]/settings/white-label. Renders on PDF report cover, email digest header, public share URL. ≤1 MB.
  • accent_color: #RRGGBB. Drives the primary highlight color in reports + email.
  • public_display_name: Overrides name on shared reports. Use the legal entity name if your contract demands it.
  • Footer always reads "Powered by Arenza" — non-removable on the Protect tier (Enterprise tier with full theming removes it).

Per-brand integrations: Slack, Feishu, webhook

/brands/[slug]/settings/integrations supports four channel kinds:

  • Slack incoming webhook — paste the webhook URL from your Slack workspace. Set severity floor (low/med/high) so low-severity noise doesn't drown the channel.
  • Feishu (Lark) bot — paste the bot URL. Same severity floor logic.
  • Generic webhook — POST JSON to your own endpoint. Useful for routing into custom ops tooling.
  • Email — recipient email address; uses Resend.

For agency-side cross-brand alerts (one rule fires across all owned brands), use /portfolio/alerts instead of per-brand integrations.

MCP integration: Claude as the agency's reporting layer

An MCP-aware Claude (Desktop, Code, or any client) can call Arenza directly. The hosted server lives at mcp.arenza.ai. Setup in 2 minutes — full walkthrough at /guides/use-claude-with-arenza-mcp-server.

Read tools (always available): list_brands, get_brand_overview, list_prompts, list_opportunities. Write tools: add_competitor, mark_opportunity_done, dismiss_competitor, suggest_competitors, suggest_prompts, generate_geo_article.

Real agency Monday workflow: "Claude, give me a 5-line summary of all 50 client brands' visibility this week, sorted by biggest drop" → 1 prompt = the standup deck.

Public REST API (for custom dashboards)

If your agency runs Notion / Looker / custom Slack bots / internal Slack apps, the REST API at api.arenza.ai is documented in our methodology page. OAuth via Clerk; per-brand scopes; includes /agency/* endpoints for cross-brand queries.

Pricing for agencies (no per-brand seat fees)

Arenza Protect is $99/mo + usage — base includes 1,000 scans, 10 findings, and 5 deployed fixes per month, with overage at $0.05/scan + $1/finding + $5/fix. Adding brand 51 to the workspace doesn't add a base fee; you only pay for the additional scans + findings + fixes you actually consume. White-label, all 3 AI platforms, MCP server, and REST API are all included from Protect — not gated to Enterprise. (Pro at $9.99/mo is single-brand and ChatGPT-only — for solo operators, not agencies.)