Weekly LinkedIn lead pipeline into HubSpot

By General Input

Every Monday morning, scrape fresh LinkedIn prospects matching your ICP, dedupe against HubSpot, log the new ones with a fit note, and post a digest to Slack.

Integrations

  • Apify
  • HubSpot
  • Slack Bot

Type

Agentic Task

Categories

  • Sales
  • Marketing

Build me a weekly LinkedIn lead generation pipeline that drops qualified prospects straight into HubSpot. The workflow should run on a cron trigger every Monday at 8am in my local timezone (let me set the timezone when I configure it).

Inputs I want to configure on the prompt:

1. The Apify Actor slug to run (default to a LinkedIn company or people scraper like apify/linkedin-company-scraper or get-leads/linkedin-scraper, but let me override it because every LinkedIn Actor has a different input schema). 2. The raw input JSON for the Actor (search queries, company URLs, filters — whatever that specific Actor expects). 3. My ICP definition in writing: target industries, headcount range, geographies, target titles, and keywords that signal a fit. 4. The HubSpot lifecycle stage to set on new contacts (default to "lead"). 5. The Slack channel ID for the digest.

Each Monday at 8am, the agent should:

Step 1. Call Apify "Run Actor Synchronously and Get Dataset Items" with the configured Actor slug and input JSON. Set a generous timeout because LinkedIn scrapes can take a few minutes. Read the returned dataset items (these are LinkedIn profile and/or company rows).

Step 2. For each row, score it against my ICP. A lead qualifies only if it clearly matches my industry, headcount, geography, and title/keyword criteria. If a row is missing the data needed to judge fit (no company, no title), skip it and record the reason.

Step 3. For every qualifying lead, dedupe against HubSpot before creating anything. Call HubSpot "Search Contacts" filtered by the lead's email (or by firstname + lastname + company if email is missing). If a match exists, skip and record "already in HubSpot". Otherwise call HubSpot "Create Contact" with email, firstname, lastname, jobtitle, company, and lifecyclestage set to the configured value (default "lead"). Also write the LinkedIn profile URL to the contact's linkedin website/social field if the Actor returned it.

Step 4. Immediately after creating each contact, call HubSpot "Create Note" with an association to that contact. The note should be a short fit summary covering: why this person matches my ICP, any LinkedIn signals worth knowing (recent role change, recent posts and topics, company size, hiring, funding, anything else surfaced by the Actor), and the source LinkedIn URL. Keep the note tight, three to five bullets, written for a salesperson skimming it before a cold outreach.

Step 5. At the end of the run, send one Slack digest using Slack Bot "Send a Message" to the configured channel. The message should contain: the total number of new contacts added this week, the top 5 highlights (best fits, written as one-line teasers with name, title, company, and the strongest signal), the number of rows skipped broken down by reason (already in HubSpot, missed ICP, missing data), and a short note if the Apify run returned zero items so I know to check the Actor config.

Error handling: if the Apify run fails or times out, post a single Slack message to the same channel explaining what happened and stop. Don't partially create contacts on a failed run. If a single HubSpot create call fails, log the error in the digest and keep going on the rest.

Use the slackbot integration for the digest (it should post as a bot, not as a person). Use the apify integration for the scrape. Use the hubspot integration for the search, contact create, and note create.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery boardLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsA searchable RFP answer library your bid team drafts fromLinkedIn Ads budget pacing dashboard for every client account