“A kitchen timer that also does the cooking: n8n wakes on schedule, fetches the ingredients, asks Claude to plate them, and leaves the dish out, with no one standing over the stove.”
Node 1: Schedule Trigger
Add the node named Schedule Trigger and set it to fire once a day at your wake-up hour (e.g. 06:30). Double-check the instance timezone: the trigger fires in the instance's timezone, which is why Chapter 2 set `GENERIC_TIMEZONE`. This node is what makes the brief "happen overnight."
Node 2: HTTP Request to Brave
Add the HTTP Request node. Method GET, URL `https://api.search.brave.com/res/v1/web/search`, with your query as the `q` parameter. For auth, add a Header Auth generic credential with header name `X-Subscription-Token` and your Brave key as the value (this keeps the key out of the node body). Here's the shape as a curl, so you can see exactly what the node sends:
curl -s "https://api.search.brave.com/res/v1/web/search?q=YOUR+TOPIC&count=10" \
-H "X-Subscription-Token: $BRAVE_API_KEY" \
-H "Accept: application/json"`Accept: application/json` is good practice but not a documented requirement; Brave returns JSON regardless. If you watch several topics, either run one HTTP Request per topic (mind the 1 q/s free-tier limit, so space them out) or loop. The response's `web.results` array is what you'll hand to Claude.
Node 3: Claude synthesis
You have two equivalent options. The simplest is n8n's native Anthropic node (or the AI Agent root node with an Anthropic Chat Model sub-node attached); both use an Anthropic credential holding your API key. If you'd rather keep it explicit, use another HTTP Request node hitting the Messages API directly:
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 1500,
"messages": [
{ "role": "user", "content": "SYNTHESIS_PROMPT + the Brave results here" }
]
}'Model choice is a cost/quality dial: claude-haiku-4-5 is cheapest and fine for straight summarising, claude-sonnet-4-6 is the balanced default for a daily brief, and claude-opus-4-7 is the most capable for harder judgement. Pass the Brave results from Node 2 into the message content; the actual instructions live in the prompt, which is Chapter 5. (Confirm current model IDs in the Anthropic docs, since they update.)
Node 4: Write the note to your vault
Take Claude's text output and write it to a file in your vault folder. Self-hosted n8n with access to the disk can use the Read/Write Files from Disk node (write mode); name the file from the date, e.g. `2026-05-25 Brief.md`, in your Briefings path. If n8n can't reach the vault's disk directly (Cloud, or a container without the volume mounted), deliver the brief another way: write via the Filesystem MCP route from Chapter 3, push to a synced folder, or send it to yourself by email/Slack.
Run it once by hand
Don't wait until 6:30am to find out it's broken. Use n8n's Execute Workflow (manual run) to fire the whole chain now, then check the vault. Iterate on the manual run until the note looks right; only then trust the schedule.
In one line each
- Four nodes in a line: Schedule Trigger → HTTP Request (Brave) → Claude → write file.
- Brave auth = Header Auth credential with `X-Subscription-Token`; mind the 1 q/s free-tier limit if you watch several topics.
- Synthesise with the native Anthropic/AI Agent node or a direct Messages API call; pick the model as a cost/quality dial.
- Write the dated note to your vault path, and if n8n is containerised, mount the folder or the file lands inside the container. Test with a manual run before trusting the schedule.
Where to go next