Building in public · 01 · Morning brief
Build your own morning brief
One email at 07:00 with the eight to twenty things that matter to your work, chosen by rules you wrote. Two clicks, one prompt, and Claude does the rest inside your own Gmail.
What you get
At 07:00 one email is waiting. It has read the sources I chose overnight, kept the eight to twenty items that matter to my work, and written two to four sentences on each one with a link under it. The one item to read first is at the top. It takes about two minutes and I never open a feed again that day.
Mine goes further: it triages my inbox, checks my calendar, researches the three most important items and attaches a spoken version in four voices. None of that is needed to start. This kit is the core: collect, curate, write, send. It runs as a Claude Code cloud routine, so nothing depends on your laptop being awake.
Before you paste
- Connect Gmail. In claude.ai open Settings → Connectors, find Gmail, press Connect. The brief is sent from your own address and your settings live in a Gmail draft, so this is the one thing Claude cannot do for you.
- Give Claude a cloud environment that may reach the internet. In the Code tab, under the message box, press the small Default button → Cloud → Add cloud environment…. Name it "Morning brief", set Network access to Full, save, and select it. The default environment blocks every outside connection, so without this no feed can be read.
Both take a minute and you do them once. A paid Claude plan with the Code tab is assumed.
The prompt
Paste this into the message box of the Code tab, with the "Morning brief" environment selected, and press send. It checks the two clicks above first and tells you exactly what to do if one is missing.
Set up my morning brief. Ask me a few questions, then build everything inside Claude and my Gmail. Nothing to install, nothing to configure outside this conversation. Work through the steps in order and do not skip the checks.
**Step 1. Check what you can reach.**
Load the Gmail tools with ToolSearch. If there are none, print exactly this and stop:
"Connect Gmail first: claude.ai → Settings → Connectors → Gmail → Connect, then paste this prompt again."
Then use WebFetch on https://hnrss.org/frontpage. If it returns an error such as EGRESS_BLOCKED or a connection failure, print exactly this and stop:
"This session cannot reach the internet. Under the message box press *Default* → *Cloud* → *Add cloud environment…*, name it Morning brief, set Network access to Full, save, select it, then paste this prompt again."
**Step 2. Interview me, one question at a time.** Wait for each answer.
1. What is your name and what do you do? (role, company or field, and the one or two things you do outside the job that you want to follow.)
2. Which three to five topics must never be missed? Name them the way you would to a colleague.
3. Which email address should receive the brief?
4. What time should it arrive, and in which timezone?
5. Which language should the brief be written in?
6. Do you read newsletters by email? If yes, I can also read the newsletters that arrive in your inbox and include the useful items, read-only, nothing gets archived or replied to. Yes or no?
**Step 3. Find my sources.**
For each topic, use WebSearch to find real RSS or Atom feeds from primary sources, respected blogs and publications, and verify every URL with WebFetch. Drop anything that does not answer. Aim for 10 to 15 feeds in total, grouped by topic, and add the Hacker News front page feed (https://hnrss.org/frontpage?points=100) unless my topics are far from technology. Show me the list with one line per feed saying what it covers and let me add or remove before you continue.
**Step 4. Write my settings into Gmail.**
Create one Gmail draft with the subject exactly `Morning brief · settings` and this plain-text structure:
Profile — my name, what I do, the delivery address, time, timezone and language, and whether inbox newsletters are a source.
Sources — one line per feed: group name, then the URL.
Curator rules — write them for me from these principles: a total of 8 to 20 items per brief, quotas per group (0 to 5 each, more for the groups I said matter most); an item qualifies when it has a concrete idea, data or a story from a primary source; banned: funding announcements without substance, engagement bait, listicles, motivational fluff, anything already sent in the last seven days; mark exactly three items as deep dives, the three most valuable of the day, and give each a sharper one-sentence question the writer must answer; every item carries a one-sentence why tied to my work, and an item without a specific why does not belong.
Writer rules — plain text, no emoji, no headings in capitals; the groups in order, each name on its own line; one paragraph of two to four sentences per item saying what happened and why it matters to me; the link alone on the line under each paragraph; a two-line opener naming the one thing to read first; one closing sentence to carry into the day; 400 to 700 words; never invent a number, a name or a quote.
Habits — leave it empty; this is where my replies will land.
Then tell me: "This draft is your settings. Edit it any time; the brief reads it every morning."
**Step 5. Send the first brief now.**
Fetch every source with WebFetch, keep only entries from the last 48 hours, apply the curator rules, write the email per the writer rules, and send it to my address with the subject `Morning brief — <Weekday, Mon D>`. Tell me what you sent in two sentences.
**Step 6. Schedule it.**
Create a routine with CronCreate: name "Morning brief", running every day at the time I gave you converted to UTC, in this same cloud environment, with Gmail. Its prompt is the text between the lines below, verbatim and complete. Give me the routine's link.
---
You are my morning brief. Everything you need is in my Gmail. Work in this order and never stop before the email is sent.
1. Load the Gmail tools with ToolSearch. Use list_drafts to find the draft whose subject is exactly "Morning brief · settings" and read it with get_draft. It has the sections Profile, Sources, Curator rules, Writer rules and Habits. If it is missing, email me that it is missing and stop.
2. Learn from my replies. Search Gmail for `from:me subject:"Morning brief" newer_than:2d`. Skip any message whose id already appears under Habits. Turn each other reply into one rule stated positively (what to do, not what to avoid) and append it to Habits as one line: `- <rule> (from <message id>, <date>)`. Save with update_draft, keeping every other section exactly as it was. Habits override the rules above them where they conflict.
3. Remember what I already read. Search `in:sent subject:"Morning brief —" newer_than:7d` and read those emails. Any story in them is banned today, even under a different link, unless there is genuinely new information; then say so in the item.
4. Collect. For every URL under Sources, use WebFetch with the prompt "List every entry published in the last 48 hours: title, link, date and the first 300 characters. Say 'no recent entries' if there are none." Fetch all before deciding. If a fetch fails, skip that source and keep its name for the last line of the email.
5. Curate. Apply the Curator rules to everything collected, then the Habits. Keep the quotas. Skip a group when nothing qualifies. Never pad, never invent.
6. Write per the Writer rules: plain text, the groups in order, one paragraph per item on what happened and why it matters to me, the link alone on the line under it, a two-line opener naming the one thing to read first, one closing sentence, 400 to 700 words. The last line names the sources that failed today, or says "All sources answered."
7. Send it to the address under Profile with the subject `Morning brief — <Weekday, Mon D>`, dated in my timezone from Profile. First search `in:sent subject:"Morning brief — <that date>"`; if one exists and this run was not started by hand, stop without sending.
The draft and the sent mail are the only memory. Never delete the draft. Never reply to anyone. Never send anything except the one brief.
---
Finish with exactly: "From now on, reply to any brief with one sentence to change it; the next morning has learned it."What happens next
- Claude interviews you, one question at a time: who you are and what you do, the three to five topics you must not miss, the address, the time and timezone, the language, and whether it may also read the newsletters in your inbox.
- It finds your sources. Ten to fifteen feeds for your topics, each one fetched and verified before it is kept. You add or remove before it continues.
- It writes your settings into Gmail. One draft called Morning brief · settings holds your profile, the sources, the curator rules written for you, the writer rules and an empty Habits section. Open the draft any time and edit it; the brief reads it every morning.
- It sends the first brief right away, so you see the result before anything is scheduled.
- It schedules itself. A routine named Morning brief runs every day at your time, in the same environment, with the runtime prompt below. The link to it is the last thing Claude gives you.
- You teach it by replying. Answer any brief with one plain sentence, "less regulation, more leadership" or "say the publisher, not the URL". The next morning's run turns the reply into a rule under Habits, and the curator and writer follow it from then on. A reply is applied once; the rules stay.
Nothing is stored outside your Gmail and the routine. The draft is the settings, the sent briefs are the memory, and deleting the routine ends it.
Under the hood
The setup prompt condenses two longer prompts from my own brief into your settings draft. They are here for the curious, and for anyone who wants to tighten their rules by hand. The third block is the runtime prompt the routine runs every morning, exactly as the setup prompt embeds it.
The curator prompt
# Curator prompt — what makes today's brief
[Who I am: role, company, the two or three things I work on outside the job, what I write about.]
Everything you select is judged against those things.
## Quotas per section
Total items across all sections: **8–20**, plus exactly one meme. Skip a section when nothing
qualifies. Never pad. Never invent.
- **My circle** — 0–5. Every post by my company's page or a colleague worth knowing about,
including low-engagement ones (those are the people I can support with a comment), any post
mentioning the company, and the best posts by the people on my list. Never repeat one already sent.
- **[Field 1, e.g. leadership and org design]** — real substance only: case studies, data,
frameworks, contrarian evidence.
- **[Field 2, e.g. AI adoption and agents]** — AI as an org and people problem, adoption case
studies and failures, tooling and workflows, practical how-tos.
- **Regulation watch** — new guidance, enforcement, deadlines, standards. Include an item when it
changes what someone in my position must do or know. Skip vendor press releases about
"achieving" a certification unless they reveal something about the process.
- **Research** — 0–3 papers with a finding I can actually use. Prefer studies with data over
position papers; skip pure architecture papers unless they change what practitioners should do.
- **From my newsletters** — 0–4 items the inbox triage judged useful. Never duplicate an item
already placed elsewhere.
- **Around town** — 0–4 events in [my city] within 14 days, soonest first. Take an event when I
would meet people who matter to my work or when the topic is one I speak about myself. Prefer
in-person. Skip paid trainings, job fairs, language classes and anything that reads as a sales
pitch. "Networking" is not a reason; name who I would meet or what I would learn.
- **From Reddit** — 0–3 posts with a real insight, benchmark, workflow or well-argued debate.
Skip hype, complaints and screenshots without substance.
- **World · [my country] · [my home country]** — 3–5 items per region, most significant first.
Skip sports, celebrity and crime-blotter items.
- **Also noted** — up to 5 items that are interesting but did not make a section. Genuinely optional.
- **Meme** — exactly one, the funniest a senior engineer would actually laugh at.
## Selection rules
Prefer primary sources and posts with a concrete idea, data or story. For social posts require a
real idea: favour higher engagement, but niche voices in my fields count even with low numbers.
**Exclude**: funding rounds and product PR without substance; foreign domestic-politics noise
unless it directly affects my field; engagement bait and motivational fluff; listicles;
crypto and finance spam; anything whose URL or story was already sent this week.
## Weights and dedupe
Each source group has a weight (1.0 is neutral; I raise one when I want more of it). Multiply
your own judgement by it: a 1.5 on regulation means take the fourth regulation item you were
hesitating over. It does not mean take a bad one.
The last seven briefs are your dedupe list. A URL there is banned. A story there is banned even
under a different URL, unless there is genuinely new information today; then say so.
## The three deep dives
Mark exactly three items as deep dives: the three most valuable of the day, from any section.
Each gets a research question sharp enough for five to eight sentences of substance.
## The "why" field
One sentence, written for the writer, tying the item to my work, my side projects or what I
write about. "Relevant to AI" is not a why. If you cannot write a specific one, the item does
not belong in the brief.
## Habits
The Habits section of the settings draft holds rules written from my replies to earlier briefs.
They override the quotas and preferences above where they conflict.The writer prompt
# Writer prompt — the email
One plain-text email from the curator's shortlist. No HTML, no emoji, no headings in capitals.
Structure: the groups in the order the shortlist gives them, each name as a line on its own.
Under it, one paragraph per item: 2 to 4 sentences that say what happened and why it matters
to me, using the curator's *why* and the item's text. Never put a URL inside a sentence; end
each paragraph with one line that is only the link.
Start with a two-line opener: the one item to read first and why. End with one sentence to
carry into the day. Total length 400 to 700 words. Never invent a number, a name or a quote;
if the item's text does not say it, leave it out.
Every rule under Habits in the settings draft applies to this email, before anything above.
Send it with the Gmail connector to the address in the Profile, subject
`Morning brief — <Weekday, Mon D>`.The runtime prompt
You are my morning brief. Everything you need is in my Gmail. Work in this order and never stop before the email is sent.
1. Load the Gmail tools with ToolSearch. Use list_drafts to find the draft whose subject is exactly "Morning brief · settings" and read it with get_draft. It has the sections Profile, Sources, Curator rules, Writer rules and Habits. If it is missing, email me that it is missing and stop.
2. Learn from my replies. Search Gmail for `from:me subject:"Morning brief" newer_than:2d`. Skip any message whose id already appears under Habits. Turn each other reply into one rule stated positively (what to do, not what to avoid) and append it to Habits as one line: `- <rule> (from <message id>, <date>)`. Save with update_draft, keeping every other section exactly as it was. Habits override the rules above them where they conflict.
3. Remember what I already read. Search `in:sent subject:"Morning brief —" newer_than:7d` and read those emails. Any story in them is banned today, even under a different link, unless there is genuinely new information; then say so in the item.
4. Collect. For every URL under Sources, use WebFetch with the prompt "List every entry published in the last 48 hours: title, link, date and the first 300 characters. Say 'no recent entries' if there are none." Fetch all before deciding. If a fetch fails, skip that source and keep its name for the last line of the email.
5. Curate. Apply the Curator rules to everything collected, then the Habits. Keep the quotas. Skip a group when nothing qualifies. Never pad, never invent.
6. Write per the Writer rules: plain text, the groups in order, one paragraph per item on what happened and why it matters to me, the link alone on the line under it, a two-line opener naming the one thing to read first, one closing sentence, 400 to 700 words. The last line names the sources that failed today, or says "All sources answered."
7. Send it to the address under Profile with the subject `Morning brief — <Weekday, Mon D>`, dated in my timezone from Profile. First search `in:sent subject:"Morning brief — <that date>"`; if one exists and this run was not started by hand, stop without sending.
The draft and the sent mail are the only memory. Never delete the draft. Never reply to anyone. Never send anything except the one brief.Week two
One thing I added once the core ran for a week: a spoken version. The script is written for ears, no URLs and no bullets, and four ElevenLabs voices read it, one of them my own clone. It is not in this kit; it is a Saturday afternoon once the core is stable.
Tomas Kruty · AI Lead, Founda Health · Amsterdam. The full system, with its ten agents, is described in the carousel this kit came with.