Daily Product Hunt leads into HubSpot CRM

Every weekday at 9am ET, turn yesterday's Product Hunt launches into ready-to-work HubSpot contacts, companies, and notes for your sales team.

Agentic Task
Product HuntHubSpotSalesLead EnrichmentResearch & Monitoring

Build me an agent workflow that runs every weekday at 9am Eastern Time and turns fresh Product Hunt launches into warm leads in my HubSpot CRM. The trigger should be a cron schedule (Product Hunt does not have a poll trigger). The workflow uses two integrations: Product Hunt and HubSpot.

Configurable inputs the agent should ask me for once and remember: (1) a list of Product Hunt topic slugs to watch, defaulting to artificial-intelligence, developer-tools, and saas; (2) a short plain-language description of my ideal customer profile (ICP); (3) the maximum number of leads to create per run, defaulting to 10; (4) the lifecycle stage to use on new contacts, defaulting to "lead"; and (5) the lead source label, defaulting to "Product Hunt launch".

Each run, the agent should do the following:

1) Call Product Hunt's List Posts for the prior 24 hours, filtered to my configured topics, ordered by votes. Pull enough posts to have a healthy pool to filter from (around 50 is fine).

2) Rank and shortlist the launches that plausibly fit my ICP based on the post tagline, description, and topics. Keep roughly the top 10 most relevant. If fewer than 10 are a genuine fit, ship fewer. Do not pad the list.

3) For each shortlisted launch, call Product Hunt's Get Post to pull the full detail (website URL, tagline, description, upvote count, launch date, topics, and the list of makers). Then for each maker, call Get User to pull their name, headline, and any public social handles. Note that Product Hunt redacted some user fields (Twitter handles, sometimes names) in 2023, so handle null values gracefully.

4) Parse the product's root domain from the website URL (strip protocol, www, and path). This domain is the dedupe key for the company.

5) Before creating anything, dedupe against HubSpot: use Search Companies filtered by the domain property to see if a company with that domain already exists, and use Search Contacts to see if a contact with the maker's email already exists. If both exist and are already associated, skip the launch entirely. If the company exists but no note from today has been added, you may still attach the new note. If a contact exists, reuse it instead of creating a duplicate.

6) For each new maker, use HubSpot's Create Contact with the maker's name (split into first/last), email if available, lifecycle stage set to my configured value, and a custom source property set to my configured label.

7) For each new product, use HubSpot's Create Company with the product name, the parsed domain, and a short industry-style description derived from the tagline and topics.

8) Associate the maker contact to the company in HubSpot. If a launch has multiple makers, associate all of them to the same company.

9) Use HubSpot's Create Note attached to the company. The note body should summarize: what the product does (one or two sentences), why it fits my ICP (one sentence referencing my ICP description), the launch date and current upvote count, a link back to the Product Hunt post, and a 2-3 sentence personalized cold-opener that references something specific about the launch (the tagline, a feature, the maker's background, etc.). Keep the tone human and curious, not salesy.

At the end of the run, log a short summary line per launch processed (created vs skipped, with the reason) so I can audit what happened. Respect Product Hunt's GraphQL complexity limits and HubSpot's search rate limit (4 requests per second); if a 429 comes back, back off and retry.

Failure modes to handle explicitly: a launch with no makers (skip), a launch with no website URL (skip), a maker with no email (still create the contact with name only, but flag that email is missing in the note), and HubSpot validation errors (log and continue with the next launch rather than failing the whole run).

Additional information

What does this prompt do?
  • Pulls yesterday's Product Hunt launches in the topics you care about, like AI, developer tools, or SaaS.
  • Picks roughly the top ten launches that fit your ideal customer profile so your reps are not flooded.
  • Creates a new HubSpot contact for each maker and a new HubSpot company for each product, then links them together.
  • Attaches a sales-ready note to the company with what the product does, why it fits your ICP, the launch date and upvotes, and a short personalized cold opener.
What do I need to use this?
  • A Product Hunt login so the agent can read public launches, posts, and maker profiles.
  • A HubSpot login with permission to create contacts, companies, and notes.
  • A short description of your ideal customer profile and a list of Product Hunt topics to watch.
How can I customize it?
  • Change the schedule. Run it twice a day, only on Mondays, or pause it during quiet weeks.
  • Swap the topics. Track design tools, fintech, climate, or any mix of Product Hunt categories instead.
  • Adjust the volume and the ICP fit rules so reps get five high-conviction leads instead of ten broader ones.

Frequently asked questions

Will this create duplicate contacts in HubSpot?
No. Before creating anything, the agent checks HubSpot for an existing contact with the same email and an existing company with the same website domain. If either already exists, that launch is skipped or merged into the existing record.
Does this work with HubSpot Free or do I need a paid plan?
It works with any HubSpot plan that lets you create contacts, companies, and notes, including HubSpot Free. There are no premium features required.
How does the agent decide which launches fit my ICP?
You describe your ideal customer once in plain language, for example "early-stage B2B SaaS founders building AI tools for marketing teams." The agent uses that description to filter and rank the day's launches before writing anything into HubSpot.
Can I change the lifecycle stage or lead source on the created contacts?
Yes. By default new contacts land as a lead with the source set to "Product Hunt launch," but you can tell the agent to use a different lifecycle stage, owner, or source label that matches your own pipeline.
What if there are no relevant launches on a given day?
The agent simply does nothing in HubSpot that day rather than padding the list with weak fits. You will not get junk contacts on slow news days.

Turn Product Hunt into a daily lead source.

Connect Product Hunt and HubSpot once, and Geni delivers a fresh batch of qualified contacts, companies, and personalized openers every weekday morning.