← All posts
· 20 min read

How to Export LinkedIn Leads to CSV (And Actually Get Them Into Your CRM)

linkedincsv-exportcrmworkflow

Here is an exercise that will ruin your day. Time yourself manually copying one LinkedIn prospect’s information into a spreadsheet. Open the profile. Copy the first name. Tab to your sheet. Paste. Go back. Copy the last name. Tab. Paste. Copy the company. Tab. Paste. Copy the headline. Tab. Paste. Copy the profile URL. Tab. Paste. Note the location. Tab. Type it.

That is 3-5 minutes for one lead. For 50 leads, you are looking at roughly 4 hours of mind-numbing copy-paste work. For 200 leads, that is two full working days. For 1,000 leads — a realistic list for any serious outreach campaign — you are spending an entire work week on data entry.

Nobody should be doing this manually. LinkedIn data is structured, consistent, and scrapable. The path from LinkedIn search results to a CRM-ready CSV should take minutes, not hours. This guide covers the complete workflow: what data you can export, how to clean it, how to get it into every major CRM, how to enrich it after import, and how to build a repeatable weekly routine.

What Data Comes Out of a LinkedIn Scrape

Before worrying about CRMs and import processes, let us be clear about what data you actually get from a LinkedIn scrape. The available fields depend on what LinkedIn exposes in search results and profile pages.

Standard Fields From Search Results

When you scrape LinkedIn search results (either free search or Sales Navigator), you typically get:

First Name and Last Name. Separated into individual fields. This is critical for personalization in email tools and CRMs.

Headline. The text that appears below someone’s name on LinkedIn. This is usually their job title and company, but it is a free-text field so it can contain anything. Some people write “Helping B2B companies scale” instead of “VP of Sales at Acme Corp.” The headline is useful but not always reliable for title data.

Current Company. The company name from their current experience section. More reliable than parsing the headline.

Location. City, state/region, and country. LinkedIn standardizes this, so it is usually clean data.

Profile URL. The unique LinkedIn URL for the person (linkedin.com/in/username). This is the most reliable unique identifier for deduplication.

Connection Degree. Whether they are a 1st, 2nd, or 3rd degree connection. Useful for routing outreach — 1st-degree connections get different messaging than cold 2nd-degree contacts.

Additional Fields From Profile Pages

If your scraping tool visits individual profile pages (slower but more thorough), you may also get:

Current Job Title. Parsed from the experience section, more reliable than the headline.

About/Summary. Their profile summary text. Useful for personalization.

Experience History. Previous companies and titles. Useful for identifying career patterns.

Education. University and degree information. Useful for alumni-based outreach.

Skills. Endorsed skills on their profile.

Connection Count. Their total connection count (when visible). People with 500+ connections are generally more active on LinkedIn.

What You Do NOT Get

LinkedIn does not expose email addresses in search results or public profile views. You need a separate enrichment step (covered later) to get email addresses. Phone numbers are similarly unavailable through scraping.

Cleaning Your Exported Data

Raw exported data is rarely CRM-ready. Here is a systematic approach to cleaning it.

Name Cleanup

Problem: Names with ALL CAPS, extra spaces, prefixes/suffixes, or Unicode characters.

Solution: Most spreadsheet tools have a PROPER() function that converts text to proper case. “JOHN SMITH” becomes “John Smith.” For extra spaces, use TRIM(). For prefixes like “Dr.” or suffixes like “MBA” — keep them in a separate notes column but remove them from the first/last name fields. Your CRM and email tools expect clean first and last names.

Watch for names with particles: “van der Berg,” “de la Cruz,” “O’Brien.” Automated case conversion can break these. Spot-check names after cleanup.

Company Name Standardization

Problem: “Google” vs “Google LLC” vs “Alphabet Inc.” vs “Google Cloud.”

Solution: Decide on a standardization rule and apply it consistently. Most B2B teams use the shortest common name: “Google” not “Google LLC.” If you are doing account-based work, standardize to whatever name your CRM uses for the account.

Remove legal suffixes (Inc., LLC, Ltd., Corp.) unless they are part of the commonly known name. “Salesforce” not “Salesforce, Inc.” But “JPMorgan Chase & Co.” might keep the full form since that is how they are known.

Headline Parsing

