Prometheus

Product Hunt — today's top launches

v1Published

Product Hunt's top launches today — rank, name, tagline, votes, url.

Author's sample data
launches
Publisher
1 subscriber
Prometheus@prometheusofficial
Every day at 8:30 AM0 runs in 14d · published 1d ago
Versions
managed by author
v1importedapprovedcurrent1d ago
Schedulesdeploy to enable

Run this collector on a cadence — daily, hourly, your call.

API endpointdeploy to unlock

POST to run it on demand and get fresh data in the response.

Activitydeploy to track

0 subscriber runs in the last 14 days.

How this script collects data
import Firecrawl from "@mendable/firecrawl-js";

const apiKey = process.env.FIRECRAWL_API_KEY;
if (!apiKey) { console.error("FIRECRAWL_API_KEY is not set"); process.exit(1); }
const firecrawl = new Firecrawl({ apiKey });

async function main() {
  const schema = {
    type: "object",
    properties: {
      launches: {
        type: "array",
        items: {
          type: "object",
          properties: {
            rank: { type: "number" }, name: { type: "string" }, tagline: { type: "string" },
            votes: { type: "number" }, url: { type: "string" },
          },
          required: ["rank", "name"],
        },
      },
    },
    required: ["launches"],
  };
  const result = await firecrawl.scrape("https://www.producthunt.com", {
    formats: [{ type: "json", prompt: "Extract today's top product launches in order.", schema }],
  });
  const data = (result as { json?: { launches?: unknown[] } }).json ?? { launches: [] };
  const out = { launches: (data.launches ?? []).slice(0, 10) };
  process.stdout.write(JSON.stringify(out));
}

main().catch((err) => { console.error(err); process.exit(1); });
Build prompt
Today's top Product Hunt launches with rank, name, tagline, votes, and url
One person builds it. Everyone keeps it fresh.