← Back

Two agents I use to stay focused

I think the best founders are honest and reliable. They remember what matters to you, and they follow through on what they said they’d do.

Being a founder also makes that very hard. You say “I’ll send that over” six times before lunch. Each one is sincere. By Thursday, two of them are gone. Nobody chases you. They’re being polite. They just move you, very slightly, down the private league table they keep of people who do what they say. Somewhere below the colleague who microwaves fish.

My system has always been paper, and in a way it still is. Writing as I think, pen on paper, sticks in my memory in a way typing never has. But paper is famously hard to search. There’s no plain-text search across a shelf of Leuchtturm notebooks, and the promise I made in passing at minute 43 of a call never made it into one anyway.

The truth is I was losing track of things. I needed some form of accountability.

Some people would hire a personal assistant for this. Someone to sit in the meetings, take the notes, manage the inbox and the calendar, and keep them honest. This is my version of that.

For the first time, I think AI is having a real effect on this. Not a demo. A thing I rely on every morning. I highly recommend it, so here’s the whole setup, including every prompt.

What it does

Two scheduled agents run on a Mac mini at home:

  1. Meeting capture. Every hour it finds meetings that have finished, reads the full transcript, and writes a meeting note. It updates a note for every person and company involved, extracts every commitment with an owner and a date, and links it all together.
  2. The daily note. Every weekday morning it builds my plan for the day: meetings with the context I need to walk in with, things that are overdue, people waiting on me, things I forgot, and the small ad hoc tasks that never make it into Linear.

I edit the daily note through the day. Tick things off, scribble what came up, add tasks. The next morning’s run reads it, so tomorrow’s note knows what today actually looked like.

That loop is what makes it work. Neither agent starts from a blank page. Every run can search the sum of everything written before it: past meetings, people, companies, concepts and memories. When a meeting note says someone wants “the pricing update before the board”, the agent can work out which pricing discussion and which board, because it can read the last meetings where both came up.

That’s why the notes are so accurate. They get more useful the longer you run them.

Structure beats cleverness

My notes have five sections:

  • People. One note per human. A rolling summary at the top, an append-only log of every interaction underneath.
  • Companies. Customers, prospects, investors, vendors. Same shape.
  • Meetings. One note per meeting, with a link to the raw transcript.
  • Concepts. Hiring, pricing, fundraising, a product idea. Each concept note indexes every meeting and person connected to it.
  • Memories. Durable context the agents need between runs, plus a ledger of what they’ve already processed and when.

Everything links to everything. A meeting note links its attendees, their companies and the concepts it touched. Open a person and you see every conversation you’ve had with them. Open a concept and you see who you’ve discussed it with.

Memories does two jobs. It holds the things that don’t belong to one meeting: a standing decision, a preference, how a relationship has shifted. And it records where the agents got to, so a run that crashes halfway picks up where it left off instead of processing the same meeting twice.

This structure matters more than the model. An agent with a fixed place for everything writes consistent notes. An agent told to “take notes” can invent a new format every run.

Feed it everything you work in

The notes on their own are only half of it. Connect your email (Google or Outlook), calendar, Slack, Notion, Google Drive, Linear, and anywhere else you create work. Then tell the prompts to check them.

When the daily note prepares me for a call with someone, it doesn’t just read their People note. It searches my inbox and Slack for recent threads with them, finds the doc we were both editing last week, and checks whether the thing I promised them in the last meeting ever went out. The same goes for companies and concepts.

This is the difference between a summary and a briefing. Each run pulls in what’s happened since, so the notes get more relevant to you every time.

Picking the tools

I use NotePlan. Notes are plain text, stored encrypted in iCloud, which I like for something holding this much about my life. The catch: its MCP server talks to the app running on a Mac. No cloud API to hook into. So you need an always-on machine. Mine is a Mac mini home server, and both scheduled tasks run there.

Craft works, but its MCP is limited and the formatting it produces is poor. You’ll spend time fixing headings and lists by hand.

Notion’s MCP is very good, and if your notes already live there it’s the easiest path. I held back because I wasn’t sure it was the right place to keep personal notes alongside a workspace I share with the business. If you have a personal Notion, that concern goes away.

