Submission Watcher Agent
Overview
Monitors literary magazine submission windows and emails the moment they open. Some of the best magazines have brief, unpredictable reading periods — miss the window by a day and you wait six months. This agent watches the Submittable pages on a twice-daily cron and fires a single notification per open window.
Distributed as a Claude Code plugin that includes a setup agent — it walks the user through deployment to Vercel, environment variable configuration, and adding new magazine watchers.
How it works
- Watchers: Each magazine is a module that exports a
run()function returning{ agent, open, checkedAt } - Parser: Fetches the target Submittable page and filters out workshops, conferences, and teen programs to isolate magazine submission links
- Dedupe: State stored in Upstash Redis so each opening triggers exactly one email, even across concurrent cron invocations
- Alerts: Email sent via Resend with a branded sender address
- Schedule: Vercel cron at 9 AM and 5 PM; endpoint is CRON_SECRET protected
- Status API:
GET /api/statusreturns last check result and notification state per watcher
Adding a watcher
Create a directory, implement run(), register it in api/cron.mjs. Deploy. The setup agent automates all of this, including initial Vercel deploy and env var scaffolding.
Stack
JavaScript · Claude Code · Vercel Cron · Upstash Redis · Resend