Routines Field Guide

    A field guide for operators. Hacks, patterns, and what people are shipping in the wild.

    Claude Code Routines:
    The Field Guide

    Routines launched in April. The official docs cover what is possible. This guide covers what people are building, where the hidden traps live, and how to set up your first routine in 30 minutes without burning your daily run cap on debugging.

    Trigger

    Schedule

    Cron-style runs

    Trigger

    API

    HTTP webhook

    Trigger

    GitHub

    Repo events

    Foundation 01

    What a Routine Is

    A saved Claude Code config that runs on Anthropic's cloud. Four parts: prompt, repos, environment, connectors. Configure once, then it runs.

    A routine is a saved Claude Code config that runs autonomously on Anthropic's cloud. Your laptop can be closed. No local process. No cron job to maintain. When the trigger fires, the routine runs as a full Claude Code cloud session with no approval prompts.

    Plain English, self-contained

    Explicit about success criteria and what to do on failure. There are no mid-run approvals. Ambiguity becomes wrong output silently.

    The move: Write for an unsupervised contractor. State the goal, the definition of done, the failure path, and where output goes.

    Foundation 02

    The Three Triggers

    Schedule. API. GitHub event. One routine can stack all three. Pick the entry point that matches the job.

    Cron-style recurring runs

    Hourly, daily, weekdays, weekly, or a custom cron expression. The minimum interval is 1 hour.

    schedule trigger
    $ claude routines create \
        --name docs-drift \
        --schedule "0 17 * * 5" \
        --repo org/product-docs \
        --prompt "Scan merged PRs, flag
                 outdated docs, open PRs"
    

    Triggers stack. A single routine can have Schedule + API + GitHub all attached at once. One config, three entry points. Build a PR review routine that also runs nightly and can be fired from your CI pipeline.

    Foundation 03

    Daily Run Caps

    5 to 25 runs per day, depending on plan. Tight cap. Three habits make it stop feeling tight.

    Plan
    Price
    Runs / day
    Pro
    ~$20/mo
    5
    Max
    ~$100-$200/mo
    15
    Team / Enterprise
    Custom
    25

    The cap is tight. That is the cost of cloud-native and the trade-off for not running your own infrastructure. Three habits make the cap stop feeling tight.

    Run Now is free

    Manual Run Now clicks do not count toward your cap. Use it aggressively to test and iterate before flipping the schedule on. Most routine failures are first-three-runs problems.

    One-off /schedule is free

    Natural-language deferred runs ("/schedule in 2 weeks, open a cleanup PR") do not count either. Use them for tech debt cleanup, post-launch follow-ups, anything you would otherwise forget.

    Cache the setup script

    The environment setup script is cached between runs. Heavy install steps run once. Subsequent runs reuse the prepared environment, so the cap is not eaten by boot time.

    Enjoying the guide?

    Enter your details to unlock the remaining insights. We'll also send you the complete guide as a reference.

    No spam. Unsubscribe anytime.

    Power Moves

    Ten Power-User Hacks

    Patterns that separate routines that quietly do useful work from routines that quietly produce garbage.

    Store your business context in a private GitHub repo. Not as code. As markdown. Connect this repo alongside any working repos. The single biggest difference between a routine that sounds like you and one that sounds like an AI.

    Real Work

    Six Real Business Use Cases

    Anonymised builds from operators, not engineers. The pattern matters more than the name.

    Six routines built by operators, not engineers. Anonymised because the patterns matter more than the names. Most spend more time on the markdown context files than on the prompt itself.

    Independent AI automation consultant

    Weekly SEO reporting

    A weekly routine authenticates with Google Search Console, pulls last week's performance data (impressions, clicks, CTR, position, top queries), formats it into eight Notion database fields, and writes a new row every Monday at 9am. Around 40 lines of plain English. No JSON. No node mapping.

    The lesson

    The first version had a date-logic ambiguity. Claude flagged the contradiction in the first run and asked for clarification. No node-based tool does that.

    Multi-client PPC manager

    Google Ads operation at scale

    A full campaign management system across multiple clients. Custom skills, a Google Ads RAG built from internal patterns, integrations with Google Tag Manager and Analytics, daily Telegram updates plus weekly roundups. Each client gets a folder containing emails, transcripts, website content, pricing, and core offering docs.

    The lesson

    Strategy conversations become much more grounded when Claude has full context about a client. Not just their ad metrics, their business.

    Solo growth lead, major AI lab

    One-person growth marketing engine

    Zero prior coding background. Built a Figma plugin for ad-copy aspect-ratio adaptation, a Google Ads RSA generator using constraint-split sub-agents (headlines 30-char, descriptions 90-char), a Meta Ads MCP for direct campaign queries, and an experiment memory system that logs hypotheses and results.

    The lesson

    The closed loop (data in, AI-generated creative out, results logged, next cycle starts) lets one non-technical person run what used to require a team.

    Three-time YC go-to-market leader

    Account scoring model

    Fed Claude Code the CRM exports, intent signals, and ICP criteria. Claude built a scoring model, flagged logic gaps the team had not noticed, and produced a ranked account list. Result: 2 to 3x positive response rate on the highest-priority accounts.

    The lesson

    The flashy AI use cases make viral posts. The boring ones make pipeline.

    Founder, data automation platform

    AI analytics team with role boundaries

    A 5-role agent team (Data Analyst, Head of Growth, Marketing, Sales, Auditor) querying fresh data from HubSpot, GA4, and ad platforms via MCP on a recurring schedule. Only the Analyst touches data. The Heads write briefs. The Auditor re-runs every query independently.

    The lesson

    The first attempt failed at 9 agents because they all queued the Analyst simultaneously. 5 focused roles with strict boundaries solved it. More agents equals more chaos without clear role definition.

    VP Growth, AI workflow platform

    AI search content refresh

    A routine-powered playbook that refreshes existing blog posts (better return than new ones because domain authority already exists) to rank in AI citation engines like ChatGPT and Perplexity. Pulls GSC data, layers call transcripts and Slack VOC, clusters by buyer intent, cross-references AI citation gaps, mines customer calls for non-replicable insights.

    The lesson

    AI search engines cite content containing specifics no competitor can replicate. The data from your own calls and Slack is the moat.

    Walkthrough

    Your First Routine in 30 Minutes

    A morning brief routine. Read-only, business-focused, daily payoff. The fastest way to learn how the system behaves before automating anything that matters.

    Start with a morning brief. Read-only. Low risk. High daily payoff. You will know within 48 hours whether the prompt is wired right because the brief either lands in Slack or it does not.

    The 8 steps

    01

    Go to claude.ai/code/routines, then New Routine, then Remote.

    02

    Name it Morning Brief. Paste the markdown prompt below.

    03

    Connect the MCPs the prompt mentions (Google Calendar, Gmail, Notion, Slack). Remove any others you do not need.

    04

    Choose the Default environment (Trusted network access). No allowlist edits needed for MCP traffic.

    05

    Add the receiving channel ID for Slack so the routine knows where to post.

    06

    Set the trigger: Weekday schedule, 7am Brisbane.

    07

    Hit Run Now. Read the brief. Tweak the format or sources until it lands right.

    08

    Enable the schedule.

    The prompt (markdown)

    morning-brief.md
    Morning Brief
    
    Goal
    Every weekday at 7am Brisbane time, build a one-page morning brief and post it to my Slack DM channel #my-brief.
    
    Inputs to pull
    1. **Today's calendar.** Read Google Calendar for events between 8am and 6pm today. Capture title, time, and attendees for each.
    2. **Important unread email.** Search Gmail for unread messages received in the past 24 hours that match any of: known VIP client domains, "urgent", "decision", or "by Friday". Cap the list at 5.
    3. **Project moves.** Read the Notion database called "Active Projects". Surface any project with a status change in the past 24 hours, or a due date inside the next 3 days.
    4. **Yesterday's wins.** List anything in Notion or Linear marked as Done since this time yesterday. One line per item.
    
    Format
    Post a single Slack message with this exact structure:
    
    Morning Brief | [day, date]
    
    The day
    - 3 bullets summarising today's calendar (back-to-back, light morning, deep-work block, etc).
    
    Inbox flags
    - One line per important email. Subject + sender + why it matters in plain English.
    
    Project moves
    - One line per project with a change. What moved. What is due.
    
    Yesterday's wins
    - One line per closed item.
    
    Style rules
    - Keep the whole brief under 300 words.
    - Plain English. No corporate filler.
    - No em dashes. Australian English spelling.
    - Lead with the answer in every section. No preamble.
    
    On failure
    If any source returns an error (auth expired, no access, empty result), include a short "Source notes" line at the bottom of the brief listing which sources failed and why. Do not skip the brief.
    

    Swap the source names and channel for your stack. Keep the structure.

    Common failure modes

    Expired OAuth tokens

    Google and Notion tokens die without warning. Move Google Cloud projects from Testing into Production to dodge the 7-day token expiry.

    MCP scope too narrow

    The MCP needs read access to the calendar, mailbox, and database you reference. Check scopes before scheduling, not after the first failed run.

    Slack channel ID missing

    Routines need a channel ID, not a channel name. Grab it from the Slack channel settings and paste into the prompt or the environment variables.

    Vague output format

    If the brief drifts week to week, lock the structure in the prompt. Show the exact headings and bullet patterns. Treat it like a template, not a wish.

    TheTheteamsteamspullingpullingaheadaheadrightrightnownowshippedshippedaaboringboringroutineroutineininMayMayandandaaslightlyslightlybetterbetteroneoneininJune.June.ComplexityComplexitycomescomeslater,later,ififatatall.all.PickPickthethesmallestsmallestusefulusefulroutine.routine.ShipShipititthisthisweek.week.

    Where Routines are still the wrong tool

    Sub-hourly cadence

    1-hour minimum interval

    Local environment

    Cloud-only. Cannot touch local tools

    10,000+ row ETL

    Use a dedicated ETL tool

    Mid-run human approvals

    Fully autonomous. No pause-and-ask

    Jump back to a section