Every recurring job across the WebXpress agent fleet — what runs, how often, and where it actually lives (Cowork scheduled task vs. droplet crontab vs. not confirmed at all). Times shown in IST with the underlying UTC cron alongside.
Root crontab on the droplet, driven by sara_run.sh <mode>. Not visible or pauseable from Cowork — SSH-only.
| Job | Cadence | IST time | UTC cron | What it does | Status |
|---|---|---|---|---|---|
| Jira mirror sync | Every 15 min | Continuous | */15 * * * * | Syncs Jira into local Postgres mirror (fed from Supabase) — the data source for chase/digest/weekly | Live |
| Chase / nudge engine | Mon–Fri | 10:30 IST | 0 5 * * 1-5 | Scans stuck Jira items, nudges owners directly by email, escalates to CEO after 3 unanswered nudges or no resolvable owner | Live since 14-Jul-2026 |
| Mail-gap / Teams-gap check | Mon–Sat | ~10:35 IST | ~5 5 * * 1-6 | Flags threads/Teams chats gone quiet — feeds Mira's PM-silence cross-reference | Live |
| Email/inbox ingest | Every 10–15 min | Continuous | */10-15 * * * * | Reads apurva@ + support@webxpress.in via Microsoft Graph, feeds the temperature/scoring model | Live |
| Daily heat-map digest | Daily | 08:00 IST | 30 2 * * * | Heat-map digest of open support threads to CEO | Disabled 19-Jul-2026 (per Apurva — "not very useful"). Code intact, not deleted. |
| Weekly trend report | Mondays | 09:00 IST | 30 3 * * 1 | Weekly Jira/support trend report to CEO | Live |
| WhatsApp keep-alive | Every 2 days | 18:00 IST | 30 12 */2 * * | Pings the Twilio sandbox so the 72h WhatsApp session doesn't expire | Live |
Sends as Mira@webxpress.in. Underlying skill is customer-project-tracker (Daily Brief/Scorecard/ETA Chaser) plus the mira skill.
| Job | Cadence | IST time | UTC cron | What it does | Status |
|---|---|---|---|---|---|
| ABLBL LSP EDD/POD chaser new | Weekly, Mondays | 10:00 IST | 0 10 * * 1 (server clock IST) | Reads Control Tower for ABLBL: shipments past EDD and still undelivered, plus delivered shipments with no POD. Builds one Excel per logistics partner and mails it as Mira, with a consolidated summary to the project team. Recipients come from a reviewed LSP contact workbook on the server; EDD falls back to booking + lane TAT where the system EDD is missing or invalid | Live on the Hawkeye server (cron, not Cowork) Preview mode — all mail to project team + Apurva until contacts are signed off (target live 28-Sep-2026) |
| ABLBL Weekly LogiCloud Order-Health Digest new to this page | Weekly, Mondays | 11:00 IST | 30 5 * * 1 | LSP-wise ageing of undelivered orders, orders booked with no EDD, and delivered-without-POD counts for ABLBL — the report that led to the chaser above | Confirmed Cowork scheduled task — no human review |
| Weekly, Mondays | 10:00 IST | 30 4 * * 1 | First version of the chaser, run through Apurva's Mac because only that machine could reach the database. Replaced by the server cron job above | Deleted 18-Sep-2026 — moved to the server, no laptop needed | |
| Mon–Fri, twice daily | 14:00 & 21:00 IST | 30 8,15 * * 1-5 | Reads Devang's mail, acts per Workflow 5, sends as Mira with no draft/approval step — was genuinely closed-loop | Removed 11-Sep-2026 by Apurva | |
| Unconfirmed | Unconfirmed | unconfirmed | Never documented here before removal — pending detail from Apurva on what it did and since when | Removed 11-Sep-2026 by Apurva | |
| Daily Project Brief | Daily | ~05:30–05:40 IST | unconfirmed | Escalations, today's meetings, stuck items, PM-silence alerts, Jira fires, wins, Apurva's To Dos | Active, mechanism unconfirmed |
| Weekly PM Scorecard | Mondays | ~05:32 IST | unconfirmed | PM productivity RAG by cohort (Senior/Core), xlsx attached, to Apurva + Nehal only | Active, mechanism unconfirmed |
| Jira ETA Chaser | Event-driven | Mon–Fri scan, 10:00–19:00 IST | unconfirmed | Emails the engineer when a new Jira epic/story opens — ticket table, open questions, deadline | Active, mechanism unconfirmed |
| Escalation nudges | Mon–Fri | 10:00–19:00 IST window | unconfirmed | Auto-nudge if ETA missed or a ticket goes silent >48h | Active, mechanism unconfirmed |
Campaign sends are still gated on Apurva's approval by design. But two recurring jobs run and send with zero human review — a correction to the earlier "no confirmed cadence" note on this page.
| Job | Cadence | IST time | UTC cron | What it does | Status |
|---|---|---|---|---|---|
| Daily Sales Brief | Daily | 08:30 IST | 0 3 * * * | Scans Outlook + calendar for prospect activity, reads the Google Sheets pipeline tracker, flags stale/overdue items, lists today's sales meetings | Confirmed Cowork Routine — no human review 11-Sep run took ~97min vs usual few — watch for repeat |
| Weekly Marketing Digest | Mondays | 08:00 IST | 30 2 * * 1 | Campaigns sent that week, Brevo stats (opens/clicks/unsubscribes), recommendations | Confirmed Cowork Routine — no human review |
| Campaign send loop | On-demand, per brief | — | n/a | Brief → draft HTML email → Apurva approval → Brevo send → stats | Human-gated, not scheduled |
Found by reading crontab -l directly on the droplet — invisible to list_triggers because it isn't Cowork-hosted at all.
| Job | Cadence | IST time | UTC cron | What it does | Status |
|---|---|---|---|---|---|
| Sales Funnel Sync | Daily | 07:00 IST | 30 1 * * * | Matches Apurva's mail to open deals in Postgres marketing.deals, writes safe updates directly (never changes stage, never deletes, never creates a deal from cold mail), flags uncertain cases as a To Do, always sends a digest |
Confirmed — first real run expected next cycle (added 08-Aug-2026, no log yet) |
marketing.deals) and the Daily Sales Brief's Google Sheets tracker are confirmed genuinely separate, unreconciled systems of record for the same pipeline.Control Tower's own box (Ubuntu 24.04, Postgres 16, PM2 apps). It now runs an agent job as well as its own housekeeping. Server clock is IST, so these crons are written in IST, not UTC.
| Job | Cadence | IST time | Cron | What it does | Status |
|---|---|---|---|---|---|
| LSP EDD/POD chaser | Weekly, Mondays | 10:00 IST | 0 10 * * 1 | See the Mira section — runs as its own service user, reads the database over localhost, mails through Microsoft Graph as Mira, and emails Apurva if a run fails | Live — preview mode |
| Chaser output retention | Weekly, Mondays | 10:30 IST | 30 10 * * 1 | Deletes generated Excel files older than 90 days | Live |
| Hawkeye health check | Twice daily | 07:00 & 19:00 IST | 30 1,13 * * * | Platform health-check runner (Hawkeye's own, not an agent) | Live |
| Retention cleanup | Hourly | — | 0 * * * * | Hawkeye data retention job | Live |
| Auto-heal (data only) | Twice daily | 08:00 & 20:00 IST | 30 2,14 * * * | Hawkeye's own repair pass over data inconsistencies | Live |
| Health watchdog | Every minute | — | * * * * * | Restarts the app if it stops responding | Live |
claude-runner crontab, found 18-Sep-2026, previously undocumentedNine cron lines under a second user on the same droplet. They belong to no registered agent and had never appeared on this page — found the same way "sales lead sync" was, by reading crontab -l.
| Job | Cadence | IST time | UTC cron | What it does | Status |
|---|---|---|---|---|---|
| Velocity incremental refresh | ~13 times a day | spread through the day | multiple lines | Refreshes Velocity report data for the reporting plugin | Live, unowned |
| Sales Register MOR compact | Daily | 03:00 IST | 30 21 * * * | Builds the compacted Sales Register month-on-month dataset (company 10272) | Live, unowned |
| Backstop re-export (+ retry) | Daily, twice | 03:30 & 05:00 IST | 0 22 * * * / 30 23 * * * | Re-exports anything the incremental refresh missed, with a later retry pass | Live, unowned |
| Job | Cadence | IST time | UTC cron | What it does | Status |
|---|---|---|---|---|---|
| Jira dashboard weekly report sender | Daily check | 10:30 IST | 0 5 * * * | Sends the Jira dashboard's weekly report | Live |
| Monthly customer reports | Monthly | 11:30 IST on the 5th | 0 6 5 * * | Customer report pack generation (plus two dated one-off lines) | Live |
| Supabase keep-alive | Weekly, Sundays | 06:00 IST | 30 0 * * 0 | Pings Supabase so the free project is not paused | Live |
| Stale session cleanup | Every 4 hours | — | 0 */4 * * * | Clears stale runner sessions on the droplet | Live |
Nothing to schedule until it's confirmed whether hawkeye-codeagent is actually deployed and calling/messaging anyone.
| Job | Cadence | Status |
|---|---|---|
| Event-triggered chase (proposed) | Real-time, on HawkEye event | Not confirmed live |
Found 08-Aug-2026 while cross-checking the live Routines list. Doesn't fit any of the 4 registered agents.
| Job | Cadence | IST time | UTC cron | What it does | Status |
|---|---|---|---|---|---|
| DO Server Health Check | Daily | 09:07 IST | 37 3 * * * | External + internal health check on the WebXpressTMS droplet (139.59.24.166) serving www.webxpress.ai / sitestaging.webxpress.ai — response time, TTFB, /VERSION check | Live, unowned — assign to Sara or a new entry |
list_triggers missed it. Lesson: always check a droplet's own crontab -l directly, not just the Cowork Routines API, when auditing an agent that might be droplet-hosted.
claude-runner crontab on the droplet (9 Velocity jobs, nobody's) and the Hawkeye server's own crontab.list_triggers now returns only 4 Routines total — Sharon's two (unchanged), the DO Server Health Check (unchanged), and a new unrelated "Hawkeye Manifest" job (Control Tower/Jira dashboard sync — not one of these 4 agents, out of scope here). Mira's Devang Mail Autopilot and a previously-undocumented Harshad routine are both gone — intentionally removed by Apurva. See the Mira section above.
Not part of the agent registry (no name/persona), but the same class of recurring automation — listed here for completeness since this page is meant to be the one place with every cron/schedule.
| Job | Cadence | IST time | What it does | Status |
|---|---|---|---|---|
| Daily task brief | Daily | 07:00 IST | Reads the Master Task Tracker + scans Outlook for new actionable email, emails a consolidated brief | Active — Cowork scheduled task |
| WhatsApp task intake | Every 30 min | 07:00–23:00 IST | Polls Twilio for texted tasks, appends to the tracker, confirms on WhatsApp | Active — Cowork scheduled task |