# Product Hunt Daily Launches & Maker Leads Scraper (`jaiveda/producthunt-scraper`) Actor

Extract daily launches, rankings, upvotes, direct company websites, and maker contact leads (names, Product Hunt profile URLs, Twitter/X) from Product Hunt.

- **URL**: https://apify.com/jaiveda/producthunt-scraper.md
- **Developed by:** [Bhavadharini](https://apify.com/jaiveda) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🚀 Product Hunt Scraper: Daily Launches, Maker Leads & Company Tech

Extract newly launched startups, trending products, daily rankings, direct company websites, pricing tiers, and maker contact info (names, job titles, Product Hunt profile URLs, company socials) directly from Product Hunt with zero browser overhead.

***

### 🌟 Why Scrape Product Hunt?

Every single day, hundreds of innovative software companies, AI startups, and indie hackers launch on Product Hunt. These founders are at the **highest point of intent and receptivity**:

- 🎯 **B2B Lead Generation**: Pitch your dev tools, design services, PR packages, payment gateways, or hosting solutions right when founders have launched and have budget.
- 💼 **VC & Angel Dealflow**: Track breakout products with surging upvotes and viral community engagement before they hit TechCrunch or AngelList.
- 🔍 **Competitor & Market Intelligence**: Monitor emerging trends in AI, SaaS, Productivity, and No-Code. See who is launching competing features.
- 🤝 **Partnership & Co-Marketing**: Discover complementary apps for integrations, sponsorships, and cross-promotions.

***

### ⚡ Key Features

- **Daily Launches & Historical Leaderboard**: Scrape today's front page launches, yesterday's winners, or any historical leaderboard date.
- **Direct Maker & Founder Profiles**: Extracts makers' full names, official job titles/headlines (e.g. *Founder & CEO*, *CTO & Co-Founder*), Product Hunt profiles, and avatars.
- **Direct Clean Company Websites**: Unpacks official external website URLs (`https://monospace.io`) without redirect hops or tracking parameters.
- **Company Socials**: Extracts company Twitter/X, LinkedIn, and GitHub repositories directly from the product metadata.
- **Pricing & Tier Detection**: Identifies whether the product is `Free / Freemium`, `Paid`, or free trial.
- **Rich Engagement Metrics**: Real-time upvote counts, comments count, daily rank (#1 Product of the Day), and user ratings (`reviewsRating`, `reviewsCount`).
- **Topics & Categories**: Clean tagging (e.g. `Artificial Intelligence`, `Developer Tools`, `SaaS`, `Productivity`).
- **Blazing Fast & Ultra-Lightweight**: Built on high-performance HTTP SSR parsing without headless browser bloat, delivering up to **100+ products in seconds**.

***

### 📥 Input Configuration

| Parameter | Type | Default | Description |
| :--- | :--- | :--- | :--- |
| `feedMode` | String | `"today"` | Choose `"today"`, `"yesterday"`, `"custom_date"`, or `"direct_urls"`. |
| `customDate` | String | `""` | Date formatted as `YYYY-MM-DD` (used if `feedMode` is `"custom_date"`). |
| `directUrls` | Array | `[]` | List of specific Product Hunt post or product URLs to scrape. |
| `scrapeMakerDetails`| Boolean | `true` | When enabled, enriches products with maker names, job titles, socials, and direct websites. |
| `minVotes` | Integer | `0` | Minimum upvote threshold to filter out low-signal launches. |
| `maxItems` | Integer | `50` | Maximum number of products to extract. |
| `proxyConfiguration` | Object | `{ "useApifyProxy": true }` | Apify proxy configuration to bypass Cloudflare and prevent rate limits. |

#### Example Input:

```json
{
  "feedMode": "today",
  "scrapeMakerDetails": true,
  "minVotes": 10,
  "maxItems": 30
}
```

***

### 📤 Output Data Format

Each item in your dataset contains clean, structured JSON ready for CRM, Google Sheets, or webhook export:

```json
{
  "id": "1251614",
  "name": "Monospace from Directus",
  "slug": "monospace-from-directus",
  "tagline": "The governed API layer for every app, person, and agent",
  "description": "Monospace sits between enterprise data and everyone who builds on it. Connect any data source, and your developers, business teams, and AI agents get live, read-write access to it.",
  "productHuntUrl": "https://www.producthunt.com/posts/monospace-from-directus",
  "website": "https://monospace.io",
  "dailyRank": 1,
  "votesCount": 363,
  "commentsCount": 80,
  "pricingType": "Free / Freemium",
  "reviewsRating": 4.89,
  "reviewsCount": 18,
  "companyTwitter": "https://x.com/intent/user?screen_name=directus",
  "companyLinkedin": "https://www.linkedin.com/company/directus-io",
  "companyGithub": "https://github.com/directus/directus",
  "featuredAt": "2026-10-01T00:01:00-07:00",
  "createdAt": "2026-10-01T00:01:00-07:00",
  "topics": [
    "API",
    "Developer Tools",
    "Data"
  ],
  "thumbnailUrl": "https://ph-files.imgix.net/f2d08a6b-b088-4b28-affa-1c10df46549b.png",
  "makers": [
    {
      "name": "Ben Haynes",
      "headline": "Founder & CEO @Directus",
      "username": "benhaynes",
      "profileUrl": "https://www.producthunt.com/@benhaynes",
      "avatar": "https://ph-avatars.imgix.net/693704/793c6625-f702-4ee7-a15d-f85842b1f760.png"
    },
    {
      "name": "Rijk van Zanten",
      "headline": "CTO & Co-Founder @Directus",
      "username": "rijkvanzanten",
      "profileUrl": "https://www.producthunt.com/@rijkvanzanten",
      "avatar": "https://ph-avatars.imgix.net/950560/57a15a9b-dcab-4ca6-8de9-7e43e57c82b6.jpeg"
    }
  ],
  "scrapedAt": "2026-10-02T01:31:00.000Z"
}
```

***

### 💡 Practical Use Cases

1. **Cold Email & Outbound Sales**: Enrich newly launched startups with maker names and job titles for personalized, high-converting launch congratulations emails.
2. **VC Deal Sourcing**: Set up a daily scheduled run on Apify to push top-ranked launches directly into Airtable or Notion.
3. **Competitive Benchmarking**: Track launch playbooks, upvote momentum, and category trends over time.

# Actor input Schema

## `feedMode` (type: `string`):

Choose which launches to scrape: today's front page, yesterday's leaderboard, or a specific date.

## `customDate` (type: `string`):

Only used if Feed Selection is 'Specific Date Leaderboard' (e.g. 2026-09-30).

## `directUrls` (type: `array`):

List of direct Product Hunt post or product URLs to scrape (e.g., https://www.producthunt.com/posts/monospace-from-directus).

## `scrapeMakerDetails` (type: `boolean`):

When enabled, visits launch pages to extract maker names, job titles/headlines, Product Hunt profiles, direct websites, pricing models, and social links.

## `minVotes` (type: `integer`):

Filter out products with fewer upvotes than this threshold.

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

Maximum number of products to return.

## `proxyConfiguration` (type: `object`):

Select Apify Proxy (Automatic or Residential) to reliably bypass Cloudflare and prevent rate limits.

## Actor input object example

```json
{
  "feedMode": "today",
  "scrapeMakerDetails": true,
  "minVotes": 0,
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset containing daily launches, rankings, upvotes, topics, direct company websites, and maker contact info.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("jaiveda/producthunt-scraper").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("jaiveda/producthunt-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{}' |
apify call jaiveda/producthunt-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jaiveda/producthunt-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/AG5sBlV92odZVq6Em/builds/QoqbVQtGabOkZNUgN/openapi.json