Problem: Headlines are free-text and vary wildly in format and usefulness.

Solution: Keep the raw headline in its own column for reference and personalization. If you need a structured “Title” field, you have two options:

  1. Manual review. For lists under 200, quickly scan headlines and type the actual title into a separate column. Takes about 30 seconds per row.

  2. Keyword extraction. For larger lists, use spreadsheet formulas or a script to extract common title patterns. Look for patterns like “[Title] at [Company]” or “[Title] | [Company].”

Not every headline will yield a usable title. For prospects with vague headlines (“Passionate about innovation”), check if you captured the structured title from their experience section.

Deduplication

Problem: The same person appears multiple times because you scraped from multiple searches.

Solution: Deduplicate on LinkedIn profile URL. This is the most reliable unique identifier. Two people can have the same name and company, but no two people share a LinkedIn URL.

In Google Sheets: sort by LinkedIn URL, then use conditional formatting to highlight duplicates. In Excel: use Remove Duplicates on the LinkedIn URL column.

Always keep the most complete record when removing duplicates. If one copy has headline data and the other does not, keep the one with more information.

Connection Status Routing

Problem: Your outreach strategy should differ based on connection degree but all records are in one list.

Solution: Add a “Segment” column and tag records based on connection degree:

  • 1st degree: Already connected. Skip connection request. Can message directly on LinkedIn. Warmer email approach.
  • 2nd degree: Shared mutual connections. Standard multi-channel sequence. Reference mutual connections.
  • 3rd degree / Other: Cold outreach. Full sequence with LinkedIn profile view, connection request, and email.

This segmentation matters because blasting the same message to 1st-degree connections and cold prospects looks lazy. Your 1st-degree connections should get warmer, more personal outreach.

CRM Import Guide: HubSpot

HubSpot is the most common CRM for B2B startups and SMBs. Here is the import process.

Preparing Your CSV for HubSpot

HubSpot expects specific column headers for automatic field mapping. Rename your CSV columns:

Your CSV ColumnHubSpot Column Name
first_nameFirst Name
last_nameLast Name
companyCompany Name
titleJob Title
emailEmail
locationCity (and State/Region separately)
linkedin_urlLinkedIn URL (custom property)
headlineLinkedIn Headline (custom property)

Before importing, create custom properties in HubSpot for any non-standard fields:

  1. Go to Settings then Properties
  2. Click “Create property”
  3. Create “LinkedIn URL” (single-line text) and “LinkedIn Headline” (single-line text) under Contact properties
  4. Create “Lead Source Detail” (single-line text) for tracking which LinkedIn search generated the lead

Import Steps

  1. In HubSpot, go to Contacts then Import
  2. Select “Start an import”
  3. Choose “File from computer” then “One file” then “One object” then “Contacts”
  4. Upload your CSV
  5. Map each column to the corresponding HubSpot property
  6. Set the import name to something descriptive: “LinkedIn Scrape - VP Marketing SaaS - April 2026”
  7. Review and complete the import

Post-Import Checklist

After import, immediately:

  • Create a list from the imported contacts (use the import name as filter). This lets you track this batch separately.
  • Set lifecycle stage to “Lead” for new prospects or “Marketing Qualified Lead” if they came from warm lead scraping.
  • Assign an owner if leads should go to specific reps.
  • Check for duplicates that HubSpot may have created. HubSpot deduplicates on email by default, but if you imported without emails (pre-enrichment), duplicates can slip through.

CRM Import Guide: Pipedrive

Pipedrive is popular with sales-focused teams. Its import process is straightforward but has some quirks.

Preparing Your CSV for Pipedrive

Pipedrive uses “Person” and “Organization” as its primary objects. LinkedIn contacts need to be imported as Persons with linked Organizations.

Rename columns:

Your CSV ColumnPipedrive Column
first_name + last_nameName (combined)
companyOrganization
titleJob Title
emailEmail
linkedin_urlLinkedIn URL (custom field)

Note: Pipedrive wants full name in a single field by default, though you can configure separate first/last name fields.

Import Steps

  1. Go to the three-dot menu then Import data then From a spreadsheet
  2. Upload your CSV
  3. Map columns to Pipedrive fields
  4. For “Organization,” Pipedrive will create organizations automatically if they do not exist. Check “Skip duplicate organizations” to avoid duplicates.
  5. For LinkedIn URL, create a custom field during the mapping step
  6. Choose “Import as new items” (not update existing)
  7. Complete the import

