Marketing

Scraping and Enriching LinkedIn Profiles at Scale: What Works, What Breaks

Bulk LinkedIn profile extraction — pulling experience, skills, and contact data from hundreds of profiles — is possible with the right setup. Here's what works in practice, what rate limits look like, and how to enrich at scale without hitting walls.

By Makeinfo Team
#linkedin-scraping #profile-enrichment #bulk-linkedin #sales-navigator #linkedin-automation #b2b-data

LinkedIn profile data is the most useful professional context available for B2B outreach. Current role, career history, education, skills, and company context — all in one structured source.

The challenge is that LinkedIn is designed for individual viewing, not bulk extraction. Getting profile data at scale requires working within the platform’s constraints while maximizing the data you can actually retrieve.


What LinkedIn Profile Data Contains

A full LinkedIn profile includes:

  • Headline: The person’s self-described professional identity
  • Current position: Role, company, start date
  • Experience history: All previous positions with companies, titles, and tenures
  • Education: Degrees, institutions, graduation years
  • Skills: Self-reported skills with endorsement counts
  • Certifications: Professional certifications and credentials
  • Location: Current city or region
  • About section: Free-text professional summary
  • Connections count: Approximate network size

What LinkedIn does NOT expose publicly:

  • Work email address
  • Direct phone number
  • Personal contact information

Contact data requires a separate enrichment step after profile extraction.


Rate Limits and How They Work

LinkedIn enforces rate limits on profile viewing to prevent automated scraping. The limits vary by account type and behavior:

Personal accounts: Typically 100–300 profile views per day before triggering a “commercial use limit” warning. Exceeding this may result in account restrictions.

LinkedIn Premium/Sales Navigator: Higher limits, typically 1,000+ profile views per month tracked as commercial activity.

Session-based throttling: LinkedIn also throttles based on viewing speed. 100 profile views in 10 minutes looks automated. 100 views spread across 8 hours looks human. Rate limit logic respects the pattern, not just the count.

Practical implication: Batch sizes for profile scraping should be configured with delays between requests. A safe default is 50–100 profiles per hour with randomized delays between each request.


What Happens When You Hit Limits

LinkedIn rate limit responses:

  • Soft limit: “You’ve exceeded your commercial search limit for this month” — profile viewing still works but search results are restricted
  • Hard limit warning: “Unusual activity detected” — requires manual account verification
  • Account restriction: Temporary or permanent restriction on the account used for scraping

To protect your primary LinkedIn account, use a dedicated account for scraping operations. This isolates any restriction risk from your personal profile.


Building the Full Enrichment Pipeline

Profile scraping produces structured data; enrichment converts profiles to contactable leads. The combined pipeline:

Step 1: Input LinkedIn URLs Source from: Sales Navigator exports, post engager extraction, LinkedIn search, or manual curation.

Step 2: Profile Extraction For each URL, extract: headline, current role, company, location, career history, skills, education.

Step 3: ICP Filtering Before running email enrichment (which costs credits), filter the extracted profiles against your ICP criteria. Only enriching profiles that match your ICP reduces credit waste by 30–50%.

Step 4: Email Enrichment Run the filtered list through your enrichment waterfall (Datagma → LeadMagic or your configured providers). Expect 55–70% email coverage on a typical LinkedIn-sourced list.

Step 5: Phone Enrichment (Optional) For high-priority ICP matches, run a phone enrichment step. Coverage will be 20–40% — supplement the phone waterfall for maximum coverage.

Step 6: Output All data written to your Google Sheet: LinkedIn URL, full name, headline, current role, company, location, work email, phone, skills (top 5), and enrichment timestamp.


Experience History: More Useful Than It Looks

Career history — previous companies and tenures — enables several targeting and personalization use cases:

Previous company targeting: If you know that people who previously worked at [Target Company] are a strong buying signal (because they bring specific context or processes), you can filter your enriched list by previous employer.

Career progression context: Someone who moved from Sales to RevOps shows a specific career trajectory. Your outreach can reference their transition context.

Common employer thread: “I see you were at [Company] — we’ve actually worked with several people from that team” is a credible warm connection signal.

Industry experience depth: Multiple stints in the same industry show domain expertise. Relevant for recruiting, partnership outreach, or advisory conversations.


Skills Data for Qualification

Skills and endorsements surface qualification signals that title alone misses:

Technology skills: Someone with “Salesforce” and “SQL” as top skills in a RevOps role is meaningfully different from someone with “Salesforce” and “PowerPoint.” The first is technically sophisticated; the second may need more technical support.

Certification depth: Specific certifications (Salesforce Certified Administrator, Google Analytics Individual Qualification) indicate tool proficiency. For selling technical or certification-integrated tools, this is directly relevant.

Endorsement count: High endorsement counts signal an active, engaged LinkedIn user with a substantial network — they’re more likely to be reachable and responsive through LinkedIn.


Run your first bulk LinkedIn profile enrichment → LinkedIn Profile Scraper & Enricher at Scale →