Manual, pulse, and deep scans
The three scan rhythms that drive every dashboard number — what each one does, when it runs, and what counts toward your tier limits.
A scan is one buyer question sent through every AI engine on your plan, with the answers persisted into your scan history. Three different rhythms produce scans, and the tier limits below cap how many you can run in a given window.
The three rhythms
| Rhythm | Triggered by | Cadence | What it covers |
|---|---|---|---|
| Manual | You — clicking Run scan in the dashboard or Re-run audit on the hero | On demand | The queries you select in the dialog (one credit per query). |
| Daily pulse | Cron — every UTC day at 04:00 | Daily | Your monitored queries with daily_pulse cadence. |
| Weekly deep | Cron — every Monday at 04:00 UTC | Weekly | All monitored queries with weekly_deep cadence. |
All three produce the same kind of scan_results rows. The difference
is who kicks them off and how the dashboard groups them visually
(see Citation search → day + scan-run grouping).
What counts as one credit
For manual scans we charge one credit per selected query. Engines included in your plan are not billed separately — running a query through ChatGPT + Perplexity + Google AI Mode costs one credit, not three.
So if you click Run scan with 5 queries selected, that's 5 credits out of your daily allowance. If you select 1 query and uncheck two engines, that's still 1 credit (with fewer engines per scan_result).
Tier limits at a glance
| Plan | Manual scans | Window | Reset |
|---|---|---|---|
| Free | 5 | per calendar week (UTC) | Monday 00:00 UTC |
| Pro | 5 | per UTC day | Midnight UTC |
| Business | 10 | per UTC day | Midnight UTC |
Free plan also has no automated cron — every scan you ever run on Free is manual. Paid plans get the daily pulse and weekly deep crons in addition to the manual budget above.
When to use which
Use a manual scan right after a meaningful change:
- You shipped a new landing page or pricing tier — run a scan against the questions most likely to surface that page.
- You changed positioning copy on the homepage — manual scan the next day to see if the framing carries through.
- A competitor publicly launched something — manual scan to capture the new baseline before AI engines start citing them.
Trust the daily pulse for steady visibility tracking without
clicking anything. It runs against the subset of monitored queries you
flagged with daily_pulse cadence — typically your highest-priority
"is the brand visible at all" questions.
Trust the weekly deep scan for the long-form picture. It runs every monitored query (including the lower-priority "exploratory" ones) and is the snapshot the Overview trend chart anchors on each Monday.
How monitored cadences work
Each saved query has a cadence flag set when you mark it as monitored:
daily_pulse— included in both the daily cron AND the weekly deep scan. Use sparingly; this is your highest-signal subset.weekly_deep— included only in the weekly Monday cron. Lower priority, exploratory questions go here.on_demand— never runs automatically; only fires when you click Run scan in the manual dialog.
The cadence dropdown is on each query row in /dashboard/questions.
You can change it any time; the next cron run picks up the new value.
Reading "what triggered this scan?" in Reports
Every scan_result is tagged with triggered_by (manual, cron,
on_demand_action) and a scan_mode (pulse or deep). The Reports
page surfaces both as the icon and label on each scan run card:
- ✋ Manual scan — you clicked the button.
- 📡 Daily pulse scan — overnight cron.
- ✨ Weekly deep scan — Monday cron.
A "scan run" in the Reports UI groups every scan_result that started within five minutes of the same trigger and mode — so a single Run scan on 15 monitored questions renders as one card showing the time range and the engine pills, not 15 separate rows. Details: Citation search.
Common questions
"My manual scan returned 'rate limit reached'." You've used your plan's allowance for the current window. Free resets Monday 00:00 UTC; paid plans reset daily at midnight UTC. The error message tells you the exact reset time.
"Will the cron run if I'm logged out / asleep / offline?" Yes. Crons run server-side on Vercel's schedule independent of your session.
"What happens if a scan fails mid-batch?" Each query is its own
scans row — partial completion is the norm. The successful queries
land in your history; the failed ones surface a structured log entry
in our Vercel logs (no user-facing notification today).
"Can I trigger a 'scan everything right now'?" Use Run scan with all queries selected, capped at your daily credit budget. Above the cap, run again the next UTC day.