# AI Rundown

Scans AI and developer tooling news each week, drops anything you already covered, and drafts a linked rundown post with a stated through-line. Every edition lands as a draft.

- Category: Content
- Steps: 2
- Cadence: Runs weekly
- Cost: Fetches every active source on each run, so this is the most token-heavy template in the library. Weekly is the default for that reason, and removing a source is the fastest way to cut the cost.
- Version: 1

## What gets installed

- A Rundown Sources type with 5 working sources: Hacker News, Anthropic, OpenAI, Google DeepMind, Google Developers
- A Rundown Editions type that keeps every edition and what it covered
- Daniel, Business Intelligence Analyst as the agent
- One weekly workflow, schedule off until you enable it

Installs into an existing project. Existing content is not overwritten, and the recurring schedule stays off until it is turned on in the dashboard.

## How it works

# AI Rundown

A weekly workflow that reads AI and developer tooling news, skips stories you already covered, and drafts a linked rundown for a human to approve.

## What it installs

- `rundown-sources`: five working sources, editable as content
- `rundown-editions`: one object per edition, including the URLs it covered
- Agent: Daniel, Business Intelligence Analyst (`business-intel-analyst`)
- One weekly workflow in two steps, created with its recurring schedule disabled

## The sources

| Source | URL |
| --- | --- |
| Hacker News | `https://news.ycombinator.com` |
| Anthropic News | `https://www.anthropic.com/news` |
| OpenAI API Changelog | `https://platform.openai.com/docs/changelog` |
| Google DeepMind Blog | `https://deepmind.google/discover/blog/` |
| Google Developers Blog | `https://developers.googleblog.com` |

Add your own by creating another Rundown Source with an `active` switch on. The one requirement is that the page renders its headlines in plain HTML. `fetch_url` does not execute JavaScript, so a client-rendered index returns an empty page: this is why the OpenAI source is the API changelog rather than the newsroom.

## How it avoids slop

Three things, all of them structural rather than stylistic:

1. The scan step reads index pages only and is told never to substitute its own knowledge for a page it could not read. A failed fetch is reported as a failure, not quietly filled in.
2. The write step drops any URL that appeared in the last four editions, so the same launch cannot be reported three weeks running.
3. Every edition is created as a draft, and the workflow never publishes.

## Install it

Hosted MCP endpoint: `https://mcp.cosmicjs.com/v1/buckets/{bucket-slug}`

Or install in one click from https://www.cosmicjs.com/marketplace/workflows/ai-rundown

## Step 1 prompt

```text
Scan the configured news sources and return this week's candidate items. Do not write the edition and do not create any objects in this step.

Scope for this run:
1. Read the rundown-sources type and take every object where active is true. Each one gives you a source_url and a focus describing what is worth collecting there.
2. Fetch each active source with fetch_url. These are index pages: the headlines, dates, and links you need are on the page you fetch. Do not follow links into individual articles. The index is enough for a candidate list and it keeps the run bounded.
3. From each page, collect items published within the last {{lookback_days}} days that someone building with AI would care about: model releases, API and SDK changes, pricing changes, deprecations, new developer tools, and substantial engineering write-ups. Skip funding rounds, hiring news, and opinion pieces.
4. Collect at most {{max_items}} items across all sources. When you have more candidates than that, keep the ones with the most concrete news value.
5. If a page errors, returns almost no text, or clearly needs JavaScript to render, record it as failed and move on. Never fill the gap with what you already know about that company: an unread source contributes nothing to this edition.

Return a single JSON array and nothing else before it. One entry per item:
{ "title", "url", "source", "published", "why_it_matters" }

- url must be a link that actually appeared on the page you fetched. If you cannot find the item's own URL, drop the item.
- published is the date shown on the page, or "undated" when the page shows none. Do not infer one.
- why_it_matters is one sentence, grounded in what the page said, not in what you assume the announcement contains.

After the array, add one line per source you fetched saying whether it succeeded or failed.

Finally, set last_checked to today on each rundown-sources object you fetched successfully. Change nothing else on those objects.
```

## Step 2 prompt

```text
Write this week's edition from the candidate items in the previous step, then save it as a draft.

Scope for this run:
1. Read the 4 most recent objects in rundown-editions and gather every URL in their covered_urls. Drop any candidate whose URL already appears there. This is what stops consecutive editions from recycling the same story.
2. Group what survives into 2 to 4 themes. A theme is a claim about what is happening, like "context windows stopped being the differentiator", not a category label like "model news".
3. Write the edition:
   - Open with two or three sentences naming the through-line of the week. No greeting and no "welcome back".
   - One short section per item: what shipped, why it matters to someone building on these tools, and a link to the source. Two to four sentences each.
   - Close with one takeaway sentence.
4. Ground every sentence in the candidate data you were handed. You read index pages, not full articles, so what you know is the headline, the date, and a line of summary. Do not state version numbers, benchmark results, prices, context limits, or capabilities that were not in that data. An item too thin to say anything specific about gets left out, not padded.
5. Create exactly one object in the rundown-editions type with status draft:
   - title: "AI Rundown: <Month D, YYYY>"
   - edition_date: today
   - content: the body as HTML, using h3 subheads, paragraphs, and inline links
   - takeaway: the closing sentence on its own
   - covered_urls: JSON array of every URL you cited
   - item_count: how many items you covered
   - sources_checked: JSON array of { source, status } from the previous step, failures included

Leave it as a draft. Whether this ships is an editorial decision, and the draft is where a human makes it.

If fewer than 3 items survive step 1, still create the draft, cover what you have, and say plainly that the week was quiet. A short honest edition is worth more than a padded one.
```

## Install

Open https://app.cosmicjs.com/login?redirect_to=%2Fprojects%3Fworkflow_template%3Dai-rundown&utm_source=cosmicjs.com&utm_medium=website&utm_campaign=workflow-template-marketplace&utm_content=workflow-template-ai-rundown , pick a project, and confirm. The workflow runs once immediately so its first result is visible right away.
