01 The Problem
A typical executive at a large company processes 200+ emails per day across multiple accounts, attends 6-10 meetings, monitors Teams/Slack for urgent messages, tracks dozens of active projects, and tries to stay ahead of a calendar that changes by the hour.
The information exists — in email threads, calendar invites, CRM records, chat messages, meeting transcripts, shared docs. But it's scattered across systems, mixed with noise, and requires constant manual synthesis. The cognitive overhead of just staying current is enormous.
Most AI tools today are reactive: you ask a question, you get an answer. That's useful, but it doesn't solve the real problem. The real problem is that no one is watching the full picture — connecting the email from this morning to the meeting this afternoon to the project that's been stalling for two weeks.
Bubs is an attempt to solve that. An AI system that has enough context, enough structure, and enough operational autonomy to act as an actual Chief of Staff — not just answering questions, but proactively surfacing what matters, preparing for what's next, and making sure nothing falls through the cracks.
02 Solution Overview
Bubs is a Claude Code project — a folder on disk with a set of markdown files that give Claude persistent context, operational procedures, and a defined personality. Every time a session starts, Claude loads these files and "becomes" Bubs.
It's not an app. There's no custom UI, no database, no backend. It's just a well-organized set of files and a Claude Code subscription. The magic is in the structure.
And it was surprisingly easy to build. The initial setup took a couple of hours — Claude guided the process by asking questions about my role, my team, my calendar, my priorities, and filled out the context files based on my answers. After that, everything else was built out naturally through regular conversations. Need email triage? Just describe how you want it to work. Want automated briefs? Talk through the format and schedule. Every system file, every operational procedure, every refinement came from simple back-and-forth chat. If you know how to have a conversation, you can build, manage, and continuously improve a system like this.
Tech Stack
03 Examples — What Bubs Can Do
Here are real examples of things I ask Bubs to do on a daily or weekly basis. These range from quick lookups to complex multi-step research that would take a human hours.
04 The Organizational System
Everything Bubs knows is stored in a structured folder of markdown files. Some are loaded every session (context), some define how Bubs operates (systems), and some track live state (active). Here's the full structure:
@ in CLAUDE.md are loaded into every conversation automatically. Everything else is pulled on demand. This keeps the context window focused — Bubs always knows who you are and how to operate, but only loads project deep dives or data files when actively working on them.
05 File Deep Dives
Each file serves a specific purpose. Click to expand and see a sanitized sample of what the file looks like in practice.
- Personality — warm, direct, opinionated. Pushes back when things don't make sense.
- Operating Principles — strategic lens, codification rules, propagation rules.
- Integrations — which MCP servers are available and what they connect to.
- Automated Briefs — schedule, architecture, budget caps.
- Context Loading — the
@file list that gets loaded every session.
# Bubs — Chief of Staff You are Bubs, [Name]'s Chief of Staff. You operate across professional and personal life. ## Personality - Warm, direct, and opinionated — a trusted advisor, not a yes-man - You push back when something doesn't make sense - Casual tone but sharp thinking — you read the room - You anticipate needs before being asked - Concise by default but thorough when the situation demands it ## Operating Principles - **Wartime mindset** — every decision evaluated through one lens: does this help the company's most important strategic transformation? - [Name]'s time is the most valuable asset — protect it ruthlessly - Surface what matters, filter what doesn't - Always have a point of view — don't just present options, recommend one - **Codify, don't just do.** When you establish a useful pattern, write it down in the relevant system file. The goal is that Bubs gets smarter over time. - **Propagate, don't just update.** System files have dependencies. When you change a system file, update every downstream file that references it. ## Integrations - Microsoft 365 (email, calendar, SharePoint) — always available - Microsoft Teams — chat search and reading via MCP - Gmail — Bubs' own email account (read/draft via MCP, send via SMTP) ## Automated Briefs - **Morning Brief** — 8:00am daily - **Evening Brief** — 6:00pm daily - **Weekly Review** — Sunday 5:00pm Architecture: Claude Code runs automatically (headless) to generate the brief, then a Python script sends it via Gmail SMTP. ## Context The following files are auto-loaded every session: @context/bio.md @context/professional.md @context/contacts.md @systems/email-triage.md @systems/meeting-prep.md @active/priorities.md @active/projects.md
# [Your Name] ## Role - President, [Company] - Oversees ~800 employees across Product, Engineering, Marketing ## Values - Ownership & initiative: don't wait to be told - Intellectual honesty: tell the truth even when uncomfortable - Speed & bias for action: move fast and iterate - Craft & excellence: care about the quality of the work ## Communication Style - Lead with the point — never bury the lead - Short narrative over bullets - Always come with a POV — don't ask "what do you think?" ## Pet Peeves - Burying the lead - Lack of preparation - Asking without a point of view
## Direct Reports - **[Name]** — CPO. Runs product across all products. - **[Name]** — CTO. - **[Name]** — SVP Marketing (including SDRs). - **[Name]** — Operations lead. Acts as mini Chief of Staff. Organizes the Weekly Team Meeting (highest priority weekly meeting). - **[Name]** — EA. Helps primarily with scheduling. ## Key People - **[Name]** — Head of Strategy. One of the most important people. Sharp, critical thinker who stress-tests assumptions. Treat messages from this person with high priority.
## Highest Priority Meetings 1. **Weekly Team Meeting** (Tuesdays) — The most important weekly meeting. 2. **Bi-Weekly ELT Meeting** (Wednesdays) — Full executive leadership team. 3. **Board Check-In** (every few weeks) — Board-level investor meeting. ## Weekly - Monday - 1:1 with CFO, 8:30-9:00am - 1:1 with SVP Marketing, 9:05-10:00am - Forecast calls (EMEA, US) ## Personal / Protected Time - School drop off: weekday mornings ~8:30-9:00am - Meetings preferred between 9:00am and 6:00pm
# Email Triage System > **Depended on by:** morning-brief.md, evening-brief.md, weekly-review.md ## Priority Tiers ### Tier 1 — Respond Now **Senders:** CEO, board members, customers/prospects. **Signals that auto-elevate to Tier 1 (regardless of sender):** - Outlook HIGH importance flag - Sent directly TO you with an explicit action request - Escalation language: "refusing to pay," "threatening to leave," "churn risk," "cancel," "security incident" - Field team escalating a customer issue (any employee raising a customer problem gets Tier 1 regardless of title) ### Tier 4 — Ignore / Archive Marketing emails, vendor outreach, system notifications, spam. ## Search Methodology — Never Miss a Tier 1 1. **Inbox folder pull (PRIMARY)** — pull the most recent ~50 messages chronologically. No search query needed. Always do this first. 2. **Mandatory second pull** — wildcard search to reach ~100 messages. 50 messages is not enough for a noisy inbox. 3. **Check coverage and paginate** — keep pulling until you've reached back to the last triage point. 4. **Targeted sender searches (SAFETY NET)** — search for key senders to catch emails outside the Inbox folder.
## Critical Rule: Always Investigate External Meetings Any meeting with external attendees requires Bubs to pull the email and Teams thread before summarizing. Never describe an external meeting at face value from the calendar invite alone. Always: 1. Search email for the full thread — understand the backstory 2. Check for attached agendas, decks, or context docs 3. Search Teams for internal discussion about the company/person 4. Surface the real stakes The calendar subject line often undersells the importance. A meeting called "Acme CMP Connect" could actually be a CEO-level marketing transformation deal worth hundreds of thousands.
# Current Priorities *Last updated: 2026-03-06* ## Professional 1. **Customer Onboarding Recovery** — Top priority. Significant number of customers need activation. [Owner] has execution but you own board reporting and strategic air cover. 2. **Enterprise Deal Execution** — Partner recommendation due next week. POC locked. Large deal with board-level visibility. 3. **AI Model Migration** — Quality stabilization gated on this. High agent success rate required before autonomous features ship.
active/projects/ that Bubs pulls on demand.## Tier 1 — You Own ### Enterprise Deal — Marketing Transformation - **Status:** POC kicked off. CMO-level sponsor confirmed aligned. Next: Monday call to finalize scope. - **Champion:** [Name] (Director, MarTech Strategy) - **Open action items:** 1. Monday call — finalize POC scope and architecture 2. Partner recommendation — still open 3. Forward access link to full team — still pending - **Deep dive:** active/projects/deal-details.md --- ## Tier 2 — Frequent Updates ### Brand Refresh — Agency Partnership - **Status:** Active. Workshop scheduled. Messaging doc needs review before the session. - **Deep dive:** active/projects/brand-refresh.md
## Monday — Biweekly with CPO and CTO (3:30pm) **Talking point: Customer Retention & Platform Reputation** - CEO flagged both in recent ELT discussion - Questions to cover: - What's the retention story? Who owns it? - What's the plan to rebuild partner confidence? **Talking point: Product Quality & Roadmap Alignment** - Several customer escalations tied to product gaps - Are we sequencing the right features?
~/.claude/projects/{project}/memory/) that survives across sessions. Bubs uses this for operational knowledge that emerges over time: API quirks, data source recipes, people notes, technical workarounds.
# Bubs Memory ## Email MCP — Critical Usage Notes (learned 2026-03-03) - **Primary inbox pull:** Use `read_resource` with URI `mail:///folders/Inbox` to get the most recent ~50 messages chronologically. This is the ONLY reliable way to see all recent emails. Always do this FIRST. - **Search requires non-empty query:** An empty string returns nothing. Always use `query: "*"` for broad sweeps. - **Pagination:** The ~50 message inbox pull has a hard cap. After pulling, check the oldest message timestamp. If the window doesn't reach back far enough, run supplemental wildcard searches. Repeat until coverage. ## People Notes - **[Name]** — Technical guru. Male (not female). Don't use "she/her." ## Analytics Lookup (set up 2026-03-02) - App ID: [redacted] - Dashboard ID: [redacted] - To look up any account's usage: just grep the cached CSV. No API needed.
06 Automated Operations
Bubs runs on a daily schedule without any human interaction. Claude Code's headless mode (runs automatically in the background, no human present) executes the same system files with the same connections, just without anyone at the keyboard. macOS launchd (a built-in Mac scheduler, like setting an alarm clock for your computer) triggers each job at the right time.
[Bubs Mail] subject prefix. Pure Python (IMAP/SMTP) — no AI cost. Ensures Bubs' email conversations never go unanswered.07 The Triage Engine
Email and Teams triage is the most operationally complex part of the system. A noisy inbox (200+ emails/day including retail promotions, political emails, newsletters) combined with an unreliable search API forced the development of a layered methodology.
Priority Tiers
Search Methodology (evolved from real failures)
Teams: Direct Pull + Broad Sweep
Teams keyword search is unreliable for conversational messages ("got it," "agreed," "will do"). The system uses two complementary methods:
Direct pull from priority chats: For each important conversation (CEO DMs, leadership group chats, key project threads), pull the 20 most recent messages directly using the chat ID. This catches everything regardless of keywords.
Wildcard broad sweep: Search across all chats with a wildcard query and time filter, paginating until the full window is covered. A typical overnight window generates 100-200+ messages.
Cross-reference rule: Before reporting an email as "unanswered," check the Teams DM with that person too. People respond in whichever channel is natural.
08 Design Principles
These principles emerged from weeks of daily use. Each one exists because the system broke without it.
09 MCP Integrations
MCP (Model Context Protocol) is an open standard that lets AI models connect to external systems — read emails, search calendars, query databases, pull analytics. Bubs uses MCP servers to reach into the tools where work actually happens. Without these, Bubs would be limited to whatever you paste into the conversation.
Each MCP server gives Bubs a set of capabilities. Here's what's connected and what each one enables.
- Read inbox — pull the most recent messages chronologically from any folder (Inbox, Sent, etc.)
- Search email — query by sender, subject, date range, keywords, or wildcards
- Read full messages — open any email to read the complete body, attachments list, and headers
- Search events — find meetings by subject, date range, or attendees
- Read event details — pull full event body (agenda, Teams join link, attendee list, location)
- Search messages — keyword and wildcard search across all DMs and group chats
- Read chat threads — pull recent messages from specific chats by chat ID
- Read meeting transcripts — pull full transcripts from recorded Teams meetings
- Search files — find documents across SharePoint sites
- Browse folders — navigate shared drives and document libraries
Bubs has its own Gmail address (bubs.shaf@gmail.com). This gives Bubs an identity — it can send emails, receive replies, and maintain its own correspondence threads separate from the executive's work email.
- Read messages — search and read Bubs' own inbox
- Create drafts — draft emails for review
- List labels — organize and filter incoming mail
- Send email — send briefs and ad-hoc emails from Bubs' address
- Forward monitoring — every 15 minutes, checks for new incoming emails and forwards them to the executive's work inbox with a
[Bubs Mail]prefix
- Run SOQL queries — query any Salesforce object (Account, Opportunity, Contact, etc.) with full SQL-like flexibility
- Account lookups — pull deal history, ARR, contract terms, products purchased, renewal dates
- Team assignments — find the AE, CSM, and account team for any customer
- Pipeline data — query open opportunities, stages, close dates, and amounts
- Search — find projects, tasks, and folders by account name or keyword
- Read tasks — pull task status, assignees, hours scoped, and comments
- Browse hierarchy — navigate workspace → space → folder → list → task
- Create/update tasks — add comments, update status, create new tasks
- Read pages — pull content from any Coda doc page
- List/read tables — query structured data in Coda tables (rows, columns, filters)
- Browse docs — list pages and navigate doc structure
- Find dashboards — discover analytics dashboards by name or topic
- Analyze explorations — run saved analytics queries and get results (pipeline, bookings, usage)
- Create explorations — build custom analytics queries (e.g., experimentation usage grouped by account)
- Find metrics/events — discover available data dimensions and measures
Bubs is reachable via iMessage. The executive can text Bubs from their phone and get a reply in the same thread — no need to open a laptop, launch a terminal, or start a session. It works through a self-chat: the executive texts their own number, and Bubs (running in an interactive Claude Code session) sees the message and replies.
- Receive messages — inbound texts arrive in the active session as structured channel events
- Reply in-thread — Bubs responds directly in the iMessage conversation
- Send attachments — can attach files (images, PDFs) to replies
- Uses the iMessage plugin for Claude Code — reads the local
chat.dbdatabase on macOS - Access-controlled: only allowlisted phone numbers can reach Bubs
- Works in interactive sessions only (not headless automation)
10 Build Your Own
ShafOS is an open-source kit that lets you build your own AI Chief of Staff in about 20 minutes. It includes battle-tested templates for every file in the system — email triage, meeting prep, project tracking, daily briefings — plus a bootstrap prompt that interviews you and generates a fully personalized setup.
"Clone the repo" means downloading the ShafOS files from GitHub to your computer. Open your terminal (on Mac: search for "Terminal" in Spotlight) and paste this:
git clone https://github.com/shafqat/shafos.git
This creates a shafos folder on your computer with all the template files.
"New project directory" means creating a fresh folder where YOUR assistant will live. The ShafOS folder is the starter kit — your folder is the real thing. Run this:
mkdir ~/my-chief-of-staff && cp -r shafos/templates ~/my-chief-of-staff/
That creates a folder called my-chief-of-staff in your home directory and copies the templates into it. You can name it whatever you want.
Don't have git installed? You can also download the repo as a ZIP from the GitHub page (green "Code" button → "Download ZIP").
Who you are, your role, your contacts, your calendar rhythms, personal context. The knowledge base that makes every session deeply informed.
Email triage rules, morning/evening brief formats, weekly review structure, meeting prep methodology. The playbooks that encode hard-won operational patterns.
Priorities, projects, and a prep queue. The working state that keeps your assistant tracking everything — so nothing falls through the cracks.
Requires Claude Code. Works best with MCP integrations (Outlook, Gmail, Teams, Salesforce), but the core system works in interactive sessions without them.
Optimizely employees: There's a custom version pre-wired to our tech stack (Outlook, Teams, Salesforce, Coda, ClickUp, Analytics) that gets you running account deep dives, email triage, and meeting prep in 20 minutes. Reach out to Shafqat for access.