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.
Schedule
Cron-style runs
API
HTTP webhook
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.
$ 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.
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.
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
Go to claude.ai/code/routines, then New Routine, then Remote.
Name it Morning Brief. Paste the markdown prompt below.
Connect the MCPs the prompt mentions (Google Calendar, Gmail, Notion, Slack). Remove any others you do not need.
Choose the Default environment (Trusted network access). No allowlist edits needed for MCP traffic.
Add the receiving channel ID for Slack so the routine knows where to post.
Set the trigger: Weekday schedule, 7am Brisbane.
Hit Run Now. Read the brief. Tweak the format or sources until it lands right.
Enable the schedule.
The prompt (markdown)
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