Added — 7 new features + 2 new modes
New modes (require PH API credentials):
- 🧑💻
maker mode — fetch all products by a specific PH username. Returns full product list with makerProfile attached to each record.
- 🏷️
topic mode — top products in a category (AI, Developer Tools, Productivity, etc.). Configurable sort: VOTES / NEWEST / FEATURED.
New derived signals (always computed, no API needed):
daysSinceLaunch — age of the product in days
isNewProduct — true if launched in last 30 days
upvoteVelocity — upvotes per day since launch (growth rate signal)
engagementRate — (comments + reviews) / upvotes (community engagement)
techStackSignals[] — detected tech categories from description/tagline: AI/ML, No-code, API, SaaS, Mobile, Chrome Extension, Open Source, Productivity, Design, Analytics, Security, E-commerce, Marketing, Finance, Education, Health, Video, Writing, DevOps, Database
sentimentScore — simple -1.0 to 1.0 sentiment from description
maturityTier — new / early / growing / popular / viral (by upvotes)
hasSocialProof — true if reviews ≥ 5 AND rating ≥ 4.0
pricingTier — free / freemium / subscription / paid / unknown
New optional feature:
- 📊
includeCompetitorAnalysis — adds one extra summary record comparing all scraped products:
- avgUpvotes, avgRating, avgPopularityScore, avgUpvoteVelocity, avgEngagementRate
- topByUpvotes[], topByRating[], fastestGrowing[]
- commonTechStack[], pricingDistribution
- newProducts count, featuredProducts count, withSocialProof count
- Midjourney: 3500 upvotes, maturityTier=viral, techStackSignals=[AI/ML, Writing], popularityScore=90
- ChatGPT: 179 upvotes, maturityTier=growing, engagementRate=3.73, hasSocialProof=True
- Competitor analysis: avgUpvotes=1232, commonTechStack=[AI/ML×2, Writing×2]
New primary backend: ProductHunt GraphQL API
- Direct GraphQL queries to
producthunt.com/frontend/graphql
- Direct API path for most requests — faster and more reliable
- Rendering-engine fallback kept for edge cases
New fields (vs v0.0):
productId — PH internal ID
slug — URL slug
productUrl — canonical PH URL
commentsCount — number of comments
topics[] — structured list (was plain string)
topicSlugs[] — topic slugs for filtering
topicsStr — comma-separated string (backward compat)
makers[] — structured list with name, username, headline, profileImage
makersStr — comma-separated string (backward compat)
hunter — {name, username} of the person who posted
gallery[] — product screenshot/image URLs
badges[] — PH badges (e.g. "Product of the Day")
isFeatured — boolean
featuredAt — ISO timestamp
createdAt — ISO timestamp
dailyRank — rank on launch day
weeklyRank — rank for the week
popularityScore (0-100) — composite of upvotes × rating
pricingType — raw pricing enum (free/paid/freemium/subscription)
dataSource — "graphql" or "rendered"
New modes:
leaderboard — fetch top N products for any date (default: today)
search — keyword search across all PH products
Bug fixes:
- Consistent error key (
inputUrl in both success and error records)
topics and makers now arrays, not plain strings
- URL validation before submitting
version: "1.0" in actor.json
- Initial release
- 13 fields: name, tagline, description, upvotes, reviews, rating, topics, makers, website, launchDate, followers, image, pricing