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.

5 min read

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

RhythmTriggered byCadenceWhat it covers
ManualYou — clicking Run scan in the dashboard or Re-run audit on the heroOn demandThe queries you select in the dialog (one credit per query).
Daily pulseCron — every UTC day at 04:00DailyYour monitored queries with daily_pulse cadence.
Weekly deepCron — every Monday at 04:00 UTCWeeklyAll 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

PlanManual scansWindowReset
Free5per calendar week (UTC)Monday 00:00 UTC
Pro5per UTC dayMidnight UTC
Business10per UTC dayMidnight 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.