Dashboard Overview
Brand Status
Cost — estimate per scoring: prompts × Cloro rate (Claude when active)
Visibility by Engine
Scheduled Updates
Yesterday's Updates
-
Today's Updates
-
Tomorrow's Updates
-
Missed Scheduled Updates
Brands
Users
| Name | Signup | Plan | Plan Name | Type | Keywords Used | Joined | Last Active | Actions |
|---|
Brand Details
Statistics
Topics
Topic Details
Prompts
Topics
| Brand | Topic Name | Status | Prompts | Progress |
|---|
Jobs Monitor
| Customer | Brand | Topic | Keyword / Prompt | Status | Last Updated | Action |
|---|
Failed Prompts
Prompts where at least one engine's latest run failed. Review the failed engines, then refresh only those.
LeadList
| Name | Company | Source | Created |
|---|
Queue Health
Live view of what the backend is processing right now. These are in-flight jobs, which aren't stored in the database.
Brands scoring now
Visibility scoring queue
Other queues
| Queue | Active | Waiting | Delayed | Failed |
|---|
Cron Monitor
Audit trail of the backend refresh cron (runs every 15 min) plus live refresh health. A brand whose run stays open for hours means results aren't coming back — the early warning for "stuck brand" before the 24h sweep force-closes it.
Refresh health — brands with open runs
| Brand | Progress (this run) | Open | Failed | Oldest open run | Status | |
|---|---|---|---|---|---|---|
| Loading... | ||||||
Cron run history (latest 50 ticks)
| Ran At | Due | Enqueued | Brands Enqueued | Billing Skips | Swept Runs | Rescued Brands | Duration | Error |
|---|---|---|---|---|---|---|---|---|
| Loading... | ||||||||
"Swept Runs" = prompts force-closed after 24h without results. "Rescued Brands" = sweep + catch-all cycle advances. Any non-zero value here means a delivery problem upstream — investigate before it costs credits.
Cloro Webhooks
Every webhook Cloro sent us — accepted or rejected — straight from the scraper's audit log. A healthy system shows a steady stream of "accepted / promoted" rows; rejected rows or a long silence while tasks are running means the webhook path is broken and finalization is falling back to slow polling.
Webhook log
| Received At | Brand | Topic | Prompt | Engine | Cloro Status | Outcome | Promote | Credits | Error |
|---|---|---|---|---|---|---|---|---|---|
| Loading... | |||||||||
Click a row for full details (task ID, idempotency key, prompt ID, user, location). "Promote" = what happened to the waiting poll job: promoted means the webhook finalized the task instantly; job_not_found usually means the poller already finalized it (late webhook — brand/prompt context is unavailable because the job is gone); rejected outcomes never reach the queue at all.
BullMQ Queues
The raw BullMQ boards, embedded: inspect, retry, or clean individual jobs. Backend = visibility/exports/emails queues; Scraper = per-engine Cloro queues + the render queue (where scrape:done delivery lives).