Skip to content
Back to skills

newsletter-topic-landscape

ASecurity

Compare editorial topics and coverage across Substack newsletters through Crawlora publication discovery and bounded public post samples. Use for a newsletter landscape, publication positioning map, coverage-gap brief, or topic-focused reading shortlist without inferring readership.

  • 0 votes
  • 0 copies
  • 0 views
  • Added October 12, 2026
ai-agentsgoapi

Works with

  • cli
  • api
  • mcp

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned October 12, 2026

npx -y skills add Crawlora-org/crawlora-skills --skill newsletter-topic-landscape --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of newsletter-topic-landscape?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for newsletter-topic-landscape
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/crawlora-org-newsletter-topic-landscape/badge)](https://www.skillsdirectory.com/skills/crawlora-org-newsletter-topic-landscape)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: newsletter-topic-landscape
description: Compare editorial topics and coverage across Substack newsletters through Crawlora publication discovery and bounded public post samples. Use for a newsletter landscape, publication positioning map, coverage-gap brief, or topic-focused reading shortlist without inferring readership.
---

# Newsletter topic landscape

## Access and scope

Set `CRAWLORA_API_KEY` to your Crawlora key. Prefer the listed 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 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 IDs, URLs, retrieval times, and source dates where supplied.

Map what a chosen set of newsletters publishes about a topic. Define topic and
synonyms, date window, language, publication scope, and balanced per-publication
sample budget. Use a supplied publication set first; search and category results
are discovery samples rather than a complete newsletter universe.

## Resolve publications and sample their editorial work

1. Use site-wide `substack_search` for candidate posts/publications or discover
   categories before browsing. Category `paid`/`free` scopes differ; do not pass
   a category ID to a route that expects a publication ID. Search/category pages
   are zero-based; publication archives use `offset`/`limit`.
2. Resolve each publication's subdomain/custom domain and numeric publication ID.
   Use detail and contributors to distinguish publication identity from writer
   identity. Recommendations are attributed publication links, not proof of
   commercial affiliation or endorsement of every story.
3. Sample each publication archive with `sort=new` for comparable recent coverage,
   or an explicit topical search. `top`/`community` ordering samples popular
   posts, not chronology; do not call those representative recent coverage.
   Preserve selection rules, returned dates, offsets, and the stopping reason.
4. Site-wide search supplies metadata, not article bodies. Fetch selected posts
   using the discovered publication and post slug. Treat public previews and
   paywalled articles as partial evidence. If only a title is available, label
   the coding basis as title-only and lower claim specificity.

```sh
scripts/crawlora.sh /substack/search query="climate adaptation" page=0
scripts/crawlora.sh /substack/categories
# Use discovered publication/slug values, for example:
# scripts/crawlora.sh /substack/publication/posts publication="$PUBLICATION" sort=new limit=10 offset=0
# scripts/crawlora.sh /substack/post publication="$PUBLICATION" slug="$POST_SLUG"
```

## Code topics and distinguish editorial positioning

Create a shared topic rubric, preserving unexpected topics and uncertain labels.
A post may receive multiple labels; label counts can therefore exceed unique
posts. Deduplicate by canonical post URL/ID within each publication, and retain
cross-publication reposts as related content. Compare topic shares only with
visible denominators, equal sampling rules, and unavailable-body counts.
Separate frequency of publication, article length/depth, framing, and engagement
observations. Likes/comments and leaderboard positions do not establish reader
numbers, paid subscribers, revenue, influence, or audience demographics.

Return a publication-by-topic matrix, sampled-post evidence with dates/URLs and
coding basis, notable editorial differences, a reading shortlist, and observed
coverage gaps. An unobserved topic is a gap in the sample, not proof a publication
never covers it or proof of market demand for a new newsletter. Do not subscribe,
contact writers, or create a recurring coverage monitor unless requested.

Files in this skill

  • SKILL.md3.9 KB
  • reference/endpoints.md5.8 KB
  • scripts/crawlora.sh3.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.