Pipedrive-Specific Tips

  • Create a filter immediately after import to view just the imported contacts. Use the import date as the filter criterion.
  • Set up a pipeline stage for LinkedIn-sourced leads if you want to track them separately through your deal stages.
  • Use Pipedrive’s “Leads Inbox” feature to import prospects as leads first, then convert them to deals when they qualify. This keeps your main pipeline clean.

CRM Import Guide: Salesforce

Salesforce is the enterprise standard. Its import process is more rigid but handles large volumes well.

Preparing Your CSV for Salesforce

Salesforce is strict about field names and data types. Prepare your CSV with these exact headers:

Your CSV ColumnSalesforce Field
first_nameFirst Name
last_nameLast Name
companyCompany (required for Leads)
titleTitle
emailEmail
location cityCity
location stateState/Province
linkedin_urlLinkedIn URL (custom field)

Import Steps

  1. Create a custom field for LinkedIn URL: Setup then Object Manager then Lead then Fields and Relationships then New (URL type)
  2. Go to the Data Import Wizard: Setup then search “Data Import Wizard”
  3. Select “Leads” as the object
  4. Choose “Add new records”
  5. Upload your CSV
  6. Map each column to the corresponding Salesforce field
  7. Set the “Lead Source” to “LinkedIn Scrape” (create this picklist value if needed)
  8. Review and start the import

Salesforce-Specific Tips

  • Lead assignment rules will apply to imported leads. If you do not want them auto-assigned, temporarily disable the assignment rule during import.
  • Duplicate rules in Salesforce may block imports if matching leads exist. Review any duplicate alerts after import.
  • Use Data Loader for imports above 50,000 records. The Data Import Wizard works for smaller volumes.
  • Create a report on “Leads where Lead Source = LinkedIn Scrape” for tracking and conversion analysis.

Google Sheets as Middleware

Sometimes the simplest approach is the best one. Google Sheets works as an excellent middle layer between your LinkedIn export and your CRM, especially if:

  • You are a small team without a formal CRM
  • You want to manually review and qualify leads before CRM import
  • You need to combine data from multiple sources before import
  • Your CRM import process is cumbersome for small batches

The Google Sheets Workflow

Tab 1: Raw Import. Paste or import your LinkedIn CSV here. Do not modify this data. It is your source of truth.

Tab 2: Cleaned and Qualified. Copy records from Tab 1, clean the data, and add a “Qualified” column. Mark each prospect as “Yes,” “No,” or “Maybe.” This is where you do manual review.

Tab 3: Ready for CRM. Copy only the “Yes” records from Tab 2. Format the columns to match your CRM’s import requirements. This tab is what you export and upload to your CRM.

Tab 4: Enrichment Tracking. After sending Tab 3 records through email enrichment, paste the results here. Track which records got email addresses and which did not.

This multi-tab approach keeps your process transparent and auditable. You can always go back to the raw data if something looks wrong downstream.

Google Sheets Formulas for LinkedIn Data Cleanup

Some useful formulas:

Proper case names:

=PROPER(TRIM(A2))

Extract domain from company name (for email guessing):

=LOWER(SUBSTITUTE(A2," ","")) & ".com"

Note: this is a rough guess. Always verify with a proper enrichment tool.

Combine first and last name:

=A2 & " " & B2

Flag duplicate LinkedIn URLs:

=IF(COUNTIF(E:E, E2) > 1, "DUPLICATE", "")

Split location into city and state (if format is “City, State”):

City: =LEFT(A2, FIND(",", A2) - 1)
State: =TRIM(MID(A2, FIND(",", A2) + 1, 100))

Enrichment After Import

Your LinkedIn export gives you names, companies, and professional context. But for email outreach, you need email addresses. For phone outreach, you need phone numbers. This is where enrichment comes in.

When to Enrich: Before or After CRM Import

Enrich before CRM import if:

  • Your CRM charges per contact (enriched records are more valuable, so you only want qualified ones)
  • You want email addresses in the CRM from the start
  • Your sales workflow requires email from day one

