Manual, pulse, and deep scans

The scan rhythms that drive every dashboard number — what each one does, when it runs, and what counts toward your tier limits.

8 min read

A scan is one buyer question sent through every AI engine on your plan, with the answers persisted into your scan history. Four different rhythms produce scans, and the tier limits below cap how many you can run in a given window.

The rhythms

RhythmTriggered byCadenceWhat it covers
ManualYou — clicking Run scan in the dashboard or Re-run audit on the heroOn demandThe prompts you select in the dialog (one credit per prompt).
Weekly pulseCron — wakes daily at 08:00 UTC, but each monitored prompt is only due once every 168 hoursWeekly, per promptYour monitored prompts, each measured several times in a run and averaged.
Hero pinThe same pulse cron, for prompts you flagged as HeroDaily (pinned to 24h, not floored)Up to your plan's Hero slots — one measurement each.
Weekly deepCron — every Monday at 09:00 UTCWeeklyAll monitored prompts with weekly_deep cadence.

All of them 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 prompt. Engines included in your plan are not billed separately — running a prompt through every engine on your plan (up to five: Perplexity, ChatGPT, Google AI Mode, Gemini, and Google AI Overview) still costs one credit, not one per engine.

So if you click Run scan with five prompts selected, that's five credits out of your allowance for the window. If you select one prompt and uncheck two engines, that's still one credit (with fewer engines per scan_result).

Tier limits at a glance

LimitFreeStarterProBusinessScale
Manual scans / window5 / week (UTC, Mon reset)3 / day (UTC)5 / day (UTC)15 / day (UTC)30 / day (UTC)
Auto-monitored prompts11550150500
Measurements per monitored prompt (reps, averaged)12332
Hero Prompts (pinned to daily)0051020
Weekly deep scans025815

Free is included in the pulse cron too. It gets one monitored slot, floored to one run a week, and Free's engine matrix is Perplexity only — so that weekly pulse is a single Perplexity read and never ChatGPT or Google AI Mode. Paid plans add the weekly deep cron, more monitored slots, and more measurements per prompt on top of the manual budget.

How many times we measure each prompt

A pulse run does not read each prompt once. AI answers are noisy — the same question asked twice can name you once and skip you once — so each monitored prompt is measured several times per run and the results are averaged into one number.

LimitFreeStarterProBusinessScale
Measurements per monitored prompt (reps, averaged)12332

Reps are why a weekly cadence beats a daily single read: three reads a week tell you more about a genuinely unstable answer than seven coin-flips do.

Hero Prompts — the daily exception

Every tier's pulse floor is 168 hours. Hero Prompts are the one deliberate exception: promote a prompt to Hero and it is pinned to a 24-hour cadence — not floored, pinned, so the stable-query decay never quietly stretches it back out. Hero runs use one measurement rather than your tier's full reps, which is what keeps the cost bounded.

LimitFreeStarterProBusinessScale
Hero Prompts (pinned to daily)0051020

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 prompts 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 weekly pulse for steady visibility tracking without clicking anything. The cron wakes every day; the per-tier floor decides which prompts are actually due, and that floor is 168 hours on every plan. Promote the two or three prompts you genuinely watch to Hero if you want them daily.

Trust the weekly deep scan for the long-form picture. It runs every monitored prompt (including the lower-priority "exploratory" ones) and is the snapshot the Overview trend chart anchors on each Monday.

How monitored cadences work

Each saved prompt has a schedule mode, set from the row's schedule control:

  • Off — the prompt stays in your list but is never scanned automatically. Stored in the database as on_demand with monitoring cleared, so the cron cannot pick it up.
  • Pulse — monitored, picked up by the pulse cron whenever it is due. Stored as daily_pulse — a database value we kept for compatibility, not a promise about frequency. The real cadence is weekly.
  • Weekly deep — monitored, handled by the Monday deep cron only.

The schedule control is on each prompt row in /dashboard/prompts. You can change it any time; the next cron run picks up the new value.

Reading "what triggered this scan?" in Scans

Every scan_result is tagged with triggered_by (manual, cron, on_demand_action) and a scan_mode (pulse or deep). The Scans page surfaces both as the icon and label on each scan run card:

  • Manual scan — you clicked the button.
  • 📡 Weekly pulse scan — the scheduled cron run.
  • Weekly deep scan — Monday 09:00 UTC cron.

A "scan run" in the Scans UI groups every scan_result that started within five minutes of the same trigger and mode — so a single Run scan on fifteen monitored prompts renders as one card showing the time range and the engine pills, not fifteen 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 prompt is its own scans row — partial completion is the norm. The successful prompts 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 prompts selected, capped at your credit budget for the window. Above the cap, run again once the window resets.

"My scan was refused with 'profile incomplete'." Manual scans are gated on a complete targeting profile — business category, product description, target buyer, and at least three topics. Without them the suggest and scoring layers have no ground truth and would measure the wrong category, so we refuse rather than return a confident wrong number. The error deep-links to Settings → Targeting. Cron scans are deliberately not gated, so live monitoring never stops for an incomplete profile.