Auto-research new HubSpot leads and brief SDRs in Slack
When a new contact lands in HubSpot, visit their company website and LinkedIn page, write the research back to the record, and post a qualification brief in Slack.
Build me an agent workflow that runs every time a new contact is created in HubSpot and enriches that contact with research scraped from the lead's company website and LinkedIn company page.
Trigger: a HubSpot webhook for the contact.creation event. The payload gives me the new contact ID.
Steps the agent should follow:
1. Call HubSpot Get Contact on the new contact ID and pull the email, firstname, lastname, company, and any existing website property. Derive the company domain from the email (everything after the @). If the domain is a generic personal mailbox like gmail.com, outlook.com, hotmail.com, yahoo.com, icloud.com, proton.me, aol.com, or similar, skip the research entirely: call HubSpot Update Contact to set a property called enrichment_status to "low_signal_personal_email", do not create a note, do not post to Slack, and end the run.
2. Otherwise, call Browserbase Create Session to provision a fresh Chromium session. Use the returned connectUrl to drive the browser with Stagehand or Playwright over CDP. Visit https://{domain} (fall back to http and to www. if needed). Extract the page title, meta description, hero copy, the About page if linked, and any obvious product or category signals. Then navigate to the company's public LinkedIn page by searching for "site:linkedin.com/company {company name or domain}" via a search engine or by trying https://www.linkedin.com/company/{slug} guesses. From the LinkedIn page, extract the tagline, About section, industry, employee headcount range, headquarters, and any recent posts that look like news. When research is done, call Browserbase Release Session to close the session. If either site returns nothing usable (404, login wall with no visible content, or empty page), record that and proceed with whatever signal you have.
3. Use your judgement to synthesize a short qualification brief: a one-line company summary, an ICP fit verdict (strong / maybe / weak) with a one-sentence reason, a persona guess for the contact based on their email and any public title you found, and two suggested talking points for the first SDR call.
4. Call HubSpot Update Contact to write the structured findings back onto the contact: company_description, company_industry, company_size, company_website (if it was empty), and a property called enrichment_status set to "enriched" (or "low_signal_no_data" if both sources came back empty).
5. Call HubSpot Create Note, associate it with the contact, and use the qualification brief as the note body so the SDR sees it on the record timeline.
6. Call Slack Bot Send a Message to post a tidy brief in the SDR channel (let me pick the channel during setup). Include the contact's name and email, the company name and one-line summary, the ICP fit verdict, the employee size and industry, and the two talking points. Link back to the HubSpot contact record so the SDR can open it in one click. If enrichment_status came out "low_signal_no_data", skip the Slack ping entirely.
Guardrails: never post to Slack on the personal-email bailout path, never create an empty note, and always release the Browserbase session even if the run errors out partway through.
Additional information
What does this prompt do?
- Watches HubSpot for new contacts and, the moment one is created, kicks off research without waiting for an SDR to do it manually.
- Opens a real browser to visit the lead's company website and public LinkedIn company page, then pulls out the description, industry, employee size, recent news, and product signals.
- Writes the structured findings back onto the HubSpot contact and attaches a short qualification brief as a note so the SDR sees it next to the record.
- Posts a clean Slack message to your SDR channel summarizing who the lead is, why they look like a fit, and two suggested talking points for the first call.
- Bails quietly when the email is a generic Gmail or Outlook address and there is nothing useful to research, so your channel stays signal-only.
What do I need to use this?
- A HubSpot account where new contacts are created (forms, chat, manual entry, or any source that lands in your CRM).
- A Browserbase account so the workflow can open a real browser to visit company websites and LinkedIn pages that block plain scrapers.
- A Slack workspace and a channel where your SDR team wants the lead briefs posted.
How can I customize it?
- Change the Slack channel, or post directly to the lead owner's DM instead of a shared channel.
- Tune the qualification criteria for your ICP, for example require a minimum employee count or a specific industry before the SDR ping fires.
- Adjust what gets written back to the HubSpot contact, for example add fields for funding stage, location, or your own lead score.
- Swap the second research source from LinkedIn to a different site like Crunchbase or the company's careers page.
Frequently asked questions
Will this work if my team is on HubSpot Free?
What happens when the lead signs up with a personal Gmail or Outlook address?
Why use a real browser instead of a simple HTTP scrape?
Can I send the brief somewhere other than Slack?
How fast does the brief land after a new lead comes in?
Stop letting hot inbound leads sit in HubSpot uncalled.
Connect HubSpot, Browserbase, and Slack once, and every new contact arrives in your SDR channel pre-qualified with a real research brief.