Scrape Product Hunt daily/weekly/monthly/yearly leaderboard launches with full product details, maker profiles, and website contact info. Use when user mentions Product Hunt, producthunt, PH scraper, product hunt launches, product hunt leaderboard, scrape product hunt, product hunt data, PH daily launches, product hunt upvotes, product hunt maker info, extract product hunt, product hunt today, top products product hunt, product hunt archive, PH products, product hunt email extraction, product hunt contact info, producthunt.com scraping, get product hunt launches, product hunt API alternative. Also applies to: startup launch monitoring, new product discovery, maker/founder contact enrichment, product hunt lead generation, daily product hunt digest, competitive product tracking.
Input: date/period parameters → Output: structured product launch data with maker profiles and website contact info
solve-captcha or wait for auto-passbrowser-act via Skill tool to load usage. If installation or configuration issues arise, follow its guidance to resolve then retry.wait stable --timeout 15000 then check title againsolve-captchaThis Skill's operational boundary = what the user can manually do in their browser. It only reads data already displayed to the user on the page, never bypassing authentication or access controls. JS code is encapsulated in Python files under thescripts/directory, invoked viaeval "$(python scripts/xxx.py)".$(...)is bash syntax; use the bash tool for execution.
eval "$(python scripts/extract-leaderboard.py)"all with featured for featured-only products.[
{
"rank": 1,
"name": "Product Name",
"tagline": "Short product description",
"categories": ["Productivity", "AI"],
"thumbnail": "https://ph-files.imgix.net/...",
"upvotes": 135,
"comments": 42,
"url": "https://www.producthunt.com/products/product-slug",
"slug": "product-slug"
}
]
eval "$(python scripts/extract-launch-detail.py)"/products/{slug}/launches/{launch-slug}.{
"name": "Product Name",
"tagline": "Short product tagline",
"description": "Full product description from OG meta",
"categories": ["Productivity", "Social Media"],
"images": ["https://ph-files.imgix.net/gallery1.png", "https://ph-files.imgix.net/gallery2.png"],
"websiteUrl": "https://product-website.com/?ref=producthunt",
"upvotes": 135,
"launchDate": "2025-05-27T07:26:33-07:00",
"makers": [{"href": "/@username", "name": "Maker Name"}],
"ogImage": "https://ph-files.imgix.net/og-image.png"
}
eval "$(python scripts/extract-maker-profile.py)"{
"name": "Maker Name",
"slug": "@username",
"headline": "Creating SaaS Products",
"aboutText": "Bio text about the maker",
"links": ["https://twitter.com/username", "https://linkedin.com/in/username"],
"followers": 22,
"url": "https://www.producthunt.com/@username"
}
eval "$(python scripts/extract-website-content.py)"stealth-extract for faster extraction without a browser session:
stealth-extract {website-url} --content-type markdown then parse the markdown for email patterns.{
"title": "Product Website Title",
"url": "https://product-website.com",
"email": "contact@product-website.com",
"allEmails": ["contact@product-website.com", "support@product-website.com"],
"websiteRawText": "Full visible text content of the website..."
}
wait stable → eval "$(python scripts/extract-leaderboard.py)"wait stable → eval "$(python scripts/extract-launch-detail.py)" → get full details + maker links + website URLscrapeMakers is enabled) For each unique maker from step 2:
a. Navigate to https://www.producthunt.com/{maker.href} → wait stable → eval "$(python scripts/extract-maker-profile.py)"scrapeWebsite is enabled) For each product website URL from step 2:
a. Navigate to website URL → wait stable → eval "$(python scripts/extract-website-content.py)"{
"date": "2026-06-10T00:00:00Z",
"launchDate": "2026-06-10T07:01:04Z",
"url": "https://www.producthunt.com/products/product-slug",
"name": "Product Name",
"shortDescription": "Short tagline",
"description": "Full description text",
"categories": ["Productivity", "AI"],
"maker": {
"makerHref": "https://www.producthunt.com/@username",
"name": "Maker Name",
"slug": "@username",
"url": "https://www.producthunt.com/@username",
"links": ["https://twitter.com/maker", "https://linkedin.com/in/maker"],
"aboutText": "Maker bio text"
},
"websiteUrl": "https://product-website.com",
"images": ["https://ph-files.imgix.net/image1.png"],
"upvotes": 135,
"website": {
"title": "Product Website",
"url": "https://product-website.com",
"email": "hello@product-website.com",
"websiteRawText": "Full page text content..."
}
}
topNProducts filter to limit. All visible products are rendered on the single page.result count >= 1 (at least one product extracted from leaderboard)name, tagline, upvotes, url present for every productwebsiteUrl or maker present for enriched itemssolve-captcha on first visit/all URL path (used by older scrapers) now returns 404; use /leaderboard/daily/ path insteadbrowser-act-skill-forge-memories/producthunt-scraper-producthunt-launches.memory.md (working directory is determined by the Agent running the Skill){YYYY-MM-DD}: {what happened} → {conclusion}