# Hacker News Show HN Launch Tracker (`enviable_shell/hn-show-hn-launch-tracker`) Actor

Track Show HN launches and turn them into structured product, startup, and developer-tool intelligence.

- **URL**: https://apify.com/enviable\_shell/hn-show-hn-launch-tracker.md
- **Developed by:** [佳斌 王](https://apify.com/enviable_shell) (community)
- **Categories:** Developer tools, Automation, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Hacker News Show HN Launch Tracker

Track `Show HN` launches and turn them into structured product, startup, and developer-tool intelligence.

Generic Hacker News scrapers return posts. This Actor focuses on one high-signal workflow: monitoring products launched to the Hacker News community and extracting useful launch metadata for founders, investors, developer advocates, market researchers, and indie hackers.

### Who should use this

- Founders looking for adjacent products, positioning ideas, and launch examples
- Product managers tracking new tools in AI, developer tooling, productivity, infra, and security
- VC, accelerator, and startup researchers watching early product signals
- DevRel teams looking for new developer tools, OSS projects, APIs, and CLI products
- Content and newsletter operators building a launch/trend feed

### Best first run

Track recent AI-related Show HN launches:

```json
{
  "maxItems": 50,
  "query": "AI",
  "minPoints": 0,
  "minComments": 0,
  "includeText": true
}
````

Leave `query` empty to collect the latest Show HN launches across all categories.

### What it extracts

Each output row includes:

- product name
- title and Hacker News URL
- external launch URL and domain
- author
- points and comment count
- created date
- inferred category
- launch signals such as `ai`, `openSource`, `github`, `api`, `cli`, `yc`, `beta`, `waitlist`, `mobile`, `browserExtension`
- traction score
- cleaned self-post text when available

### Scheduled monitoring examples

Use Apify schedules to turn this Actor into a recurring launch-intelligence feed.

#### Daily product launch feed

```json
{
  "maxItems": 100,
  "query": "",
  "minPoints": 0,
  "minComments": 0,
  "includeText": false
}
```

Suggested schedule: daily. Sort by `createdAt` or `tractionScore`.

#### Weekly AI startup and devtool watch

```json
{
  "maxItems": 200,
  "query": "AI OR LLM OR agent",
  "minPoints": 3,
  "minComments": 1,
  "includeText": true
}
```

Suggested schedule: weekly. Review rows where `signals.ai`, `signals.api`, `signals.cli`, `signals.github`, or `signals.openSource` are true.

#### High-signal launch research

```json
{
  "maxItems": 100,
  "createdAfter": "2026-01-01",
  "query": "database",
  "minPoints": 10,
  "minComments": 3,
  "includeText": true
}
```

Suggested use: find launches with real HN traction, then inspect discussion threads for user objections, praise, and feature requests.

### Example input

```json
{
  "maxItems": 100,
  "createdAfter": "2026-01-01",
  "query": "AI",
  "minPoints": 10,
  "minComments": 2,
  "includeText": true
}
```

Leave `query` and `createdAfter` empty to get the latest Show HN launches.

### Example output

```json
{
  "id": 48123456,
  "productName": "ExampleDB",
  "title": "Show HN: ExampleDB – An embedded database for TypeScript apps",
  "url": "https://example.com",
  "domain": "example.com",
  "hnUrl": "https://news.ycombinator.com/item?id=48123456",
  "author": "founder123",
  "points": 84,
  "commentCount": 31,
  "createdAt": "2026-05-30T13:20:00.000Z",
  "category": "developer-tools",
  "signals": {
    "ai": false,
    "openSource": true,
    "github": true,
    "api": true,
    "cli": false,
    "yc": false,
    "beta": false,
    "waitlist": false,
    "mobile": false,
    "browserExtension": false
  },
  "tractionScore": 146,
  "source": "hacker-news-show-hn"
}
```

### Use cases

- Track new developer tools and indie products.
- Build a daily startup launch intelligence feed.
- Find products gaining traction in AI, infrastructure, API, database, security, or productivity.
- Monitor competitors and adjacent markets.
- Feed launches into Airtable, Notion, Google Sheets, Slack, or a research database.

### Why this Actor instead of a generic HN scraper

Generic HN scrapers collect many kinds of posts. This Actor is tuned specifically for launch research:

- Only collects `Show HN` launches
- Extracts product names and domains
- Adds category inference for AI, developer tools, database, security, productivity, finance, mobile, and more
- Adds launch signals such as GitHub, API, CLI, YC, beta, waitlist, mobile app, browser extension, and open source
- Calculates `tractionScore` from HN points and comment volume
- Saves a Markdown `SUMMARY` with top launches, category counts, and signal counts

If you need every HN story, use a general HN scraper. If you want startup, product, and developer-tool launch intelligence, use this Actor.

### Practical workflow

1. Start with the latest 50-100 Show HN launches.
2. Use `query` for a focused category such as `AI`, `API`, `database`, `security`, or `open source`.
3. Add `minPoints` and `minComments` when you only want traction.
4. Sort by `tractionScore` to identify launches with strong discussion.
5. Export to CSV, Google Sheets, Airtable, Notion, or your own research database.

### What you can automate next

- Daily launch digest in Slack or Discord using Apify integrations
- Weekly AI/devtool research CSV for product teams or newsletters
- Competitor watchlists for specific categories
- Founder outreach lists based on product domain and HN profile
- Trend reports based on categories and signal counts

### Data source

Uses the public Hacker News Algolia API. No login, cookies, proxy, or API key required.

# Actor input Schema

## `maxItems` (type: `integer`):

Maximum number of Show HN launch posts to return.

## `createdAfter` (type: `string`):

Optional ISO date, for example 2026-01-01. Only launches created after this date are returned.

## `query` (type: `string`):

Optional keyword query to search within Show HN titles and text, for example AI, API, CLI, open source, database.

## `minPoints` (type: `integer`):

Only include launches with at least this many HN points.

## `minComments` (type: `integer`):

Only include launches with at least this many comments.

## `includeText` (type: `boolean`):

Include cleaned self-post text when available.

## Actor input object example

```json
{
  "maxItems": 100,
  "minPoints": 0,
  "minComments": 0,
  "includeText": true
}
```

# Actor output Schema

## `launches` (type: `string`):

One dataset row per Show HN launch, including product name, URL, domain, author, points, comments, category, launch signals, and traction score.

## `summary` (type: `string`):

Markdown summary with total launches, top categories, signal counts, and strongest launches.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "createdAfter": "",
    "query": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("enviable_shell/hn-show-hn-launch-tracker").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "createdAfter": "",
    "query": "",
}

# Run the Actor and wait for it to finish
run = client.actor("enviable_shell/hn-show-hn-launch-tracker").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "createdAfter": "",
  "query": ""
}' |
apify call enviable_shell/hn-show-hn-launch-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=enviable_shell/hn-show-hn-launch-tracker",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Hacker News Show HN Launch Tracker",
        "description": "Track Show HN launches and turn them into structured product, startup, and developer-tool intelligence.",
        "version": "0.1",
        "x-build-id": "U5kFZvDJVusBwzrsf"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/enviable_shell~hn-show-hn-launch-tracker/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-enviable_shell-hn-show-hn-launch-tracker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/enviable_shell~hn-show-hn-launch-tracker/runs": {
            "post": {
                "operationId": "runs-sync-enviable_shell-hn-show-hn-launch-tracker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/enviable_shell~hn-show-hn-launch-tracker/run-sync": {
            "post": {
                "operationId": "run-sync-enviable_shell-hn-show-hn-launch-tracker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "maxItems": {
                        "title": "Maximum launches",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of Show HN launch posts to return.",
                        "default": 100
                    },
                    "createdAfter": {
                        "title": "Created after",
                        "type": "string",
                        "description": "Optional ISO date, for example 2026-01-01. Only launches created after this date are returned."
                    },
                    "query": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Optional keyword query to search within Show HN titles and text, for example AI, API, CLI, open source, database."
                    },
                    "minPoints": {
                        "title": "Minimum points",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include launches with at least this many HN points.",
                        "default": 0
                    },
                    "minComments": {
                        "title": "Minimum comments",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include launches with at least this many comments.",
                        "default": 0
                    },
                    "includeText": {
                        "title": "Include post text",
                        "type": "boolean",
                        "description": "Include cleaned self-post text when available.",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
