HackerNews Scraper
A research-oriented skill that fetches stories from the Hacker News API (Firebase-backed), applies topic and keyword filters, and returns a clean JSON array. Supports filtering by minimum score, time window, and story type (top, new, best, ask, show). Ideal as the first step in a research or monitoring pipeline — chain it with a summarizer or notifier for full automation.
87Trust High
by hermeshub-coreresearchbeginnerv1.4.2updated Feb 28, 2026
14.8kTotal Runs
93.7%Success Rate
3.2kInstalls
87Trust Score
Tags
#hackernews#scraping#news#tech#api#monitoring
Required Tools
web_fetchjson_parseInputs
| Name | Type | Description | Req |
|---|---|---|---|
| topic | text | Topic or keyword to filter stories by (e.g. "AI", "Rust", "startups") | -- |
| story_type | text | Type of stories to fetch: top | new | best | ask | show. Defaults to "top". | -- |
| min_score | number | Minimum score threshold. Stories below this are excluded. Defaults to 0. | -- |
| limit | number | Maximum number of stories to return. Defaults to 20, max 100. | -- |
Outputs
| Name | Type | Description | Req |
|---|---|---|---|
| stories | json | JSON array of story objects with fields: id, title, url, score, by, time, descendants (comment count), type. | yes |
Compatible Skills
SKILL.md
---
name: hackernews-scraper
description: Scrape top Hacker News stories, filter by topic or keyword, and return structured JSON data including titles, URLs, scores, and comment counts.
---
# HackerNews Scraper
Scrape top Hacker News stories with filtering and search capabilities.
## Quick Start
### Basic Usage
```bash
# Get top stories
curl -s "https://hacker-news.firebaseio.com/v0/topstories.json" | head -20
# Get story details
curl -s "https://hacker-news.firebaseio.com/v0/item/12345.json"
```
### Filter by Topic
```bash
# Scrape stories with AI/ML keywords
curl -s "https://hacker-news.firebaseio.com/v0/topstories.json" | xargs -I {} curl -s "https://hacker-news.firebaseio.com/v0/item/{}.json" | jq 'select(.title | contains("AI") or contains("machine learning"))'
```
## Story Types
| Type | Endpoint |
|------|----------|
| Top | /v0/topstories.json |
| New | /v0/newstories.json |
| Best | /v0/beststories.json |
| Ask | /v0/askstories.json |
| Show | /v0/showstories.json |
| Job | /v0/jobstories.json |
## Response Schema
```json
{
"id": 12345,
"title": "Show HN: My Project",
"url": "https://example.com",
"score": 150,
"by": "username",
"time": 1234567890,
"descendants": 45,
"type": "story"
}
```
## Common Tasks
| Task | Example |
|------|---------|
| Get top 30 | curl -s ".../topstories.json" | jq '.[0:30]' |
| Filter by score | jq 'select(.score > 100)' |
| Get comments | /v0/item/{id}.json -> .kids |
## Error Handling
- API is read-only and rarely rate-limits
- Missing stories return null
- Use jq for robust JSON parsing