GUIDE · JULY 11, 2026 · 4 MIN

Any page → RSS → Slack: watch a site that has no feed

Your competitor's /changelog. The city's public-notices board. A jobs page you check every morning. None of them publish RSS — and you don't want another tab, you want new entries to show up where your team already looks. Two API calls: one turns the page into a real RSS feed, the other pushes that feed into Slack (or Discord).

With an agent

If you've pointed Claude Code at emit, paste this (swap in your URLs; the API calls these feeds watchers):

Using emit: create a watcher with no prompt and the single source
https://competitor.com/changelog (discover: false). It has no RSS feed —
emit will watch the page itself. Then create a Slack sink pushing the
watcher's atom_url into my incoming webhook
https://hooks.slack.com/services/T…/B…/…, and send a test message so I
can confirm the hookup. Show me the feed URL too.

With curl

curl -sX POST https://api.rssemit.com/v1/watchers \
  -H "Authorization: Bearer $EMIT_KEY" \
  -d '{"sources":["https://competitor.com/changelog"],"discover":false}'
# emit finds a hidden feed if one exists; otherwise it watches the page
# itself, diffing its article links. → save .atom_url and .id

curl -sX POST https://api.rssemit.com/v1/sinks \
  -H "Authorization: Bearer $EMIT_KEY" \
  -d '{"kind":"slack",
       "url":"https://hooks.slack.com/services/T…/B…/…",
       "feed_url":"<the atom_url from above>"}'

curl -sX POST https://api.rssemit.com/v1/sinks/$SINK_ID/test \
  -H "Authorization: Bearer $EMIT_KEY"   # posts a hello to the channel

The details that make it not annoying

Cost

Watching the page, serving the feed, and pushing to Slack are all free with standard fetching. You only pay if you opt into metered work — an LLM filter prompt (1 credit per 5 judged items) or summaries (1 per item). $1.60 per 1,000 credits.

Turn a page into a feed → How page → feed works