Turn Raw News Into a Structured Briefing with Claude Code

hero

If you spend the first 30 minutes of your morning opening, skimming, and closing browser tabs — this is for you. One keyword, one prompt template, and Claude Code collapses a stack of articles into a tight briefing you can actually act on.

overall flow from raw articles to structured briefing

The Problem: Too Much Signal, Too Little Time

The real friction isn't finding news — it's processing it. "AI chips," "Bitcoin regulation," "quant strategy" — if you track five topic areas, you're triaging two dozen tabs before you can think. Generic summarizers just dump bullet points at you. What you need is extraction: pull the parts that matter to your context, structured the way you want to reason about them.

The first thing most people try is pasting articles into a chat UI and typing "summarize this." That works once. It doesn't scale, and the output format shifts every time, so you can't build any downstream workflow on it.

naive single-article chat vs batched pipeline

The fix is to move this into Claude Code with an explicit output schema baked into the prompt.

Why Claude Code Has an Edge Here

Most LLM chat interfaces give you a context window of a few thousand tokens before they start compressing or forgetting earlier content. Claude's context window is a different class of tool — you can hand it a full batch of long-form articles in one shot and it processes the entire thing without losing the early paragraphs by the time it reaches the last one.

That matters for news analysis. A single earnings call transcript, a regulatory filing, or three linked articles on the same story can blow past what most tools handle gracefully. Claude Code absorbs it in one pass.

What worked for me in practice: I tested this on my Mac with n8n 2.8.4 feeding article text as piped input. Five articles in, structured output back, average ~8 seconds. That's fast enough to integrate into a morning routine.

Section 2: The Prompt Templates That Actually Work

The baseline — don't start here but know it exists:

claude "Read the following articles and summarize the top 3 issues related to 'AI chips' as bullet points. Append the source URL after each item."

Pipe your content in via stdin or append it directly. This works, but the output format drifts. You get a different structure each run, which makes it hard to scan quickly.

The structured briefing template — use this:

claude "Analyze the articles below and output in exactly this format:

Key Event: [1 sentence]
Market/Industry Impact: [2 sentences]
Risk I Should Watch: [1 sentence]
Source: [URL]

---
[paste articles here]"

The difference in output quality is substantial. When you constrain the schema, you're not just getting a shorter answer — you're getting a consistently shaped answer. Every run produces something your eyes can parse in 10 seconds.

Here's a real example of what the output looks like:

Key Event: The EU passed final-stage amendments to the AI Act's compute threshold clause, effective Q3 2026.
Market/Industry Impact: Chip manufacturers targeting the EU market will need compliance documentation for models above 10^25 FLOPs. Nvidia and AMD have 18 months to adjust their enterprise licensing structures.
Risk I Should Watch: Small labs training near the threshold may face regulatory grey zones that delay product launches.
Source: https://example.com/eu-ai-act-compute

That's the difference between "summarize this" and a format-constrained prompt. Same article, completely different utility.

prompt quality effect on output structure

Section 3: Keyword-Based Filtering Across Multiple Topics

Once you've got the single-topic pattern working, the next step is tracking multiple interest areas simultaneously without writing a separate prompt per topic.

Create a keywords.txt file with one keyword per line:

AI chips
Bitcoin regulation
quant strategies
Fed policy
open source models

Then run:

claude "Using the keywords in 'keywords.txt', filter the following news batch and group relevant articles under each keyword. Summarize each group using this format:

Key Event: [1 sentence]
Market/Industry Impact: [2 sentences]
Risk I Should Watch: [1 sentence]
Source: [URL]

---
[paste bulk articles here]"

This produces a segmented personal newsletter in one pass. Each keyword section is independently scannable. You're not reading the same story twice because two of your topics overlap — Claude handles deduplication naturally when you ask for grouped output.

multi-keyword filter flow

Gotchas I hit:

  • Vague keyword matches: If your keyword is "regulation," Claude may pull in articles tangentially related. Tighten it: "EU AI regulation 2026" outperforms "regulation" by a lot.
  • Context length ceiling: Even with a generous window, if you're piping 50 long articles, you'll hit a point where early content gets deprioritized. Batch in groups of 10-15 for cleaner output.
  • URL accuracy: Claude can hallucinate URLs when you paste article text without metadata. If source accuracy matters, always include the URL in the pasted content itself — don't ask Claude to infer it.
  • Mac vs. Linux input piping: On macOS, pbpaste | claude "..." works cleanly. On Linux, substitute with xclip -o | claude "..." or use a temp file approach.

Automating with n8n (optional but powerful):

If you want this to run without manual input, wire up an n8n HTTP Request node to fetch RSS feeds, pass the content to a Claude Code node, and route the output to Slack or email. That's a separate build — but the prompt templates above are drop-in compatible with that pipeline. The manual version works fine as a daily habit; the automated version just removes the trigger step.

Closing

The gotcha that separates useful AI news summaries from noise is format control. A structured output schema isn't just aesthetic — it's what makes the output usable downstream, whether that's a quick scan, a spreadsheet, or an n8n pipeline. Build the template once, reuse it daily.

Next step worth trying: chain this with a Slack webhook so the briefing lands in a dedicated channel every morning before you open your laptop.


🐦 Faster updates on X: @baegseungh7061
📚 More in this series: Code Intro
💌 Subscribe: Follow on X or grab the RSS

댓글