Agentic Workflows: Claude as Your Chief of Staff
Design autonomous multi-step workflows — with a complete end-to-end Daily Intelligence Briefing you build today
What Makes Something Agentic?
A conversational Claude interaction: one prompt, one response, done. An agentic Claude workflow: one goal, many steps, many tool calls, autonomous adaptation, one complete outcome.
"Summarize this document." → one response → done. You're involved at every step.
"Check my email, calendar, and open GitHub issues. Build a prioritized plan for today. Save it to a file and send me a brief Slack message." → Claude plans → executes 12+ tool calls → delivers a complete outcome. You come back to a finished result.
The Agent Loop
User states the objective and what "done" looks like.
Claude breaks the goal into concrete steps and identifies which tools are needed for each.
Claude calls a tool (search, read file, API call, write, etc.) and receives a result.
Claude reads the result and checks whether the step achieved its goal.
If the result was unexpected, Claude revises the plan. If on track, moves to the next step.
Steps 3–5 repeat until the goal is complete or Claude needs human input.
Claude returns the final output and a summary of what was done.
End-to-End: Building Your Daily Intelligence Briefing
This is a complete real-world agentic workflow. By the end of this section you'll have a briefing that runs automatically every morning and delivers a personalized daily plan. Follow every step.
This workflow needs 3 MCPs. Open ~/.claude/settings.json and add:
{
"mcpServers": {
"gmail": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-gmail"],
"env": { "GMAIL_CREDENTIALS_PATH": "~/.claude/gmail-credentials.json" }
},
"gcal": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-google-calendar"],
"env": { "GCAL_CREDENTIALS_PATH": "~/.claude/gcal-credentials.json" }
},
"brave-search": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-brave-search"],
"env": { "BRAVE_API_KEY": "your_brave_api_key" }
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/yourname/Documents"]
}
}
}Restart Claude Code and run /mcp to verify all 4 servers connect.
Paste this prompt into Claude Code or Cowork to test it:
Run my daily intelligence briefing. Here's exactly what to do:
1. CALENDAR: Get all my calendar events for today using gcal_list_events.
Note each meeting: time, title, attendees, duration.
2. EMAIL: Search Gmail for unread emails (is:unread) from the last 24 hours.
Categorize each as: URGENT (needs reply today) / FYI (no reply needed) / LATER.
For URGENT emails, draft a 1-sentence suggested reply.
3. INDUSTRY NEWS: Search Brave for "[your industry] news today [current date]".
Pick the 3 most relevant stories. One sentence summary each.
4. COMPILE: Create a briefing in this format:
# Daily Briefing — {today's date}
## 📅 Today's Schedule ({N} meetings)
[time] — [meeting title] — [key attendees]
## 📧 Email Priorities ({N} urgent)
**URGENT:**
- From: [sender] — [subject] — Suggested reply: [one sentence]
**FYI (no action needed):**
- [sender] — [subject]
## 📰 Industry Pulse
- [story 1 — one sentence]
- [story 2 — one sentence]
- [story 3 — one sentence]
## 🎯 Focus Recommendation
[2 sentences: what to tackle first today and why, based on calendar + email]
5. SAVE: Write the complete briefing to ~/Documents/briefings/[date].md
using the filesystem MCP.
6. CONFIRM: Tell me the briefing is saved and give me the Focus Recommendation
as a quick summary.Here's exactly what Claude does step by step when you run the prompt above:
[Tool call 1] gcal_list_events(timeMin="2025-01-13T00:00", timeMax="2025-01-13T23:59") → Returns: 4 events — 9:00 standup, 11:00 product review, 2:00 1:1 with Sarah, 4:30 team retro [Tool call 2] gmail_search_messages(query="is:unread", maxResults=30) → Returns: 12 unread emails from last 24 hours [Claude reasons]: Scanning 12 emails for urgency signals... → 3 URGENT (deadline mentioned, question directed at user, CEO email) → 6 FYI (newsletters, notifications, cc'd threads) → 3 LATER (non-urgent requests) [Tool call 3] brave_search(query="SaaS industry news today January 13 2025") → Returns: search results with headlines and snippets [Claude reasons]: Selecting 3 most relevant stories for a SaaS PM... [Claude composes briefing — entire document] [Tool call 4] write_file(path="~/Documents/briefings/2025-01-13.md", content="...") → File saved successfully Response to you: "Your briefing is saved to ~/Documents/briefings/2025-01-13.md 🎯 Focus for today: Start with Sarah's email re: the API pricing decision — it's blocking the enterprise deal closing this week. Your 9am standup is in 47 minutes, so draft that reply first."
Now that the workflow runs correctly, automate it. In Cowork, trigger the schedule skill:
Schedule my daily briefing to run automatically every weekday at 7:45am. Use this prompt exactly: [paste your full briefing prompt from Step 2] The briefing should save to ~/Documents/briefings/[date].md and send me a macOS notification when it's ready.
The schedule skill creates a cron-like task that runs your briefing every weekday morning. You wake up, and by the time you sit down with your coffee, the briefing is already in your Documents folder.
After running for a week, you'll notice patterns. Common improvements:
- Add Slack MCP — check for important Slack messages and DMs overnight
- Add your task manager (Linear/Asana/Notion) — show overdue tickets
- Add GitHub — surface open PRs waiting for your review
- Customize urgency signals — "emails from my CEO or direct reports are always URGENT"
- Add a "This Week" section on Mondays only — what's due by Friday
Orchestrator + Sub-Agent Pattern
For large parallel tasks, Claude can act as an orchestrator that spawns sub-agents running simultaneously. This is how Claude completes in minutes what would take you hours:
You: Research these 8 competitors and give me a comparison matrix.
For each: pricing tiers, key features, target customer, recent news.
Companies: Acme, Zendesk, Intercom, Freshdesk, HubSpot,
Salesforce Service Cloud, Help Scout, Groove.
Orchestrator Claude:
- Creates a plan: spawn 8 sub-agents, one per company
- Each sub-agent searches for pricing page, features page, recent press releases
- Sub-agents run in parallel (8x faster than sequential)
- Orchestrator collects all 8 results
- Synthesizes into a comparison matrix
- Identifies your top 3 competitive threats
- Saves to ~/Documents/competitive-analysis-[date].md
Total time: ~4 minutes vs 3-4 hours manually.Computer Use — Claude Controls Your Screen
Computer Use lets Claude see your screen (via screenshots) and control your mouse and keyboard. This enables Claude to interact with any GUI app — not just those with APIs.
- Navigate websites that don't have an API or MCP
- Fill out web forms automatically
- Extract data from visual interfaces (dashboards, legacy systems)
- Control desktop apps: Excel, Figma, Notion desktop, system settings
- Test web applications by clicking through as a real user would
You: Log into our internal inventory system at intranet.company.com
and update the quantity for product SKU-4821 to 250 units.
Claude: Takes screenshot → sees the login form → types credentials
(you've given permission) → navigates to inventory → searches SKU-4821
→ clicks Edit → updates quantity → saves → confirms success.
Total time: 30 seconds. No API. No custom integration.Designing Effective Agentic Tasks
Poorly designed agentic tasks fail, stall, or produce wrong results. These rules make them reliable:
❌ "Research competitors" — no finish line, no output format
✅ "Research Acme and Zendesk. For each: find pricing page URL, list all pricing tiers with prices, identify their primary target segment. Output as a markdown table. Save to ~/Documents/comp-research.md"
❌ Nothing — Claude stalls when it hits a 404 or missing data
✅ "If you can't find pricing for a company, note 'pricing not public' and continue. Don't get stuck on any one company for more than 2 minutes."
Run /mcp in Claude Code before starting any complex workflow. Confirm that every tool the workflow needs is connected. A workflow that hits a disconnected MCP mid-way is hard to resume.
Before running on 50 items, test on 3. Catch format issues, missing edge cases, and wrong assumptions cheaply. Then scale up.
For workflows with real-world effects (sending emails, creating tickets, updating systems), add: "After step 4, pause and show me the result before proceeding to step 5." This keeps you in control of the parts that matter most.
Hands-On Exercise: Build Your Daily Briefing (~40 min)
Follow the 5-step process in the "End-to-End" section above. Don't skip steps:
Set up Gmail and Calendar MCPs. Run the briefing prompt manually. Verify Claude pulls real data from your accounts and produces a formatted briefing.
Modify the briefing prompt to reflect your actual work: change the industry news search to your field, adjust what counts as "URGENT" email, add any other data sources you care about.
Use the schedule skill to automate the briefing at 7:45am every weekday. Confirm it appears in your scheduled tasks list.
Write down one more agentic workflow that would save you significant time. What's the goal? What MCPs does it need? What does "done" look like? Save this in your CLAUDE.md as a future project.
Receive goal → Plan → Execute → Observe → Adapt → Repeat → Deliver. Claude runs this autonomously across many tool calls.
Gmail + Calendar + Search → personalized daily plan. Runs automatically at 7:45am via scheduled task. Built in this lesson.
Tell Claude what to do when a step fails: 'skip and note it', 'continue with next item'. Prevents stalling on edge cases.
Claude instances running in parallel on subtasks. Orchestrator spawns them automatically for large research or analysis tasks.
Claude sees your screen and controls mouse/keyboard. Works with any GUI — no API needed. Always approve before actions with side effects.
Test every agentic workflow on 2-3 items before running on 50. Catch problems cheaply then scale up.