Scrape LinkedIn Profiles To Sheets
Search for LinkedIn profiles matching your criteria, deduplicate against existing records, save new leads to Google Sheets, and receive an email summary.
LinkedIn Profile Scraper → Outreach List Builder
This workflow helps you build a targeted outreach list by scraping public LinkedIn profiles based on your specific criteria, then organizing and sending that data for easy use. It searches for LinkedIn profile pages, extracts relevant professional info, deduplicates against existing records, saves new profiles into Google Sheets, and sends you a summary email.
What It Does
- Searches the web for LinkedIn personal profiles matching your query (roles, location, industries, seniority).
- Parses the AI-generated output into structured JSON with profile details.
- Retrieves existing profiles already stored in your Google Sheet to avoid duplicates.
- Merges new profiles with existing ones and filters out any duplicates.
- Adds fresh, unique profiles as new rows in your Google Sheet.
- Sends an email with a summary and preview of the new outreach leads, including a link to the full sheet.
What You Need
- A Needle account with AI and control nodes enabled.
- Access to the Needle Search and Browse tools.
- A Google Sheets account with a prepared spreadsheet to store your profiles.
- Connected Google Sheets and Gmail connectors configured in your Needle workspace.
How the Flow Works
| Node | Description |
|---|---|
| AI Search Node | Runs a web search limited to personal LinkedIn profiles (linkedin.com/in/) matching your target query. |
| Code Parser | Parses the AI agent's text output into structured JSON objects representing LinkedIn profiles. |
| Get Google Sheets Values | Fetches existing profile URLs from column A of your outreach list in Google Sheets. |
| Merge Node | Combines new profiles with the existing list to prepare for deduplication. |
| Deduplication Code | Normalizes URLs and filters out profiles already present in the sheet. |
| Google Sheets Upsert Row | Adds only new, unique profiles to your Google Sheet as new rows. |
| Gmail Send Email | Sends you an HTML email summarizing how many new profiles were added, with a preview table of top leads. |
Google Sheet Structure
Your Google Sheet should have columns matching these data fields:
| Column | Field |
|---|---|
| A | Profile URL |
| B | Full Name |
| C | Headline |
| D | Location |
| E | Snippet |
| F | Why Matched |
| G | Search Query |
| H | Date Added |
Output
At the end of each run, you get:
- An updated Google Sheet containing your curated outreach list of LinkedIn profiles.
- An email summary sent to your inbox with a count of new leads and a preview table showing the top profiles with links.
Notes
- Modify the search query in the AI node to tailor results to your desired role, location, or industry.
- The workflow prevents duplicate entries by normalizing and comparing existing URLs before adding new ones.
- Update the recipient email address in the Gmail node and the Google Sheet URL in the email body to point to your actual spreadsheet.
- This workflow only targets public LinkedIn profiles (
linkedin.com/in/) and automatically excludes job listings, company pages, and directory pages. - Review and comply with LinkedIn's terms of service and applicable data privacy regulations when scraping or storing profile data.
Want to showcase your own workflows?
Become a Needle workflow partner and turn your expertise into recurring revenue.
