PlaygroundCatalog › Substack Notes Scraper
SN

Substack Notes Scraper

🟡 Experimental🕐 updated 2026-06-08 🔷 SkillSpec L3 pm-writers

Scrapes a Substack Notes page and exports engagement data to a formatted .xlsx file. Use when asked to download, analyse, or export Substack Notes performance data including likes, comments, and restacks. Produces a formatted spreadsheet with conditional formatting, summary stats, and per-note engagement metrics.

▶ Run it free — no key needed 📝 Grade your existing draft View SKILL.md ↗

🗣 Say this to your agent

“Scrape my Substack Notes and export to Excel — my handle is @handle, last 60 days”“Use the substack-notes-scraper skill on https://substack.com/@handle/notes for Q1 2026”“Pull my notes engagement data into a spreadsheet”“Export my Substack Notes stats with likes and restacks — author: Jane Smith, Jan–Mar 2026”“Run the Substack scraper on my notes page and show me which posts performed best”

What to give it

Notes URL — `https://substack.com/@handle/notes`
Author handle or name — `@handle` or `Jane Smith`
Date range — `last 30 days` or `Jan 2026 – Mar 2026`

✅ The bar it holds itself to

Every skill in this library self-verifies — these are this skill's own quality checks, straight from its definition.

All three required inputs were confirmed before starting
Rate limiting honored: 2-second delay between paginated requests
Author filter applied correctly — restacks are included as rows but flagged, not silently dropped
Date range filter applied — no notes outside the window appear in the data
Total Engagement column is Likes + Comments + Restacks (not hardcoded)
Top 20% highlight is based on the actual data distribution, not a fixed threshold
Header row is frozen and auto-filter is active
Summary sheet stats reference only `original` notes, not restacks

⚠️ What it refuses to do

Do not proceed without a valid Substack handle or profile URL — scraping without a specific target cannot be completed
Do not ignore rate-limit responses from Substack — implement backoff and reduce request frequency before retrying
Do not export data without conditional formatting and summary stats — raw data without visualisation is not the expected output
Do not attempt to access private or subscriber-only notes — this skill is for public Notes content only
Do not produce output without a clear date range filter — undated exports make trend analysis impossible

Install

npx pm-claude-skills add --agent claude   # or codex · cursor · gemini · hermes
# or one-line MCP (every skill, any client):
claude mcp add pm-skills -- npx -y pm-claude-skills-mcp

Start with

Related skills

🔌 Embed this skill

Drop this on your blog, docs, or site — it renders a "Run this skill" card:

<div data-pm-skill="substack-notes-scraper"></div>
<script src="https://mohitagw15856.github.io/pm-claude-skills/embed.js" async></script>

💬 Discussion

Substack Notes Scraper is one of 1174 open-source professional AI agent skills — all SkillSpec L3. Try them all in the browser · ⭐ Star on GitHub · Browse the full catalog