How to Build a Morning Briefing Agent for Your Documents
A digest lists yesterday's reads; you still do the thinking. A briefing arrives with the thinking done: who moved, why it matters, who to call first, and what to open with. That last step — judgment over the data — is exactly what an agent adds.
The build is small because the pieces exist: your workspace is already connected over MCP, the agent already knows the tools, and Claude Code runs headless on a cron. The only thing to write is the standing prompt.
Write the standing prompt
The prompt is the agent's job description — which tools to sweep, how to
rank, and what a useful briefing looks like. Save it as
briefing-prompt.md:
You are my document-engagement briefing agent. Every run:
1. Sweep: list-documents, then list-document-sessions for each —
keep only sessions from yesterday.
2. Rank by signal strength: return visits beat deep reads beat
full skims beat opens. Weigh dwell on money/decision pages
extra. Use get-document-session when a pattern needs detail.
3. Brief me in this shape:
- CALL FIRST: one name, the evidence, a suggested opener
(grounded in what they read — never mentioning tracking).
- THEN: two or three more, one line each.
- QUIET: anything expected that did not happen (silent
recipients on active deals).
4. Be honest about thin data — "one 8-second glance" is not
interest, and say so.
The ranking rules matter more than the prose: they're the same signal hierarchy the follow-up playbook uses, handed to the agent as policy.
Read a real briefing
Run against a working workspace — eleven tracked documents, one Tuesday's reading — the agent swept 20+ session lists and came back with this:
THEN:
• Anja Brandt (TechPost) re-opened the press kit straight to the fact sheet — she's verifying numbers for a draft; offer the founder interview today.
• Sandra Okafor read the July investor update cover to cover, 3m51s — her third straight and deepest; she should hear about the round early.
• Rachel Kim skimmed half the update in 20 seconds on her phone — aware, not engaged. Group-update tier.
QUIET: Tobias Brandt still hasn't opened any of three updates — that's a delivery problem or an answer. And nobody from Okafor Capital has touched their July report five days in.
Every claim maps to a session record — the 85 seconds, the fact-sheet return, the three-for-three streak. The agent's contribution is the ordering and the openers; the evidence is all data.
Put it on a schedule
Claude Code runs prompts headless with claude -p,
which makes the briefing a cron job:
# one-time: connect the workspace
claude mcp add --transport http apdf https://apdf.io/mcp/main
# every weekday at 07:45
45 7 * * 1-5 cd /opt/briefing && claude -p "$(cat briefing-prompt.md)" >> briefings.log
Pipe the output wherever your morning lives — append a Slack post to the prompt (“then POST the briefing to this webhook”) and it lands in the team channel like the digest does, judgment included.
Where to go from here
The briefing sits on top of everything this series built.
Related tutorials
Ask Claude Which Deals Are Hot
The morning question isn't about one document — it's 'across everything, who should I call first?' With the workspace connected over MCP, the agent sweeps every document's sessions, ranks re-opens over deep reads over skims, and answers with evidence: the Arslans came back for the price page.
Connect Claude Desktop to Your Document Workspace
One OAuth sign-in and your tracked documents become something you ask: 'who read the July update?' comes back with names, pages and minutes; 'share the pricing guide with Elif' mints her tracked link — no dashboard trip, no API keys, and the same conversation can transform the PDF itself.
Mint PDF Tracking Links from ChatGPT
The share decision happens mid-conversation, not in a dashboard tab. The MCP server speaks to any client — including ChatGPT — so 'share the pricing guide with Elif' mints her tracked link inside the draft you were writing, and the same chat checks who read and kills a leaver's old link.