Enrich after CRM import if:

  • You want to qualify and segment in the CRM first
  • You are enriching in batches over time (not all at once)
  • Your CRM has built-in enrichment features (HubSpot Breeze, Salesforce Data.com)

Enrichment Tool Comparison

Apollo.io ($49/month for 900 credits)

  • Best all-around option for most B2B teams
  • Good match rates for US-based professionals (60-70%)
  • Also works as a prospecting database, so you can cross-reference
  • API available for programmatic enrichment

Hunter.io ($49/month for 500 searches)

  • Focused specifically on email finding
  • Best for domain-level research (find all emails at a company)
  • Email verification built in
  • Chrome extension for quick lookups

Clearbit / HubSpot Breeze (pricing varies)

  • Highest match rates (70-80% for US business emails)
  • Best data quality overall
  • Native HubSpot integration if you are in that ecosystem
  • Most expensive option

Clay ($149/month for the starter plan)

  • Chains multiple data providers together
  • Tries Apollo, then Hunter, then others in sequence
  • Highest match rate because it uses multiple sources
  • More complex setup but best results

RocketReach ($53/month for 170 lookups)

  • Strong database, particularly for personal emails
  • Good for reaching people who have moved companies recently
  • LinkedIn URL lookup works well

The Enrichment Workflow

  1. Export your qualified prospects from your CRM (or use the cleaned CSV before import)
  2. Upload to your enrichment tool
  3. Map fields: first name, last name, company, LinkedIn URL
  4. Run enrichment
  5. Download results with appended email addresses and phone numbers
  6. Run email verification through ZeroBounce, NeverBounce, or MillionVerifier
  7. Re-import enriched data to your CRM (update existing records, do not create duplicates)

Expect 50-65% of your prospects to come back with verified business email addresses. The rest may have no discoverable email, an unverifiable email, or only a personal email (which you typically should not use for B2B cold outreach).

Tagging for Source Attribution

One of the biggest mistakes teams make is importing LinkedIn data without proper source tagging. Six months later, when leadership asks “where do our best leads come from?”, nobody can answer because all LinkedIn-sourced leads are mixed in with every other source.

What to Tag

Every imported record should have at minimum:

Lead Source: “LinkedIn” — the top-level channel.

Lead Source Detail: The specific search or scrape that generated the lead. Examples:

  • “LinkedIn Search - VP Marketing SaaS US - April 2026”
  • “LinkedIn Group Scan - B2B Marketing Leaders - April 2026”
  • “LinkedIn Warm Leads - Post about Attribution - April 2026”
  • “Sales Navigator - Series B Fintech - April 2026”

Import Date: When the data was scraped and imported. LinkedIn data goes stale — people change jobs, companies grow or shrink. Knowing when you scraped a profile tells you how fresh the data is.

Scrape Source: Whether the leads came from free LinkedIn search, Sales Navigator, group member list, or post reactions/comments. This helps you evaluate which scraping source produces the best-converting leads.

How to Use Tags for Optimization

Once you have a few months of tagged data:

  1. Compare conversion rates by source. Do LinkedIn group scan leads convert at a higher rate than free search leads? If so, invest more time in group scanning.

  2. Compare response rates by search query. Which ICP definitions produce leads that actually respond to outreach? Double down on those searches.

  3. Track time-to-close by source. LinkedIn warm leads (from post reactions) may close faster because they have demonstrated intent. If the data confirms this, prioritize warm lead scraping.

  4. Measure data freshness impact. Do leads contacted within 1 week of scraping convert better than those contacted after 3 weeks? If so, tighten your scrape-to-outreach cycle.

The Weekly Scrape-Export-Import Routine

Making LinkedIn-to-CRM a repeatable process is what separates teams that generate consistent pipeline from teams that do it once and forget.

Monday: Scrape

  • Run 2-3 LinkedIn searches based on your ICP criteria
  • Scrape search results (target 200-400 new profiles)
  • If using warm lead scraping, scan 3-5 relevant posts from the past week

Tuesday: Clean and Qualify

  • Export scraped data to CSV
  • Clean names, company names, and headlines
  • Deduplicate against your existing CRM contacts (export a list of existing LinkedIn URLs from your CRM and compare)
  • Manually qualify: remove obvious non-fits
  • Tag with source, search query, and date

