Posts a notification to the Slack channel tied to webhook whenever a new post appears on one of our social networks (Instagram, LinkedIn).
A Node script run on a GitHub Actions cron
- A scheduled GitHub Action runs
notify.mjsevery ~20 minutes. - The script reads each social RSS feed, compares it against
seen.json(the posts we've already announced), and for anything new, posts a message to the Slack#contentwebhook. - It commits the updated
seen.jsonback to the repo so the same post is never announced twice.
RSS feeds (rss.app) → notify.mjs → Slack #content
↑↓
seen.json
There are no native Instagram/LinkedIn RSS feeds, so generate them at rss.app from each public profile:
- Instagram:
https://www.instagram.com/<yourcompany>/ - LinkedIn:
https://www.linkedin.com/company/<yourcompany>/posts/
You'll get a URL like https://rss.app/feeds/AbC123.xml for each.
- Create a Slack app
- Add an Incoming Webhook pointing at
#contentor desired channel. - Copy the
https://hooks.slack.com/services/...URL.
In Settings → Secrets and variables → Actions:
| Type | Name | Value |
|---|---|---|
| Secret | SLACK_WEBHOOK_URL |
the Slack webhook URL |
| Variable | INSTAGRAM_FEED_URL |
the Instagram rss.app feed URL |
| Variable | LINKEDIN_FEED_URL |
the LinkedIn rss.app feed URL |
The webhook is a secret (it's a credential); the feed URLs are plain variables.
Trigger the workflow manually from the Actions tab (Run workflow). The
first run seeds seen.json with existing posts and intentionally does not
notify — only posts that appear after that first run trigger a message.
npm install
cp .env.example .env # fill in the three values
npm start- Latency is whatever the feed refresh + cron interval add up to — typically 15–60 min, not instant.
@herepings everyone online in#content. To turn it off, set theMENTION_HEREenv var tofalse(see the commented line in the workflow).- Profiles must be public for the scraper to read them.
- Specific(Instagram/Linkedin/etc...) Feeds structure may change or block scrappers so its rss.app feed can stop updating. If notifications dry up, check the feed in a browser first.