Watches every review source for new reviews and pages the practice on a one-star.
scripts/review-watch.mjs --due
The nineteen-job daily roster, lane by lane. One question, answered in five seconds: is the machine running?
The reputation and speed-to-lead lane. A job here that has not run today is an outage, not a schedule.
4 jobsWatches every review source for new reviews and pages the practice on a one-star.
scripts/review-watch.mjs --due
Drafts a reply to each detected review within the 15-minute §15.3 floor; a human approves before it posts.
scripts/review-reply.mjs --due
Routes inbound messages: clinical forwards raw to the practice, administrative stages a draft, nothing patient-facing auto-sends.
scripts/dm-classify.mjs --due
Runs the speed-to-lead clock: first pages for queued after-hours requests, then 15-business-minute re-fires.
scripts/callback-page.mjs --due
Runs every night; each job then applies its own interval gate, so a green run today is normal and so is a quiet one.
10 jobsSamples the four models on a fixed question set to measure the practice's AI citation share.
scripts/citation-sample.mjs --due
weekly gate. No account is on this job's schedule yet, so it has never had one to run for.
Drafts Google Business Profile posts on the contract's floor cadence and publishes the ones already approved.
scripts/gbp-post.mjs --due
Builds the monthly search pages and publishes approved ones.
scripts/page-build.mjs --due
Rebuilds the booking page and its callback widget, the same monthly cadence as the search pages.
scripts/booking-build.mjs --due
Produces a podcast episode; the Allocator throttles the rate later (§15.6).
scripts/podcast-build.mjs --due
Produces the mimic test the previous Sunday's Allocator planned — one per client per week (§8.3).
scripts/mimic-produce.mjs --due
every 7 days. No account is on this job's schedule yet, so it has never had one to run for.
Sweeps watched creators across platforms, flags outliers, and on Sundays refreshes mechanisms and grid assignments.
scripts/scout.mjs --all
Rolls raw page visits into weekly per-channel counts.
scripts/analytics-rollup.mjs --all
daily. Cross-tenant by design (§3.2 crossing 1) — it reads every account in one pass and keeps no per-account schedule.
THE scrubber: the only code that reads phi and writes the clean zone (§2.1).
scripts/scrub-rollups.mjs --all
daily. Cross-tenant by design (§3.2 crossing 1) — it reads every account in one pass and keeps no per-account schedule.
Runs the §13 clock over every open exception, escalates what is past due, and stages the draft.
scripts/exceptions-sweep.mjs --due
daily. Cross-tenant by design (§3.2 crossing 1) — it reads every account in one pass and keeps no per-account schedule.
The learning pass, in order: score the week, extract patterns across clients, then allocate next week's plan.
3 jobsThe Scorekeeper: reads every published item whose result is due and records win or loss.
scripts/score.mjs --due
Screens the fresh outcomes across every client and proposes cross-client patterns (§7.2).
scripts/patterns-extract.mjs --all
Sunday. Cross-tenant by design (§3.2 crossing 1) — it reads every account in one pass and keeps no per-account schedule.
The Allocator: writes next week's plan from the scores, the patterns, and the benchmarks.
scripts/allocate.mjs --due
The monthly pair: pooled vertical benchmarks with the flywheel, then the hands-off audit, dead last.
2 jobsComputes the pooled vertical benchmarks and the §15.7 flywheel report.
scripts/benchmarks.mjs --all
first Sunday of the month. Cross-tenant by design (§3.2 crossing 1) — it reads every account in one pass and keeps no per-account schedule.
The monthly hands-off audit: checks the whole machine still runs without a human in it.
scripts/ops-audit.mjs --due
first Sunday of the month. Cross-tenant by design (§3.2 crossing 1) — it reads every account in one pass and keeps no per-account schedule.
| # | Job | Cadence | Scope | Last run | State |
|---|---|---|---|---|---|
| 1 | reviews | 5-minute tick | per account | Aug 17 | due |
| 2 | replies | 5-minute tick | per account | Aug 17 | due |
| 3 | dms | 5-minute tick | per account | Aug 17 | due |
| 4 | callbacks | 5-minute tick | per account | Aug 18 | on cadence |
| 5 | citations | weekly gate | per account | — | never run |
| 6 | gbp | contract floor cadence | per account | Aug 17 | on cadence |
| 7 | pages | every 30 days | per account | Aug 17 | on cadence |
| 8 | booking | every 30 days | per account | Aug 17 | on cadence |
| 9 | podcast | every 14 days | per account | Aug 17 | on cadence |
| 10 | mimic | every 7 days | per account | — | never run |
| 11 | scout | daily, Sundays do more | all accounts | Aug 18 | on cadence |
| 12 | score | Sunday | per account | — | never run |
| 13 | patterns | Sunday | all accounts | — | never run |
| 14 | benchmarks | first Sunday of the month | all accounts | — | never run |
| 15 | allocate | Sunday | per account | — | never run |
| 16 | analytics | daily | all accounts | — | never run |
| 17 | scrub | daily | all accounts | — | never run |
| 18 | exceptions | daily | all accounts | — | never run |
| 19 | audit | first Sunday of the month | all accounts | — | never run |
Order is run-due.mjs's own: reputation first, then the content producers, then Sunday's learning pass, then the sweeps. A job exits 0 when nothing is due, so a quiet run and a skipped run look identical from outside — which is why this page reads the schedule rather than the log.