Wednesday: Enrich

  • Upload qualified leads to your enrichment tool
  • Run enrichment for email addresses
  • Verify discovered emails
  • Update your CSV with enriched data

Thursday: Import and Segment

  • Import enriched data into your CRM
  • Assign to appropriate lead lists or campaigns
  • Segment by title, company size, and connection degree
  • Add to the appropriate outreach sequence

Friday: Review

  • Check how last week’s imported leads are progressing
  • Review response rates by segment
  • Identify which search queries produced the best leads
  • Plan next week’s search queries based on what is working

This routine takes 3-4 hours per week once you are comfortable with the tools. The scraping and enrichment steps are the most time-consuming. Everything else is quick CRM work.

Common Mistakes and How to Avoid Them

Mistake 1: Importing Without Deduplication

Importing 300 leads without checking for duplicates against your existing CRM data creates a mess. Duplicate contacts mean duplicate outreach (the prospect gets two identical emails), conflicting data (one record says they are at Company A, the other says Company B), and inflated pipeline numbers.

Fix: Before every import, export your CRM contacts’ LinkedIn URLs and cross-reference against your new scrape. Remove any matches from the import file.

Mistake 2: No Field Mapping Review

Every CRM import tool shows a field mapping preview. Skipping this review means your first names might end up in the company field, or your headlines might overwrite existing email addresses. It takes 60 seconds to review the mapping. Do not skip it.

Fix: Always review the field mapping step. Import 5 records as a test first, check them in the CRM, then import the full batch.

Mistake 3: Importing Without Source Tags

Already covered above, but worth repeating because it is so common. Untagged leads are untraceable leads. You lose the ability to optimize your prospecting when you cannot attribute results back to specific searches.

Fix: Make source tagging a mandatory field in your CSV before import. Do not import any record without a Lead Source Detail value.

Mistake 4: Stale Data Sitting in CRM

LinkedIn data goes stale. People change jobs every 2-3 years on average. If you scraped someone as “VP Marketing at Acme” in January and reach out in June, they may have moved on. Sending “I noticed you are leading marketing at Acme” to someone who left four months ago is a credibility killer.

Fix: Add a “Scraped Date” field to every import. For any lead not contacted within 30 days of scraping, re-verify their current position before outreach. Set up a CRM automation to flag leads older than 60 days for data refresh.

Mistake 5: Over-Scraping and Under-Qualifying

It is easy to get excited about scraping thousands of profiles. But 5,000 unqualified leads in your CRM is worse than 500 qualified ones. Unqualified leads waste enrichment credits, outreach time, and CRM storage.

Fix: Build qualification into your workflow. After scraping and before enrichment, review the list and remove anyone who does not clearly match your ICP. A 30-minute qualification pass saves hours of wasted outreach downstream.

Mistake 6: Not Cleaning Company Names

“Acme Corp” and “Acme Corporation” and “ACME” will create three separate company records in most CRMs. Over time, this fragments your account data and makes it impossible to see all contacts at the same company in one view.

Fix: Standardize company names before import. Pick one canonical form and use it consistently. If your CRM already has a record for the company, use the exact name that is already there.

Making It All Work Together

The LinkedIn-to-CSV-to-CRM pipeline is not complicated in concept. Scrape, clean, enrich, import. Four steps. The challenge is doing it consistently, with good data hygiene, every week.

The teams that build pipeline from LinkedIn do not have secret tools or insider knowledge. They have a routine. Every week they scrape new prospects, clean the data, enrich it, import it into their CRM, and run outreach sequences. They tag everything so they know what works. They review results and adjust.

The compounding effect is significant. After one month, you have 800-1,200 qualified, enriched contacts in your CRM with active outreach sequences running. After three months, you have 3,000+. After six months, you have a proprietary database of prospects in your market that no competitor can replicate because you built it from the ground up with LinkedIn data that is specific to your ICP.

The first export is the hardest because you are learning the tools and building the workflow. By the third week, it becomes muscle memory. By the third month, it is the most reliable source of pipeline in your organization.

Start with one search. Export one CSV. Import it into your CRM. Run one outreach sequence. Measure the results. Then do it again next week, but better.

Ready to find warm leads?

$99 once. Not $99/month.

Export LinkedIn Leads Now

One-click CSV export from any LinkedIn scrape. Free install.