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 ($79/mo), Growth ($149/mo), or Agency ($229/mo)
Monthly PriceWhat you charge this client per month

Understanding Tiers

Each tier determines account capacity and the measured work queue:

PlanWebsitesTeam MembersPrice
Starter11$79/mo
Growth33$149/mo
Agency55$229/mo

Agency website add-ons are $45/mo per website. A website add-on does not add a team-member seat. All plans measure ChatGPT, Claude, Gemini, and Grok; Google AI Overviews are tracked separately when observed. Google Business Profile automation is unavailable until Google approves ClawSignal's API access.

Generated content starts as governed work. Publication requires the configured evidence, quality, canary, verification, and rollback gates; the system does not promise that every generated item will publish.

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 review, citations to verify, and technical fixes to consider. Recommendations are based on available observations and never guarantee a ranking or citation outcome.

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".

Google Business Profile

Google Business Profile automation is not currently available. ClawSignal is waiting for Google to approve API access.

Current State

  • OAuth initiation and token refresh are blocked.
  • Review and performance sync are blocked.
  • Post drafting and publishing are blocked.
  • Review-response drafting and publishing are blocked.
  • Historical review or insight rows can remain visible when they already exist.
  • Disconnect remains available so stored credentials can be removed safely.

Blocked operations return gbp_api_approval_pending. This is an availability state, not a connection error and not evidence that a customer configured something incorrectly.

After Approval

The integration must pass an approval-day verification before it is marked available. That verification includes OAuth, location selection, read sync, a controlled write, evidence capture, error handling, disconnect, and rollback checks. Plan volumes and live controls should appear only after that release gate passes.

Until then, manage the business profile directly in Google. ClawSignal does not claim that it is publishing posts, syncing reviews, replying to reviews, or importing performance data.

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.

Plan Capacity

PlanWebsitesTeam MembersPrice
Starter11$79/mo
Growth33$149/mo
Agency55$229/mo

Agency website add-ons cost $45/mo each and do not add team-member seats. The active work queue is derived from the canonical runtime tier configuration. Google Business Profile deliverables remain unavailable while Google API approval is pending.

Generated items are not equivalent to completed or published work. The Deliverables tab should preserve draft, approved, applied, verified, skipped, failed, and unmeasured states rather than collapsing them into a single completion count.

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 record their public business-profile name as a note
  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
  • Public review count and rating — only when a dated source is available
  • 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
  • Share among tracked competitors — never labeled as total market 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 can display historical Google Business Profile review rows. New Google review sync is unavailable while API approval is pending.

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

Automatic and manual review sync return gbp_api_approval_pending until Google approves ClawSignal API access. Existing rows in gbp_reviews remain historical evidence and should show their source dates.

AI Reply Suggestions

After Google approval and release verification, ClawSignal may generate a governed 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 can display dated historical rows. New performance sync is unavailable while Google API approval is pending.

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

Syncing Data

Sync requests return gbp_api_approval_pending. Existing rows in gbp_insights remain readable with daily dates; the UI must not present them as current when no new sync has occurred.

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

Google Business Profile automation is unavailable while Google API approval is pending. Connection, token refresh, review sync, insight sync, post publishing, and review replies return gbp_api_approval_pending before any Google call.

Do not ask customers to connect GBP yet. Existing credentials can still be disconnected and historical rows can remain readable. OAuth controls and plan volumes should be enabled only after the approval-day verification passes.

What GBP Grants Access To

FeatureOAuth RequiredManual OK
Disconnect stored accessExisting connectionYes
Read historical stored rowsNo new OAuthYes
Connect or refreshBlocked pending approvalNo
Sync reviews or insightsBlocked pending approvalNo
Draft or publish profile contentBlocked pending approvalManage directly in Google

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 ReviewHistorical GBP review rows only while API approval is pending

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
Historical GBP reviewsWhen stored
Historical GBP insightsWhen stored
Client notesHidden
Billing/pricingHidden
Other clientsHidden
Alert configurationsHidden
Admin settingsHidden

Google Business Profile State

Client self-service connection is unavailable while Google API approval is pending. The portal must label this state explicitly and must not invite a customer into an OAuth flow that cannot complete. Existing credentials can still be disconnected; already-stored historical rows may remain visible with their observation dates.

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

Google approved Business Profile API access on 2026-07-27. Write, OAuth, and sync operations are available on a connected profile. If the availability gate is ever closed on our side, those operations return HTTP 503 with code: "gbp_api_approval_pending" (a legacy code string kept stable for API consumers) before any external Google call. Disconnect and reads of historical stored rows remain available.

POST /api/gbp-auth — Unavailable; OAuth exchange is blocked pending approval

POST /api/gbp-auth?action=disconnect — Remove an existing stored connection

POST /api/gbp-publish — Unavailable pending approval

POST /api/gbp-reviews?action=sync — Unavailable pending approval

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

POST /api/gbp-insights?action=sync — Unavailable pending approval

GET /api/gbp-insights?clientId=uuid — Get historical stored 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 and Safety

ClawSignal uses authenticated Vercel cron routes and a durable client-job queue. The deployed schedule in vercel.json is authoritative; local shell-script examples are not the production scheduler.

Execution Flow

  1. A scheduler measures an eligible client or creates a bounded work candidate.
  2. A dispatcher writes an idempotent client_jobs row.
  3. A queue drain leases the job and invokes the registered handler.
  4. The handler records evidence, a result, or an explicit skip/failure reason.
  5. Publication-capable work must pass the applicable approval, quality, canary, and rollback gates.
  6. Verification and remeasurement are stored separately from the action.

Core Schedules

The active schedule includes GSC collection, website audits, AI visibility checks, deliverable reconciliation, content-corpus checks, customer approval notices, bounded on-page writers, rollback monitoring, and monthly reporting. Frequencies can change with the deployed configuration, so the operations UI and vercel.json should be used when an exact run time matters.

Authentication

Cron requests require Authorization: Bearer <CRON_SECRET>. Admin routes require an authenticated admin actor. Customer-facing routes enforce client ownership or a scoped portal token.

Never place service-role keys, OAuth client secrets, or cron secrets in browser code or public documentation.

Content Generation

Generic net-new generation is frozen by default. The allowed workloads are:

  • existing-corpus improvement;
  • measured-gap drafts;
  • measurement and evaluation work.

Direct generation endpoints create drafts only. A publish request must use the governed publication path and satisfy its evidence contract.

Google Business Profile

Google Business Profile OAuth, sync, drafting, and publishing are unavailable while Google API approval is pending. Schedulers return the stable reason gbp_api_approval_pending, and Google write boundaries reject the operation before making an external call. Historical rows may remain readable, and disconnect remains available for credential safety.

Failure Semantics

  • succeeded: the contracted result was produced.
  • succeeded_empty: the operation ran successfully and found no result.
  • skipped: a named eligibility or availability gate prevented work.
  • failed: a retryable or permanent error was recorded.
  • too_recent or missing: an observation window cannot yet be measured.

An empty result is never treated as silent success, and missing evidence is never converted to zero.

Local Verification

Use the repository scripts for deterministic checks:

npm test
npm run build
npm run content:inventory
npm run content:links
npm run content:topics
npm run benchmark:optimization
npm run evaluate:brand-voice

These commands build or verify artifacts; they do not by themselves authorize a production migration, customer canary, paid model run, or public claim.