ClawSignal Documentation

Complete reference for features, API endpoints, and automation

Getting Started

Welcome to ClawSignal — the AI-powered SEO client management dashboard built by Bello Block LLC. This guide walks you through the core setup steps.

Adding Your First Client

Navigate to Dashboard and click Add Client. Fill in the required fields:

FieldDescription
Business NameThe client's business name as it appears on Google
Website URLTheir primary website (e.g., https://example.com)
Contact NamePrimary point of contact
Contact EmailUsed for reports, alerts, and outreach emails
Contact PhoneOptional — for call scheduling
ServicesWhat the business offers (e.g., "Plumbing, HVAC")
Target AreaGeographic focus (e.g., "San Diego, CA")
TierStarter ($249/mo), Growth ($499/mo), or Pro ($999/mo)
Monthly PriceWhat you charge this client per month

Understanding Tiers

Each tier determines the monthly deliverables ClawSignal auto-generates:

DeliverableStarter ($249)Growth ($499)Pro ($999)
Blog Posts4/mo8/mo16/mo
GBP Posts4/mo8/mo12/mo
Keywords Tracked102550
Site Audits1/mo2/mo4/mo (weekly)
AI Visibility Scans1/mo2/mo4/mo (weekly)
Competitors Tracked2510
Content Briefs2/mo4/mo8/mo
Citation Submissions10/mo25/mo
Strategy Call15 min/mo30 min/mo
Monthly ReportIncludedIncludedIncluded

Running a Site Audit

From the client detail page, go to the Audit tab and click Run Audit. The audit checks:

  • Performance: First Contentful Paint (FCP), Largest Contentful Paint (LCP), Total Blocking Time (TBT), Cumulative Layout Shift (CLS)
  • Accessibility: Alt tags, ARIA labels, contrast ratios
  • SEO: Meta titles, descriptions, canonical tags, robots.txt, sitemap
  • Best Practices: HTTPS, image optimization, caching headers

Scores range from 0-100. Above 90 is excellent, 50-89 needs improvement, below 50 is critical.

Adding Keywords

Go to the Rankings tab in the client detail view. Click Add Keyword and enter:

  • Keyword phrase (e.g., "plumber san diego")
  • Current rank (if known — otherwise leave blank for first scan)
  • Baseline rank (starting position for tracking improvement)

You can also use Bulk Import from the dashboard sidebar to add multiple keywords at once via CSV.

Generating a Ranking Roadmap

The Roadmap tab auto-generates a month-by-month SEO plan based on:

  • Current keyword positions and competition level
  • Client tier (determines deliverable volume)
  • Industry benchmarks and historical data

Each month shows recommended actions: content to publish, citations to build, technical fixes to implement, and projected rank improvements. Timelines are estimates — actual results depend on competition and content quality.

Rankings Tab

The Rankings tab is the core keyword tracking interface. It shows where each keyword ranks in Google search results and how positions change over time.

What It Shows

  • Keyword list with current rank, previous rank, and rank change
  • Rank change indicators: Green arrow up (improved), red arrow down (dropped), gray dash (unchanged)
  • Keyword history chart: Visual timeline of rank changes using Recharts line graphs
  • Baseline comparison: How far each keyword has moved from its starting position

How Positions Are Tracked

Keywords can be updated two ways:

  • Manual entry: Edit the current rank directly in the table. The previous rank auto-saves for comparison.
  • GSC auto-pull: When Google Search Console is connected, ClawSignal syncs average position data automatically via the /api/gsc-sync endpoint.

Color Coding

ColorMeaning
Green (#059669)Rank improved (moved up in search results)
Red (#DC2626)Rank dropped (moved down)
Gray (#5B7A8A)No change or no data
Blue (#0284C7)Top 10 position (page 1)

Adding Keywords

Click Add Keyword at the top of the Rankings tab. Enter the keyword phrase and optionally set the current rank and baseline. Keywords are stored in the keywords table and history is tracked in keyword_history.

Removing Keywords

Click the delete icon next to any keyword row. This removes the keyword and all associated history. This action cannot be undone.

Keyword History

Each time a keyword's rank changes, a snapshot is stored in keyword_history with the timestamp. The chart visualizes these data points over time. Hover over any point to see the exact rank and date.

Keyword Grouping

Keywords can be organized by category using the Keyword Groups feature. Create groups like "Primary", "Long-Tail", "Branded", or "Local" to segment your tracking.

AI Visibility Tab

The AI Visibility tab tracks whether your client's business is being cited by AI search engines and chatbots. As more users ask AI for recommendations instead of searching Google, visibility in AI responses is becoming critical for local businesses.

Supported Platforms (4)

ClawSignal monitors citations across 4 major AI platforms:

PlatformWhat It Checks
ChatGPTOpenAI's chatbot — checks if business is mentioned in responses
ClaudeAnthropic's AI assistant — checks for business citations
GeminiGoogle's AI — checks for business mentions in AI Overviews
GrokX/Twitter's AI — checks for business mentions

How Scans Work

Each scan sends a set of prompts to the AI platforms (e.g., "best plumber in San Diego") and checks whether the client's business name, website, or phone number appears in the AI-generated response. Scans are triggered:

  • Manually: Click "Run Scan" in the AI Visibility tab
  • Automatically: Via the alerts system when ai_visibility alerts are configured
  • Via API: POST to /api/alerts-check with type: 'ai_visibility'

Understanding Scores

  • Visibility Score: Percentage of platforms where the business was cited (e.g., 3/4 = 75%)
  • Citation Count: Total number of times the business appeared across all platforms
  • New Citations: Citations found in the latest scan that weren't present before
  • Lost Citations: Citations that disappeared since the last scan

Citation Thresholds

ScoreStatus
70%+Excellent — business is well-represented in AI search
40-69%Moderate — room for improvement
Below 40%Low — AI platforms are not citing this business

How to Improve AI Visibility

  1. Publish authoritative content — AI models cite well-structured, fact-rich pages
  2. Build citations — directory listings help AI models verify business information
  3. Get reviews — high review counts signal authority to AI systems
  4. Schema markup — structured data helps AI understand business details
  5. Answer common questions — FAQ pages with clear Q&A format are ideal for AI citation
  6. Keep NAP consistent — Name, Address, Phone must match across all platforms

LLM Page Scores

The tab also shows individual page scores — how well each page on the client's website is optimized for AI citation. Scores factor in content structure, schema markup, and topical authority.

Roadmap Tab

The Roadmap tab generates a month-by-month SEO plan for each client based on their current rankings, tier, and competition level.

How the Plan Is Calculated

The roadmap algorithm considers:

  • Current keyword positions — keywords far from page 1 need more aggressive strategy
  • Competition level — highly competitive niches require more content and citations
  • Client tier — determines the volume of deliverables per month
  • Industry benchmarks — typical timelines for ranking improvements in the client's vertical
  • Keyword difficulty — long-tail keywords improve faster than head terms

Monthly Phases

PhaseMonthsFocus
Foundation1-2Technical fixes, on-page optimization, initial citations, GBP setup
Growth3-4Content publishing, citation building, keyword targeting expansion
Acceleration5-6Link building, competitor analysis, GBP post cadence increase
Dominance7+Advanced strategies, AI visibility, review generation, maintenance

Reading the Timeline

Each month in the roadmap shows:

  • Recommended actions — specific tasks to complete (e.g., "Publish 4 blog posts targeting long-tail keywords")
  • Projected rank changes — estimated position improvements based on the strategy
  • Priority level — High, Medium, or Low for each action
  • Deliverable mapping — which tier deliverables map to each recommended action
  • Month 1-2: Fix technical SEO issues, optimize meta tags, submit to top directories, claim and optimize GBP
  • Month 3-4: Publish targeted blog content, build 20+ citations, start GBP posting cadence
  • Month 5-6: Analyze competitor strategies, increase content frequency, pursue link opportunities
  • Month 7+: Monitor and maintain rankings, expand keyword targets, focus on AI visibility

Timeline Accuracy

Roadmap projections are estimates based on industry averages. Actual results vary based on:

  • Competition intensity in the client's market
  • Quality and consistency of content published
  • Technical health of the client's website
  • Review velocity and GBP engagement
  • Algorithm updates from Google

Content Tab

The Content tab provides AI-powered content generation tools: blog brief creation, meta tag generation, and WordPress integration for direct publishing.

Blog Brief Generation

Click Generate Brief to create a content outline for a blog post. The brief includes:

  • Title suggestions — SEO-optimized headline options
  • Target keyword — primary keyword to optimize for
  • Outline — H2 and H3 heading structure
  • Word count recommendation — based on competitor content length
  • Internal linking suggestions — pages on the client's site to link to
  • Call-to-action — recommended CTA for the post

Briefs are generated using the content engine in src/lib/contentEngine.js which analyzes the client's keywords, industry, and existing content.

Meta Tag Generator

Generate optimized meta titles and descriptions for any page:

  • Meta Title: 50-60 characters, includes primary keyword, compelling for clicks
  • Meta Description: 150-160 characters, includes keyword, clear value proposition
  • Preview: See how the page will appear in Google search results

How to Use Generated Content

  1. Review the brief — adjust the outline to match client voice and goals
  2. Write or generate the full post — use the brief as a framework
  3. Optimize for the target keyword — ensure it appears in the title, first paragraph, and headings
  4. Add internal links — link to relevant pages on the client's site
  5. Publish — either through WordPress integration or manually

WordPress Integration

When a WordPress connection is configured (via the Schema tab's WP Connection panel), you can:

  • Push content directly to the client's WordPress site
  • Sync posts between ClawSignal and WordPress
  • Update meta tags on existing pages

The connection uses the WordPress REST API with application passwords for authentication. Configure it in the Schema tab under "WordPress Connection".

GBP Posts Tab

The GBP Posts tab manages Google Business Profile posts for each client. Posts appear on the client's Google Business listing and help drive local engagement.

Post Types

TypeUse CaseFeatures
What's NewGeneral updates, news, tipsText + optional image + CTA button
OfferPromotions, discounts, dealsText + coupon code + start/end dates
EventUpcoming events, webinarsText + event name + start/end dates
ProductProduct showcasesText + product name + price + image

Creating a Post

  1. Click New Post in the GBP Posts tab
  2. Select the post type (What's New, Offer, Event, Product)
  3. Write the post content (300 character limit recommended for best display)
  4. Add an image (recommended: 1200x900px, JPG or PNG)
  5. Select a CTA button type: Learn More, Book, Order, Call, Sign Up
  6. Set the status: Draft, Scheduled, or Ready to Publish

Scheduling

Set a scheduled date and time for the post. ClawSignal tracks the schedule and marks posts as ready when the time arrives. For auto-publishing, connect the client's GBP via OAuth.

Auto-Publish (GBP Connected)

When the client's Google Business Profile is connected via OAuth:

  • Posts with status "Ready" show a Publish to Google button
  • Clicking it calls the Google My Business API to publish directly
  • The post status updates to "Published" with timestamp
  • Any publish errors are displayed on the post card

Best Practices

  • Post 2-3 times per week for optimal GBP engagement
  • Include images — posts with images get significantly more views
  • Use CTAs — every post should have a clear call-to-action button
  • Keep it local — mention the service area and specific services
  • Vary content — mix updates, offers, and tips to keep the profile fresh
  • Track performance — use the GBP Performance tab to monitor post engagement

Schema Tab

The Schema tab generates structured data markup (JSON-LD) that helps search engines and AI platforms understand business information. Schema markup can improve rich snippet appearances and AI citations.

What Is Schema Markup?

Schema markup is code added to web pages that provides explicit information about the business — its name, services, location, reviews, events, and more. Google uses this to create rich results (star ratings, FAQs, service lists) in search.

Supported Schema Types

Schema TypeWhat It Describes
LocalBusinessCore business info: name, address, phone, hours, geo coordinates
FAQFrequently asked questions with answers — great for AI citations
ServiceIndividual services offered with descriptions and pricing
ReviewCustomer reviews and aggregate ratings
ProductProducts with pricing, availability, and descriptions
EventBusiness events with dates, locations, and ticket info
HowToStep-by-step guides — ideal for service businesses

Generating Schema

  1. Select the schema type from the dropdown
  2. Fill in the required fields (varies by type)
  3. Click Generate to create the JSON-LD code
  4. Copy the code and paste it into the website's HTML <head> section
  5. Or use the WordPress integration to push it directly

Implementation

Add the generated JSON-LD to your HTML:

<script type="application/ld+json">
{ generated schema JSON here }
</script>

Place it in the <head> of the page, or just before </body>. Each page should have schema relevant to its content.

Validation

After implementing schema, validate it using:

  • Google Rich Results Test: https://search.google.com/test/rich-results
  • Schema.org Validator: https://validator.schema.org

The validator will show any errors or warnings in your markup. Fix all errors before considering the implementation complete.

WordPress Connection

The Schema tab also includes the WordPress Connection panel. Connect to the client's WordPress site using:

  • WordPress URL (e.g., https://clientsite.com)
  • Username — WordPress admin username
  • Application Password — generated in WordPress under Users > Profile > Application Passwords

Once connected, you can push schema markup and content directly to the client's site.

Deliverables Tab

The Deliverables tab tracks monthly tasks for each client. Deliverables are auto-generated based on the client's tier at the start of each month.

Auto-Generated Deliverables by Tier

CategoryStarter ($249)Growth ($499)Pro ($999)
Blog Posts4/mo8/mo16/mo
GBP Posts4/mo8/mo12/mo
Keywords Tracked102550
Site Audits1/mo2/mo4/mo (weekly)
AI Visibility Scans1/mo2/mo4/mo (weekly)
Competitors Tracked2510
Content Briefs2/mo4/mo8/mo
Citation Submissions10/mo25/mo
Strategy Call15 min/mo30 min/mo
Monthly ReportIncludedIncludedIncluded

Marking Deliverables Complete

Click the checkbox next to any deliverable to mark it complete. The completion timestamp is recorded. You can also add details or notes to each deliverable.

How Completion Rate Affects Health Score

The client's health score factors in deliverable completion rate. A client with less than 60% of deliverables completed will see their health score decrease, potentially triggering at-risk alerts on the Retention dashboard.

Deliverables API

Deliverables can also be managed via the API:

  • GET /api/deliverables?client_id=xxx&month=2026-03-01 — list deliverables
  • POST /api/deliverables — add a deliverable
  • PUT /api/deliverables?id=xxx — update/toggle a deliverable

Audit Tab

The Audit tab shows website performance and SEO audit results powered by PageSpeed Insights and custom checks.

What It Checks

Each audit evaluates the client's website across four categories:

CategoryScore RangeKey Metrics
Performance0-100FCP, LCP, TBT, CLS, Speed Index
Accessibility0-100Alt text, ARIA, contrast, headings
SEO0-100Meta tags, robots.txt, sitemap, canonicals
Best Practices0-100HTTPS, image formats, caching, JS errors

Core Web Vitals Explained

MetricWhat It MeasuresGoodNeeds WorkPoor
FCP (First Contentful Paint)Time to first visible content< 1.8s1.8-3.0s> 3.0s
LCP (Largest Contentful Paint)Time to largest element rendered< 2.5s2.5-4.0s> 4.0s
TBT (Total Blocking Time)Time the main thread is blocked< 200ms200-600ms> 600ms
CLS (Cumulative Layout Shift)Visual stability during loading< 0.10.1-0.25> 0.25

Fixing Common Issues

  • Slow LCP: Optimize images (WebP format, lazy loading), minimize render-blocking CSS/JS
  • High CLS: Set explicit width/height on images and ads, avoid inserting content above the fold
  • High TBT: Reduce JavaScript execution time, defer non-critical scripts, code split
  • Poor FCP: Optimize server response time, use CDN, minimize critical CSS

Analysis Tab

The Analysis tab uses AI to generate strategic insights about the client's SEO performance.

What It Analyzes

The AI Brain reviews:

  • Keyword performance trends — which keywords are improving vs declining
  • Deliverable completion patterns — are tasks being completed on time
  • Competitor positioning — how the client compares to tracked competitors
  • Content gaps — topics competitors cover that the client doesn't
  • Technical health — recurring audit issues

How Recommendations Are Generated

The analysis engine in src/lib/seoAnalyzer.js processes all client data and produces:

  • Priority actions — ranked list of what to do next
  • Opportunity alerts — keywords close to page 1 that need a small push
  • Risk warnings — declining rankings or technical issues
  • Content recommendations — blog topics based on keyword gaps

Using Analysis Results

Review the AI Brain insights monthly. The recommendations are actionable — each one links to the relevant tab (Rankings, Content, Audit) where you can take action.

Competitors Tab

The Competitors tab tracks competing businesses and compares their SEO metrics against your client.

Adding Competitors

  1. Click Add Competitor in the Competitors tab
  2. Enter the competitor's business name and website URL
  3. Optionally add their Google Business Profile name
  4. ClawSignal begins tracking their rankings and online presence

You can track up to 5 competitors per client. The competitors field on the client record stores these as an array.

What Data Is Tracked

  • Keyword overlap — which keywords the competitor ranks for
  • Rank comparison — side-by-side ranking positions
  • Content volume — how often the competitor publishes
  • Review count and rating — GBP review comparison
  • Citation presence — directory listings comparison

Comparison Charts

The tab displays visual comparisons using charts:

  • Rank comparison bar chart — client vs competitor positions for shared keywords
  • Trend lines — how both are moving over time
  • Market share — estimated local search visibility share

Competitor Alerts

When enabled in the Alerts settings, ClawSignal can notify you when:

  • A competitor overtakes your client on a tracked keyword (competitor_overtake alert type)
  • A competitor publishes new content
  • A competitor's review count surpasses your client's

Notes Tab

The Notes tab provides an internal notepad for each client. Notes are visible only to dashboard users — never to clients via the portal.

Features

  • Rich text notes — add timestamped notes about client interactions
  • Activity log — automatic entries when key actions occur (keyword added, audit run, deliverable completed)
  • Search — find notes by keyword
  • Pinning — pin important notes to the top

Notes are stored in the notes table linked by client_id.


Reviews Tab

The Reviews tab monitors Google Business Profile reviews for the client.

What It Shows

  • Total review count and average star rating
  • Star distribution — breakdown of 1-5 star reviews
  • Individual review cards — reviewer name, rating, comment, date
  • Reply status — whether each review has been responded to

Review Syncing

When GBP is connected via OAuth, reviews sync automatically from the Google My Business API. Click Sync Reviews to trigger a manual sync. Reviews are stored in the gbp_reviews table.

AI Reply Suggestions

For each review, ClawSignal can generate a suggested reply:

  • Positive reviews (4-5 stars) — thank the reviewer, mention specific details
  • Neutral reviews (3 stars) — acknowledge feedback, offer to improve
  • Negative reviews (1-2 stars) — apologize, offer resolution, take offline

Response Best Practices

  • Respond within 24-48 hours — speed matters for reputation
  • Personalize — mention the reviewer's name and specific feedback
  • Stay professional — never argue or get defensive
  • Offer solutions — for negative reviews, provide a way to resolve
  • Keep it brief — 2-4 sentences is ideal

GBP Performance Tab

The GBP Performance tab displays Google Business Profile analytics and insights.

Metrics Explained

MetricWhat It Measures
ImpressionsHow many times the GBP listing appeared in search/maps
ClicksHow many users clicked on the listing
CallsPhone calls initiated from the GBP listing
Direction RequestsHow many users requested driving directions
Photo ViewsHow many times business photos were viewed

Trend Charts

The tab displays Recharts line graphs showing metrics over time. Filter by:

  • 7 days — recent snapshot
  • 30 days — monthly trends
  • 90 days — quarterly overview

Benchmarks

MetricGood (Monthly)Great (Monthly)
Impressions1,000+5,000+
Clicks100+500+
Calls20+50+
Direction Requests30+100+

Syncing Data

Click Sync Data to pull the latest insights from Google. Data is stored in the gbp_insights table with daily granularity.

Retention Tab

The Retention tab monitors client health, identifies churn risks, and enables proactive outreach with one-click email actions.

Health Score Calculation

Each client's health score (0-100) is calculated from multiple factors:

FactorWeightDescription
Deliverable Completion25%Percentage of monthly deliverables marked complete
Keyword Performance25%Are rankings improving, stable, or declining?
Activity Recency20%Days since last interaction or update
Audit Score15%Website technical health from latest audit
Review Velocity15%Are new reviews coming in regularly?

Score Ranges

ScoreStatusColor
70-100HealthyGreen
40-69Needs AttentionOrange/Yellow
0-39At-RiskRed

Clients with scores below 40 appear in the At-Risk Clients section at the top of the dashboard.

Recommendation Types

ClawSignal auto-generates recommendations based on client metrics:

RecommendationTriggerAction
Schedule a Call14+ days inactiveSends email with calendar booking link
Send Case StudyHealth score droppedSends SEO success story email
Ask for TestimonialRankings improved 30%+Sends Google review request email
Upsell OpportunityHealthy + Starter tier + activeSends tier comparison email
Win-Back CampaignClient is inactive/churnedSends re-activation email

Taking Action

Each recommendation is a clickable button that sends a pre-written, branded email to the client:

  1. Click the recommendation button
  2. The button shows "Sending..." while the email is being dispatched
  3. On success, it shows "Sent to [email]" with a green checkmark
  4. The action is logged in the alert_log table for tracking
  5. The Last Contacted column updates immediately

Last Contacted Column

Shows when the most recent outreach email was sent to each client. Dates are displayed as relative time (Today, Yesterday, 3d ago) or as the date for older entries.

Churned Clients Section

Below the main table, a separate section shows inactive clients (is_active = false) with Win-Back Campaign buttons. These send emails highlighting what the client has missed since leaving.

Outreach Logging

Every retention action is logged to the alert_log table with:

  • alert_type: retention_case_study, retention_testimonial, retention_schedule_call, retention_upsell, or retention_winback
  • recipient_email: The client's contact email
  • status: sent, failed, or queued
  • metadata: Action type and trigger source

Settings

The Settings page configures integrations, connections, and notification preferences.

Google Search Console (GSC) Connection

GSC provides real keyword ranking data directly from Google. To connect:

  1. Create OAuth credentials in Google Cloud Console (https://console.cloud.google.com/apis/credentials)
  2. Enable the Search Console API in your Google Cloud project
  3. Add authorized redirect URI: https://clawsignal.co/settings
  4. Set environment variables:
  5. Add test users in OAuth consent screen (required while app is in testing mode)
  6. Click Connect GSC in Settings — you'll be redirected to Google to authorize
  7. After authorization, ClawSignal stores the tokens and begins syncing data

What GSC Provides

  • Average position for each keyword
  • Click and impression data for the website
  • Search query data — actual queries people use to find the site
  • Indexing status — which pages are indexed

Sync Now Button

After connecting, click Sync Now to manually pull the latest GSC data. The sync fetches the last 28 days of search analytics and updates keyword positions.


Google Business Profile (GBP) Connection

GBP integration enables auto-publishing posts, syncing reviews, and pulling performance insights.

  1. Create OAuth credentials in Google Cloud Console
  2. Enable the My Business API and Business Profile Performance API
  3. Add authorized redirect URI: https://clawsignal.co/dashboard
  4. Set environment variables:
  5. Add test users in the OAuth consent screen
  6. Connect from a client's detail page — GBP Connection panel

What GBP Grants Access To

FeatureOAuth RequiredManual OK
Auto-publish postsYesNo
Sync reviewsYesNo
Pull insights/analyticsYesNo
Track reviews manuallyNoYes
Create post draftsNoYes

Alert Configuration

Configure automated alerts from the Alerts page:

Alert TypeWhat It Monitors
Ranking DropKeywords that drop 5+ positions
AI VisibilityChanges in AI platform citations
Monthly ReportScheduled monthly performance reports
Weekly DigestWeekly summary email for internal use
New ReviewNew GBP reviews

Each alert can be enabled/disabled per client. Set recipient email and threshold values in the alert configuration form.


Stripe Billing Setup

ClawSignal integrates with Stripe for payment tracking:

  1. Set VITE_STRIPE_PUBLISHABLE_KEY and STRIPE_SECRET_KEY in environment variables
  2. Configure the Stripe webhook endpoint: https://clawsignal.co/api/stripe-webhook
  3. The webhook tracks payment events and updates client billing records

Notification Preferences

The notification bell in the dashboard header shows recent alerts. Alerts are fetched from the alert_log table and can be marked as read individually or all at once.

Client Portal

The Client Portal gives clients a read-only view of their SEO performance. Each client gets a unique access URL — no login required.

Generating Portal Access Tokens

From any client's detail page, find the Portal Access panel at the top:

  1. Click Generate Portal Link
  2. A unique token is created and stored in the client_portal_access table
  3. The portal URL format: https://clawsignal.co/portal/{token}
  4. Share this link with the client via email

Managing Portal Access

  • Toggle access: Enable or disable the portal link without deleting it
  • Revoke access: Permanently delete the token — the link stops working
  • Regenerate: Create a new token (invalidates the old one)

What Clients Can See

FeatureVisibleHidden
Keyword rankingsYes
Rank change historyYes
Monthly reportsYes
Deliverable progressYes
Audit scoresYes
GBP reviewsYes (if connected)
GBP insightsYes (if connected)
Client notesHidden
Billing/pricingHidden
Other clientsHidden
Alert configurationsHidden
Admin settingsHidden

Client GBP Self-Service

If the portal is enabled, clients can connect their own Google Business Profile:

  1. Client visits their portal URL
  2. Clicks Connect Your GBP in the Google Business Profile section
  3. Completes the Google OAuth flow
  4. ClawSignal stores the tokens and begins syncing

This allows clients to authorize GBP access without sharing credentials.

Report Access

The portal displays the latest monthly report for the client. Reports include:

  • Performance summary (keywords tracked, avg rank change, tasks completed)
  • Top keyword rankings table
  • Deliverable completion status
  • Audit grade
  • Review count and average rating

Reports can also be downloaded as PDF from the portal.

API Reference

ClawSignal exposes a REST API via Vercel Serverless Functions. All endpoints are at https://clawsignal.co/api/{endpoint}.

Authentication

All API endpoints require authentication via the Authorization header:

Method 1: API Token (recommended for agents and scripts)

Authorization: Bearer your-clawsignal-api-token

Set CLAWSIGNAL_API_TOKEN in environment variables. This is a static token for server-to-server communication.

Method 2: Supabase JWT (used by the frontend)

Authorization: Bearer eyJhbGciOiJS...

The frontend automatically attaches the user's Supabase session JWT via the callAPI() helper.

Error Codes

StatusMeaning
200Success
400Bad request — missing or invalid parameters
401Unauthorized — invalid or missing auth token
404Resource not found
405Method not allowed
500Server error

Client Management

GET /api/clients — List all clients

curl -H "Authorization: Bearer $TOKEN" https://clawsignal.co/api/clients

Query params: ?active=true or ?active=false

POST /api/clients — Create a client

curl -X POST -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"business_name":"Acme Plumbing","tier":"starter","contact_email":"owner@acme.com"}' \
  https://clawsignal.co/api/clients

PUT /api/clients?id=uuid — Update a client


Keywords

GET /api/keywords?client_id=uuid — List keywords for a client

POST /api/keywords — Add a keyword

curl -X POST -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"client_id":"uuid","keyword":"plumber san diego","current_rank":15}' \
  https://clawsignal.co/api/keywords

PUT /api/keywords?id=uuid — Update keyword rank

DELETE /api/keywords?id=uuid — Remove a keyword


Deliverables

GET /api/deliverables?client_id=uuid&month=2026-03-01 — List deliverables

POST /api/deliverables — Add a deliverable

PUT /api/deliverables?id=uuid — Toggle/update a deliverable


Audits

GET /api/audits?client_id=uuid — List audits for a client

POST /api/audits — Run or store an audit


Reports

GET /api/reports?client_id=uuid — List reports

POST /api/reports — Generate a report


Alerts

POST /api/alerts-check — Check for alert conditions

curl -X POST -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"type":"ranking_drop"}' \
  https://clawsignal.co/api/alerts-check

Alert types: ranking_drop, ranking_milestone, new_review, negative_review, audit_drop, deliverable_overdue, portal_inactive, gbp_post_needed, competitor_overtake


Email Reports

POST /api/email-report — Log/send an email report

curl -X POST -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"clientId":"uuid","reportData":{"month":"March 2026"},"recipientEmail":"client@example.com"}' \
  https://clawsignal.co/api/email-report

Retention Actions

POST /api/retention-action — Send retention outreach email

curl -X POST -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"clientId":"uuid","actionType":"case_study"}' \
  https://clawsignal.co/api/retention-action

Action types: case_study, testimonial, schedule_call, upsell, winback


Newsletter

POST /api/newsletter-send — Send weekly digest to all subscribers

POST /api/newsletter-subscribe — Subscribe an email

GET /api/newsletter-unsubscribe?email=xxx — Unsubscribe


GSC Integration

POST /api/gsc-auth — Exchange OAuth code for tokens

POST /api/gsc-auth?action=refresh — Refresh access token

POST /api/gsc-auth?action=disconnect — Disconnect GSC

POST /api/gsc-sync — Sync keyword data from GSC


GBP Integration

POST /api/gbp-auth — Exchange OAuth code for GBP tokens

POST /api/gbp-publish — Publish a post to Google

POST /api/gbp-reviews?action=sync — Sync reviews from Google

GET /api/gbp-reviews?clientId=uuid — Get synced reviews

POST /api/gbp-insights?action=sync — Sync performance insights

GET /api/gbp-insights?clientId=uuid — Get synced insights


Other Endpoints

GET /api/rss — RSS 2.0 feed of published blog posts

GET /api/stats — Dashboard statistics

POST /api/stripe-checkout — Create Stripe checkout session

POST /api/stripe-webhook — Handle Stripe payment events

GET /api/docs.json — Machine-readable API documentation (JSON)


Code Examples

JavaScript (fetch)

const res = await fetch('https://clawsignal.co/api/clients', {
  headers: { Authorization: 'Bearer ' + API_TOKEN },
});
const clients = await res.json();

Python (requests)

import requests
headers = {"Authorization": f"Bearer {API_TOKEN}"}
res = requests.get("https://clawsignal.co/api/clients", headers=headers)
clients = res.json()

cURL

curl -H "Authorization: Bearer $CLAWSIGNAL_API_TOKEN" \
  https://clawsignal.co/api/clients

Rate Limits

Vercel Serverless Functions have default rate limits based on your plan. For most operations, there is no explicit rate limit beyond Vercel's infrastructure limits. However, avoid sending more than 60 requests per minute to prevent throttling.

Registering as an Agent

AI agents (like OpenClaw agents) can interact with ClawSignal by:

  1. Obtaining a CLAWSIGNAL_API_TOKEN from the Settings page
  2. Using the API endpoints documented above
  3. Reading the machine-readable docs at /api/docs.json
  4. Following the authentication pattern (Bearer token in headers)

Bulk Operations

For bulk keyword imports, use the Bulk Import page in the dashboard or send multiple POST requests to /api/keywords. There is no dedicated bulk endpoint — process items sequentially or in small batches.

Automation Scripts

ClawSignal includes shell scripts for automated SEO operations. These are designed to run via cron jobs or be triggered manually by AI agents.

bravo-newsletter.sh

Sends the weekly newsletter digest to all active subscribers.

Location: scripts/bravo-newsletter.sh

What it does: - Calls POST /api/newsletter-send with Bearer token authentication - Fetches the latest 5 published blog posts from the database - Sends personalized emails to all active subscribers via Resend - Each email includes individual unsubscribe links

Configuration:

export CLAWSIGNAL_API_TOKEN="your-token"
export CLAWSIGNAL_BASE_URL="https://clawsignal.co"

Usage:

./scripts/bravo-newsletter.sh

Cron schedule: Fridays at 10:00 AM

0 10 * * 5 /path/to/scripts/bravo-newsletter.sh

bravo-daily.sh

Runs daily SEO checks and maintenance tasks.

What it does: - Checks for ranking drops across all clients - Monitors for new GBP reviews - Checks deliverable deadlines - Triggers alerts for any issues found

Cron schedule: Daily at 6:00 AM

0 6 * * * /path/to/scripts/bravo-daily.sh

bravo-weekly.sh

Runs weekly analysis and reporting tasks.

What it does: - Generates weekly digest email for internal review - Runs AI visibility scans across all clients - Updates competitor data - Compiles weekly performance summaries

Cron schedule: Mondays at 7:00 AM

0 7 * * 1 /path/to/scripts/bravo-weekly.sh

bravo-monthly.sh

Runs monthly reporting and deliverable generation.

What it does: - Generates monthly reports for all active clients - Auto-creates next month's deliverables based on tier - Sends monthly report emails to configured recipients - Archives previous month's data

Cron schedule: 1st of each month at 8:00 AM

0 8 1 * * /path/to/scripts/bravo-monthly.sh

bravo-blog-engine.sh

Generates and publishes blog content for clients.

Parameters: - --client-id — target client UUID - --type — content type: blog, listicle, how-to, comparison, local-guide - --keyword — target keyword for the post - --publish — auto-publish to WordPress (requires WP connection)

Content types: - blog — standard SEO blog post (800-1200 words) - listicle — "Top N" list format - how-to — step-by-step guide - comparison — service/product comparison - local-guide — area-specific guide for local SEO


bravo-x-posts.sh

Creates and schedules social media posts for X (Twitter).

Categories: - SEO tips and insights - Client success highlights (anonymized) - Industry news commentary - Tool and feature announcements

Scheduling: Posts are queued and published at optimal times (9 AM, 12 PM, 3 PM, 6 PM).


bravo-gbp-posts.sh

Creates Google Business Profile posts for clients.

Post types: What's New, Offer, Event, Product

Scheduling: Creates posts in draft status. If GBP is connected via OAuth, can auto-publish.


bravo-citations.sh

Submits business information to online directories.

Directory list includes: - Google Business Profile - Yelp - Facebook - Apple Maps - Bing Places - Yellow Pages - BBB - Nextdoor - Angi (Angie's List) - Thumbtack - Industry-specific directories

Verification: After submission, the script checks each directory for listing confirmation and logs the status.


bravo-local-outreach.sh

Manages local link building and outreach campaigns.

Steps: 1. Identifies local websites, blogs, and news outlets in the client's target area 2. Generates personalized outreach email templates 3. Tracks outreach status (sent, opened, replied, linked)

Configuration: Set target area, industry, and outreach volume in the script parameters.


Cron Schedule Reference

ScriptScheduleTime
bravo-daily.shDaily6:00 AM
bravo-weekly.shMondays7:00 AM
bravo-monthly.sh1st of month8:00 AM
bravo-newsletter.shFridays10:00 AM
bravo-blog-engine.shAs neededManual/agent-triggered
bravo-x-posts.shDaily9 AM / 12 PM / 3 PM / 6 PM
bravo-gbp-posts.sh2-3x per weekPer client schedule
bravo-citations.shMonthlyAfter bravo-monthly.sh
bravo-local-outreach.shBi-weeklyManual/agent-triggered

All cron jobs should be configured on the server running the ClawSignal agent. Use crontab -e to add entries.