Content Agent Dashboard
@rocketeffect Β· industry monitoring + content planning
Top keywords
| Keyword | Mentions | Sources | First seen | Last seen |
|---|
Best time to post
Two different questions: when engagement is actually highest (left) vs. when posts currently go out (right) β compare them to spot gaps, like posting a lot at a low-engagement hour.
Avg engagement by time slot
Posting frequency (what's actually happening)
Best time slots to post (by avg engagement, min. 2 posts)
| Day | Hour | Avg engagement | Posts in this slot |
|---|
Content pillars
Avg engagement of posts containing each keyword vs the overall average β keywords appearing in fewer than 3 posts are excluded as noise.
| Keyword | Posts | Avg engagement | vs. overall avg |
|---|
Share of voice
% share of the selected metric among all tracked sources, last 90 days.
Highlights & anomalies
Posts whose engagement is a statistical outlier vs. that account's own history (|z-score| β₯ 2).
| Source | Platform | Caption | Engagement | Z-score | Posted | Link |
|---|
Totals (all platforms combined)
Boxes highlight the best (green) and weakest (red) source per metric β yellow marks the middle when comparing 3+.
Per-platform breakdown
| Source | Platform | Followers | Posts | Avg views/post | Avg engagement rate | Top post views |
|---|
Meta, Google, LinkedIn β scraped via Apify. Bright Data has no ad-transparency endpoint for any of these (checked directly against their own documented endpoint lists) β single-provider by necessity, not by choice. X, TikTok, and Pinterest were investigated (real live-tested actors, not just docs) and found not currently viable β see the 2026-08-19 entry in FEATURE_LOG.md for the per-platform findings. Snapchat has no general ad library at all, only a political-ads archive.
Advertiser profiles
Every business we're tracking for ad monitoring. Page-transparency detail (about/locations/category/etc.) comes from Meta only, and only when disclosed β Google/LinkedIn don't expose an equivalent dataset.
| Source | About | Page since | Rebrands | Admin locations | FB likes | Category | Verified | Lists | Tags |
|---|
Group ads into named Lists β pin them manually, or write a rule so matching ads are added (and removed) automatically as new ones come in.
New list
Rule (optional β leave empty for a purely manual list)
Members
Group advertisers into named Lists β pin them manually, or write a rule so matching advertisers are added (and removed) automatically as data changes.
New list
Rule (optional β leave empty for a purely manual list)
Members
Build campaign ideas: create a project, pull ads in from an existing Ad List or add them from the Ads tab (bulk or one-off), and paste one or more URLs β an ad's own page or a social post β to capture as concepts. Imports run in the background so you can keep working while they process. YouTube/Vimeo/TikTok/X get real captured content for free; Instagram post/reel URLs use a paid lookup (a fraction of a cent each) for a real caption/image/video; other login-gated platforms may only capture the link itself.
| Name | Type | Category | Platforms | Total posts | Klout |
|---|
Add business/person
Platform accounts
Employment history
Everything we know
Per-platform breakdown
| Platform | Followers | Posts | Avg views/post | Avg engagement rate | Top post views |
|---|
Trends over time
Post frequency & best times to post
Avg engagement by time slot
Posting frequency
Recent posts
Capability Explorer
Nothing here spends money until you confirm a figure.Paste a profile or post URL
Use a sample target instead β real accounts we already track, free to explore
What do you want?
What it costs
| Data set | Actor | Asked for | Billed units | Rate / unit | Run fee | Cost |
|---|---|---|---|---|---|---|
| Total for one run | $0.0000 | |||||
If you ran this regularly
Run it
Results
Extract
Read out of text we already hold, so this is free and can be re-run whenever the keyword list changes. Counted per place it was found: a booking link in the bio is the venue's own, the same link in a comment is somebody else recommending them.
API Costs
Budgets
By provider
By platform
Recent usage
Industry-relevance lookups
Bio-keyword matching runs automatically (free, no risk). These two are optional and off by default β see project notes on why.
Transcription
Default per platform β overridden by a per-account setting in "Businesses & People" (see sidebar) if set.
Data providers
Primary provider is tried first for each pull; if it fails (or a budget is exceeded), the fallback is used instead. Based on the live-tested cost/coverage comparison β see the published comparison doc for why each default was picked.
API keys & credentials
Keys are stored as plain settings values in this project's own Postgres database, same as every other setting on this page β not a separate secrets vault. This is fine for a single-operator internal tool; treat this page itself as sensitive. Some integrations (e.g. inbox monitoring) run as MCP servers configured in your Claude Code environment rather than here β those aren't stored on this page, this section is only for keys the dashboard's own backend calls directly.
Dashboard API access (protects this server's own /api endpoints from external callers)
Not set by default β anyone who can reach this server can call the API unauthenticated (fine on a private machine/network). Set a key to require it from any caller that isn't this same dashboard page: external clients must send it as an X-API-Key header. Requests from /api/v1/... are accepted the same as /api/... β a stable versioned alias for external integrations. Full endpoint reference: /api-docs (interactive Swagger UI) or /api/openapi.json (raw spec).
Scraping infrastructure
Official platform APIs (not yet used for scraping in V1 β see the Ad Monitoring / Data Platform docs; store keys here as they're obtained so V2 can pick them up with no re-work)
Other credentials
Anything not covered above β a new ad network, an MCP-adjacent service token, etc.
| Name | Key | Notes |
|---|
Your accounts
The accounts that are yours on each platform β used to mark posts/stats as "you" everywhere in the dashboard.
| Source | Platform | Handle | Followers |
|---|
Keywords & phrases
Phrases to watch for in profiles, posts and comments. Each is typed, because finding an attraction tells you what a venue offers while finding a software name tells you what it runs on. Detection is free — it runs against text already stored, so no provider call is made.
| Phrase | Type | Looks in | Match | Active |
|---|
Categories
| Name | # sources |
|---|
Businesses & people are now managed from their own section β see "Businesses & People" in the sidebar.
Ad Tags
| Name | # ads |
|---|
Advertiser Tags
| Name | # advertisers |
|---|
Speakers (video transcripts)
Diarization has no notion of identity across videos β the same real person can show up as a separate "Unknown speaker" in each video. Rename them here, then select two or more and merge them into one.
| Name | Segments | Videos | Sample line |
|---|