LinkedIn Scraping Guide
How to bulk scrape LinkedIn profiles using CSV uploads.
Enrich Engine's scraping system finds LinkedIn profiles by searching Google with targeted queries. Upload a CSV with company names, person names, or domains, and the system will discover matching profiles.
Workflow Types
The system automatically detects your workflow based on CSV columns:
| Workflow | Use Case | Required Columns |
|---|---|---|
| Company + Role | Find people by title at companies | company, role (or role1, role2...) |
| Name Search | Find specific people by name | first_name, last_name |
| Domain Search | Find people at domains/websites | domain, role (or role1, role2...) |
CSV Format: Company + Role
Find people by job title at specific companies. This is the most common workflow.
company,role
Anthropic,VP of Sales
Stripe,Head of Engineering
OpenAI,CTO
Notion,Product ManagerFor multiple roles at the same company, use numbered role columns:
company,role1,role2,role3
Anthropic,CEO,CTO,VP of Sales
Stripe,CEO,CFO,Head of Product
OpenAI,CEO,CTO,VP of EngineeringCSV Format: Name Search
Find LinkedIn profiles for specific people by name. Adding company improves accuracy.
first_name,last_name,company
John,Smith,Anthropic
Jane,Doe,Stripe
Mike,Johnson,OpenAICSV Format: Domain Search
Find people at companies when you have their website domain.
domain,role
anthropic.com,VP of Sales
stripe.com,Head of Engineering
openai.com,CTOMulti-Person Scraping
The system can find multiple people for the same role at a company. If you have duplicate rows, it will find different people for each:
company,role
Anthropic,Software Engineer
Anthropic,Software Engineer
Anthropic,Software EngineerThis will find 3 different Software Engineers at Anthropic. The system tracks which profiles have been found and excludes them from subsequent searches to avoid duplicates.
How It Works
- Query Generation: For each row, the system builds a Google search query like
site:linkedin.com/in/ "VP of Sales" "Anthropic" - Search Execution: The query is sent to Serper (Google Search API)
- Result Extraction: LinkedIn profile URLs are extracted from results
- Name Parsing: First/last names are parsed from the result title
- Deduplication: Already-found URLs are excluded from future searches
Tips for Better Results
Use Official Company Names
"Anthropic" works better than "Anthropic AI" or "Anthropic, PBC". Use the name as it appears on LinkedIn company pages.
Be Specific with Titles
"VP of Sales" yields better results than "Sales". More specific titles have higher match precision.
Unique Names Have Higher Success
Name searches work best for distinctive names. Common names like "John Smith" may return incorrect matches without additional context.
Profile Completeness Matters
People with incomplete LinkedIn profiles or privacy settings may not appear in search results. This is a limitation of Google indexing.
Result Statuses
| Status | Meaning |
|---|---|
| completed | LinkedIn profile found |
| no_result | No matching profile in search results |
| failed | Search error (API limit, network issue) |
Next Steps
After scraping, you can:
- Sync to a list: Click "Sync to List" to create leads from found profiles
- Enrich profiles: Use the Enrich API to add emails and phone numbers
- Export results: Download as CSV for use in other tools