For recording, I use Granola. Other note takers are available. I like it as a sketch pad during a meeting. Being able to scroll back through what was said a minute ago, or ask it, is great. Its summaries are weak, though, and it’s bad at combining a meeting with the rest of my business context. It doesn’t know who these people are, what we discussed last month, or what I owe them. So I treat Granola as the transcript source and nothing more. The transcript is the source of truth. The agent writes the summary.

For the model, I use Opus 5.5. You could realistically run this on Sonnet 5 and get decent results. Meeting capture is the more demanding of the two, because it has to catch the throwaway commitment and match “Sam” to the right Sam.

The meeting capture prompt

This runs hourly. Swap in your own tool names and folder names.

You turn my finished meetings into notes. You run unattended, so stay silent
if there's nothing new.

1. Read Memories/_ledger. It lists every meeting already processed and when
   you last ran.

2. List meetings from my recorder for the last 7 days. Skip any that are in
   the ledger, ended less than 15 minutes ago, or have no transcript yet.

3. For each new meeting, fetch the full transcript. The transcript is the
   source of truth. The recorder's own summary is a hint at best.

4. Before writing anything, gather context:
   - Read the People note for every attendee and the Companies note for
     their organisation.
   - Search my email, Slack, Google Drive and Notion for those people, that
     company and the meeting's main topics over the last 30 days.
   - Search Concepts and Memories for anything the meeting touched.

5. Write Meetings/{YYYY-MM-DD} · {Short title} with these sections, in this
   order, every time:
   - Summary: one paragraph. What changed, not what was discussed.
   - Key points: short bullets.
   - Decisions: in bold. Leave the section out if nothing was decided.
   - Action items: "- [ ] {Owner}: {action} >{YYYY-MM-DD}"
   - Link every person, company and concept by name.

6. Pull commitments from the transcript, not the summary. Things said in
   passing count: "I'll send that over", "let me check with the team".
   Every action item has a named owner and a date. If no date was agreed,
   infer a sensible one and mark it (assumed). If nobody owns it, it isn't
   an action item.

7. Update People and Companies. Search for spelling variants and first-name
   matches before creating anything. Append a dated entry to the log and
   rewrite the summary to reflect where things now stand. If two notes could
   be the same person, stop and ask me. Never create a duplicate.

8. Update Concepts. Add this meeting to each concept's index and rewrite the
   concept's summary if its state changed.

9. Write anything worth remembering beyond this meeting to Memories: a
   standing decision, a preference, a change in a relationship.

10. Add the meeting to the ledger only after every note is written. A crash
    should leave the meeting unprocessed and retryable, never silently lost.

Never mark a task done. Never edit an existing log entry. Never attribute a
quote to someone the transcript doesn't attribute it to. Never invent a job
title, email address or company.

The daily note prompt

This runs at 06:30 on weekdays.

Early versions included everything: login alerts, receipts, calendar accepts. A note full of noise is a note you stop reading. The fix was making the filter default-deny. Something earns a place only if it clears a bar, and most things don’t.

You write today's daily note.

THE FILTER. Default deny. An item earns a place only if:
- a named person is waiting on me for a reply, decision or deliverable
- I committed to something and it isn't done
- a hard date binds it today or this week
- money, a deal or a hire needs me
- I have a meeting today that needs preparation

Never include: login and security alerts, receipts, newsletters, CI and
monitoring alerts, calendar accepts and declines, bot posts, anything I was
only copied on. If you can't name the person waiting or the date that binds,
leave it out. A short note I trust beats a long one I skim.

1. Read yesterday's daily note in full. Anything unticked carries forward.
   Anything I added by hand tells you what I actually worked on.

2. Read Memories for where things stand and what you noted last run.

3. Gather: today's calendar, every open task in my notes, email and Slack
   DMs and mentions from the last 24 hours (72 on a Monday), and Linear
   issues assigned to me.

4. For each meeting today, read the attendees' People notes, their Companies
   notes and my last meeting note with them. Search email, Slack and Drive
   for recent threads with them. Tell me what I need to walk in knowing and
   what I owe them.

5. Check my promises against reality. For every open commitment, look for
   evidence it's done: a sent email, a Slack reply, a merged PR, a shared
   doc. If you find it, list it under "Probably done" with a link to the
   evidence. Don't tick it. I do that.

