Scheduled Workers — What Runs Automatically
These workers run on cron schedules via BullMQ. No human intervention needed. Monitor everything in Paperclip.
Content Factory (Spoke 3)
SeniorWire Daily Blog
- Worker:
seniorwire-blog-worker.js - Queue:
seniorwire-blog - Schedule: Daily at 6-7am, per desk
- Output:
/sites/seniorwire/articles/{desk}/{date}/
| Desk | Schedule | Articles/Day |
|---|---|---|
| General | Daily 6am | 5 |
| Hispanic | Mon/Wed/Fri 6am | 3 |
| Veterans | Tue/Thu 6am | 3 |
| AAPI | Mon/Thu 7am | 2 |
| African American | Tue/Fri 7am | 2 |
| Rural | Wed 7am | 3 |
Total: ~18 articles/day across all desks
Weekly Content Planner
- Worker:
content-planner-worker.js - Queue:
content-planner - Schedule: Mondays at 5am
- Clients: SAA, SeniorWire, [Client A], Happy 64th, ICHRA Savings
- Output: Plans for blog + YouTube + shorts + talking head + B-roll
Email Operations (Spoke 2)
PlusVibe Reply Monitor
- Worker:
plusvibe-reply-worker.js - Queue:
plusvibe-reply-monitor - Schedule: Every 15 minutes
- Actions:
- Interested → queued for follow-up
- Not interested / Bounce / Unsubscribe → blacklisted immediately
- OOO → logged, re-checked later
Monitoring & Ops (Spoke 6)
Blacklist Checker
- Worker:
blacklist-checker-worker.js - Queue:
blacklist-checker - Schedule: Daily at 8am
- Checks: 15 domains against 15 blacklists (Spamhaus, SpamCop, Barracuda, etc.)
- Alerts: Telegram ONLY if a domain is listed
Intelligence (Spoke 8)
ICHRA Data Refresh
- Worker:
ichra-refresh-worker.js - Queue:
ichra-refresh - Schedule: 1st of every month at 3am
- Scope: 15 active states, all counties with leads
- Output: Updated savings data + CSV export
How to Manage
# See all scheduled jobs
node workers/scheduler.js --list
# Re-register (after changes)
node workers/scheduler.js
# Clear all schedules
node workers/scheduler.js --clear
# Check a specific worker
systemctl status lead-seniorwire-blog
journalctl -u lead-pv-reply -fRelated
- Worker Process — How workers are built and deployed
- Spoke Map — Full spoke architecture
- feedback-telegram-alerts — Alert rules (max 1-2/day)
- feedback-seniorwire-mcp-required — SeniorWire must use MCP data