Skip to main content
You can give Claude standing work from any channel it’s in. This standing work is called a routine: a job that runs on a schedule, such as watching a channel, following a pull request, or posting status updates. You set a routine up in the channel where it should run, and it uses that channel’s connections with the same permissions as a typed request.

Set up standing work

Scheduled jobs

Describe the schedule you want and the work Claude should do in one message:
Name the output format in the job so recurring posts stay scannable.

Watch channels

Ask Claude to watch named channels and post here when something matches a topic:
Naming both the channels and the topic is what keeps a watch useful. The watch can cover this channel too (“keep an eye on this channel and post a morning summary”).

Follow a pull request

Claude can subscribe to a single pull request and react when it updates.

Routine recipes

Each recipe below sets up a complete routine with one message. Adapt the channel names, repositories, and times to your own, and name the timezone so the schedule fires when you expect.

Daily standup summary

Claude posts a morning rollup of open threads and anything waiting on someone, before the team starts the day.
“Waiting on someone” makes the rollup surface actions, not just a recap; Catch up has the one-off version.

Weekly channel digest

Claude posts one recap at the end of each week, so the channel has a single place to see what happened.
For an intake channel, the Triage requests version of this rollup also sweeps posts that never tagged Claude.

Watch a pull request until it merges

Claude subscribes to a single pull request and posts as it moves through CI, review, and merge.
Follow a pull request explains what the subscription reacts to.

Alert investigation when a monitor fires

Claude checks the alerting dashboard on a schedule and posts a first pass at diagnosis for anything new, so the investigation is underway before anyone asks. This recipe needs a monitoring connection such as Datadog or PagerDuty; Watch monitors and alerts has the full setup.
The routine posts only when something changed, not on every check.

Automatic triage for new requests

Claude answers, deduplicates, and routes requests as they arrive. This recipe is a standing role rather than a schedule; “remember for this channel” saves it to channel memory, so it applies to everyone’s threads.
Pair it with a weekly rollup so untagged posts are still swept; Triage requests has both messages.

Manage standing work

Anyone in the channel can list, edit, or disable its standing work:
  • List. Ask “what routines do you have set up in this channel?”, or send @Claude !routines. Add a channel name, as in @Claude !routines #other-channel, to list another channel’s routines.
  • Edit. Describe the change and it updates the job
  • Disable. Name the job to stop, as in “disable the Friday rollup”
Standing work is visible to the channel: jobs post into the channel they belong to. Routines keep running if their creator leaves the organization, but stop firing if the creator is removed from the channel. A few boundaries apply:
  • A job runs with the channel’s connections, the same as an interactive request.
  • Schedules default to UTC. When you say “every weekday at 9am,” include the timezone (for example “9am Pacific”) so Claude converts correctly; without one it may guess. Ask “what triggers do you have set up?” to confirm the time it actually scheduled.
  • A scheduled job that touches a github.com repository uses the same GitHub connection your admin set up for interactive work. See Configure GitHub access.