6. Look for what I missed: a question in a thread nobody answered, a promise
   in a meeting that never became a task, a conversation that's gone quiet
   for over a week.

7. Write the note in this shape:
   ## Today
   2 to 4 bullets. The shape of the day and the one thing that matters most.
   ## Meetings
   ### {HH:MM} {Title} ({attendees})
   Where things stand. What I owe them.
   ## Overdue
   ## Waiting on me
   - {Person}: {what they need} (since {date})
   ## Probably done, please confirm
   ## You might have missed
   ## Ad hoc
   Leave out any section that's empty, except Today.

8. Update Memories with anything you'll need tomorrow.

If today's note already exists, update it in place. Keep anything I've
written by hand.

Three prompts to run on top

Once the daily note exists, these make it easier to use. You can fold them into the main prompt or run them on demand.

Cut the fluff. Model output drifts wordy. This pass makes the note easier to scan, and ADHD-friendly.

Rewrite today's note so it's easier to act on. Assume I lose the thread in
dense text.
- One idea per bullet. No bullet longer than two lines.
- Start each bullet with the person's name or the verb.
- Cut anything that doesn't change what I do today.
- No intros, no summaries of summaries, no "it's worth noting".
- Put the single most important thing first, in bold.
- Keep every link, date and task. Change the words, never the facts.

Check it’s actually done. Ticked doesn’t always mean done, and unticked doesn’t always mean not done. This catches both.

Go through every task in my notes due in the last 14 days, open or ticked.
For each, look for proof it happened: a sent email, a Slack message, a
merged PR, a closed Linear issue, an edited doc.

Report three lists:
- Done: with a link to the evidence.
- Not done: including anything ticked with no evidence behind it.
- Can't tell: and what would settle it.

Don't change any task. I'll do that.

One step at a time. A list of 14 things is a wall. This turns it into a conversation.

Walk me through today's note one item at a time. Show me only the next item,
the context I need for it, and the first physical action I should take.

Then wait. When I reply:
- "done": tick it and show the next item.
- "skip": move on without changing it.
- "later": give it a new date, tell me what you chose, and move on.

When we reach the end, tell me what's left and what moved.

Running it in the cloud

If you don’t use NotePlan, you don’t need the Mac mini. Use Notion or Craft and run both agents as Claude Code routines in the cloud.

A scheduled sweep has one drawback: a meeting that ends at 10:05 waits for the next run.

If you’re comfortable with webhooks, you can close that gap. Routines can be fired through an API1, so anything that knows a meeting has finished can kick off the capture straight away. If you’d rather not write code, Zapier can do it too. Granola’s Zapier integration triggers when a note lands in a folder2, and a webhook step can call the routine from there.

Keep the hourly sweep running either way. The ledger stops a meeting being captured twice, and the sweep catches anything the webhook missed.

Anthropic, I’d love to trigger a skill from a webhook. Please make it happen!

What changed

I focus better. I start the day with one note that says what matters, instead of opening six apps to work it out. The ad hoc stuff has a home, so it stops rattling around my head.

It keeps me honest. Every promise I make in a meeting turns up with a date on it. When I walk into a call, the note tells me what I said I’d do last time and whether I did it. That’s uncomfortable some mornings. It’s meant to be.

Less falls through the cracks. The daily run carries yesterday forward, so an unfinished task doesn’t disappear.

It sees what I missed. This one surprised me most. It flags the question in a thread I never answered, the follow-up that went quiet, the thing someone mentioned two meetings ago that I should ask about. Those are exactly the things I don’t catch myself.

Where to take it next

The same structure extends well beyond the daily note:

  • 1:1s. Before each one, pull everything since the last: what they shipped, what they raised, what you promised them.
  • Personal reflections. A weekly run over your daily notes that tells you where your time went, compared with where you said it would go.
  • Picking up work. When a meeting ends with “I’ll write up the spec”, an agent can have a first draft waiting before you’ve left the call.

Start with the daily note. Give it a week to build up context. Then look at what you would have dropped without it.

Easier still, ask Claude to read this post and set it up for you. If your recorder is connected, it can even backfill notes from your past transcripts.

Footnotes

  1. Trigger a routine through the API, Claude Platform docs ↩

  2. Zapier integration, Granola help centre. Paid plans, desktop app only. ↩