Research Substack publications, writers, public posts, recommendations, categories, and Notes through Crawlora. Use to find newsletters, compare editorial coverage, inspect a publication archive, or sample public discussion and writer networks.
Installs into .claude/skills of the current project.
Are you the author of substack-research?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/crawlora-org-substack-research)
---
name: substack-research
description: Research Substack publications, writers, public posts, recommendations, categories, and Notes through Crawlora. Use to find newsletters, compare editorial coverage, inspect a publication archive, or sample public discussion and writer networks.
---
# Substack publication and Notes research
## Access and contract
Set `CRAWLORA_API_KEY` to your Crawlora key. Prefer the named Crawlora MCP tools
when connected; otherwise use the bundled `scripts/crawlora.sh`, which sends
`x-api-key` to `https://api.crawlora.net/api/v1`. Read
[reference/endpoints.md](reference/endpoints.md) for exact tool names, methods,
and parameters. Check application `code` as well as HTTP status; payloads are
inside `data`. Stop on authentication errors, back off on `429`, and retry a
transient upstream failure once. Bound pages and calls by the requested scope
and credit budget. Preserve source URLs, identifiers, and collection times.
Find public newsletters and writers, then inspect bounded samples of their
published work and discussion. Use publication identity separately from writer
identity; one writer may contribute to multiple publications.
## Discover and follow returned identities
- Search publications or users with their respective tools. Publication detail
requires either `publication` (subdomain/custom domain) or `publication_id`;
supply one despite the schema marking both individually optional. Posts use a
publication identifier plus a returned post slug, not a user handle alone.
- Discover categories before category browsing or leaderboards. Category IDs can
be numeric or `podcast`; keep free/paid leaderboard scope explicit. Category
pages are zero-based, while publication archives use `offset` and `limit`.
- Fetch publication posts, selected public post content, contributors, and
recommendations only as relevant. Recommendations require the numeric
publication ID; a recommendation or user connection does not establish a
commercial relationship, endorsement of every article, or common ownership.
- Notes tabs return a paired tab ID and type (`base`, `secondary`, `category`).
Preserve the pair. Follow `next_cursor` for Notes, replies, or restacks;
small variable pages do not imply pagination has ended.
- User detail/activity/connections and Notes/replies/restacks use their own
returned identifiers. Preserve which surface produced each engagement metric.
```sh
scripts/crawlora.sh /substack/search query="climate policy"
scripts/crawlora.sh /substack/categories
scripts/crawlora.sh /substack/notes/tabs
# Use a discovered publication and post slug, for example:
# scripts/crawlora.sh /substack/publication publication="$PUBLICATION"
# scripts/crawlora.sh /substack/publication/posts publication="$PUBLICATION" sort=new limit=10
# scripts/crawlora.sh /substack/post publication="$PUBLICATION" slug="$POST_SLUG"
```
## Interpret and deliver
Return a publication/writer shortlist or coverage brief with topic-fit evidence,
public excerpts, URLs, dates, collection time, and sample size. Distinguish a
paid-content preview from the full article and leave unavailable text unknown.
A public feed is a snapshot, not the signed-in user's personalised feed.
Leaderboard positions, follower counts, or reactions are not audited subscriber
revenue or representative opinion. Attribute claims to their authors and separate
coverage observations from inference. Do not subscribe, comment, message writers,
or follow accounts unless the user requests those actions.