Product Hunt CRM Lead Scorer avatar

Product Hunt CRM Lead Scorer

Pricing

Pay per usage

Go to Apify Store
Product Hunt CRM Lead Scorer

Product Hunt CRM Lead Scorer

Normalize mixed Product Hunt launch rows into deduped, scored, CRM-ready startup leads.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Wit Nomad

Wit Nomad

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Categories

Share

Turn messy Product Hunt launch rows into clean, deduplicated, scored startup leads that are ready for a CRM, spreadsheet, sales workflow, agency prospecting list, or VC/market research pipeline.

This Actor is not a Product Hunt page scraper. It is the cleanup and qualification layer after scraping or manual collection: one row per identifiable company, stable dedupe keys when rows include a Product Hunt URL, domain, slug, or product name, normalized contact/social evidence, transparent lead scoring, and flat export-friendly fields.

What it does

  • Accepts Product Hunt-like launch rows in items mode.
  • Normalizes common field variants such as name, title, product.name, website, websiteUrl, votes, votesCount, and makers.
  • Deduplicates by canonical Product Hunt post slug first, then by normalized domain and product slug.
  • Produces flat CRM-ready output fields.
  • Adds deterministic leadScore, scoreReasons, icpFit, warnings, and an outreachHook.
  • Keeps scoring transparent so you can audit why a lead was ranked high or low.

Who it is for

Use this Actor if you already have Product Hunt data from:

  • another Apify Product Hunt scraper,
  • a CSV/JSON export,
  • manual research,
  • an internal research workflow,
  • or a no-code automation that collects launch rows.

Typical use cases:

  • sales teams ranking newly launched SaaS/startup leads,
  • agencies finding recently launched companies to contact,
  • VCs and scouts triaging Product Hunt launches,
  • growth teams preparing spreadsheet or CRM imports,
  • builders cleaning output from raw scrapers before enrichment.

Input

Current supported input mode: items.

{
"mode": "items",
"maxItems": 500,
"items": [
{
"name": "LaunchDeck",
"productHuntUrl": "https://www.producthunt.com/posts/launchdeck",
"websiteUrl": "https://launchdeck.io",
"tagline": "AI follow-up engine for lean sales teams",
"topics": ["Sales", "Artificial Intelligence", "CRM"],
"upvotes": 420,
"commentsCount": 37,
"makerNames": ["Ada Lee", "Sam Ho"],
"publicEmail": "hello@launchdeck.io",
"emailSourceUrl": "https://launchdeck.io/contact"
}
]
}

items must be an array of Product Hunt-like objects. The Actor is intentionally tolerant of common field names, so exact source shape can vary.

Output

Each output item is one normalized lead:

{
"dedupeKey": "ph:launchdeck",
"productName": "LaunchDeck",
"productHuntUrl": "https://www.producthunt.com/posts/launchdeck",
"productSlug": "launchdeck",
"tagline": "AI follow-up engine for lean sales teams",
"topics": ["Sales", "Artificial Intelligence", "CRM"],
"upvotes": 420,
"commentsCount": 37,
"websiteUrl": "https://launchdeck.io/",
"domain": "launchdeck.io",
"makerNames": ["Ada Lee", "Sam Ho"],
"publicEmail": "hello@launchdeck.io",
"emailConfidence": "high",
"leadScore": 90,
"scoreReasons": ["domain:+20", "direct_email:+20", "maker:+10", "traction:+20", "icp_match:+20"],
"icpFit": "high",
"outreachHook": "LaunchDeck: AI follow-up engine for lean sales teams stood out with 420 Product Hunt upvotes.",
"warnings": [],
"evidenceUrls": [
"https://www.producthunt.com/posts/launchdeck",
"https://launchdeck.io/",
"https://launchdeck.io/contact"
]
}

Output fields

  • dedupeKey
  • productName
  • productHuntUrl
  • productSlug
  • launchDate
  • tagline
  • description
  • topics
  • upvotes
  • commentsCount
  • websiteUrl
  • domain
  • makerNames
  • makerPhUrls
  • xUrl
  • linkedinCompanyUrl
  • githubUrl
  • discordUrl
  • contactPageUrl
  • publicEmail
  • emailSourceUrl
  • emailConfidence
  • leadScore
  • scoreReasons
  • icpFit
  • outreachHook
  • warnings
  • evidenceUrls
  • scrapedAt

Scoring

Scoring is deterministic and explainable:

  • domain:+20
  • direct_email:+20 or contact_page:+12
  • social:+10
  • maker:+10
  • traction from upvotes/comments up to +20
  • ICP keyword/category match up to +20
  • penalties for missing domain/contact/maker signals

The score is clamped to 0..100. Use scoreReasons and warnings to audit the result before importing leads into outreach tools.

Local development

From this Actor folder:

npm test
node src/main.js \
--input ../../samples/product-hunt/product-hunt-crm-lead-scorer-input.json \
--output ../../samples/product-hunt/product-hunt-crm-lead-scorer-output.json \
--scraped-at 2026-07-05T00:00:00.000Z

Limitations

  • This Actor does not scrape Product Hunt pages directly. Bring Product Hunt-like rows from another scraper/export/workflow.
  • URL mode is not exposed yet; unsupported modes are rejected instead of silently returning empty output.
  • Public or enriched emails are not guaranteed verified. Always review email evidence before outreach.
  • The scoring model is deterministic and lightweight, not a machine-learning model.
  • No external website enrichment is performed in this version.

Cost and permissions

  • The Actor reads the provided Actor input and writes normalized rows to the default dataset; it does not request account-wide data access.
  • It performs no browser crawling and no external HTTP scraping in the current version.
  • Runtime is expected to be lightweight because it processes provided rows only.

Best results

For best results, include as many of these fields as possible in each input row:

  • Product Hunt URL or slug
  • product name
  • website URL
  • tagline or description
  • topics/categories
  • upvotes and comments count
  • maker names or maker profile URLs
  • public email or contact page URL
  • social/profile URLs