# Linkedin Profile Scraper (`codenest/linkedin-profile-scraper`) Actor

Extract complete LinkedIn profiles including full name, headline, about section, connections, followers, work history with durations, education, skills, company details, profile image and location. Perfect for recruitment, sales intelligence and market research.

- **URL**: https://apify.com/codenest/linkedin-profile-scraper.md
- **Developed by:** [CodeNest](https://apify.com/codenest) (community)
- **Categories:** Jobs, Lead generation, Social media
- **Stats:** 14 total users, 5 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$12.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#rental-actors

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🎯 LinkedIn Profile Scraper - Professional Data Extraction Tool

**Effortlessly extract comprehensive LinkedIn profile data with our enterprise-grade powerful actor! This Apify actor enables you to scrape detailed professional information, career history, and complete profile metadata with precision and reliability.**

***

### 📋 Overview

Need to gather professional intelligence or build a talent database? This **LinkedIn Profile Scraper** delivers:

- 👤 **Complete Profile Data**: Names, headlines, about sections, and more
- 💼 **Career History**: Full work experience with durations and descriptions
- 📊 **Engagement Metrics**: Follower counts, connection numbers
- 🖼️ **Media Assets**: Profile images and public identifiers
- 🔄 **Bulk Mode**: Process multiple LinkedIn profile URLs per run

Perfect for recruiters 👔, sales professionals 📈, market researchers 🔍, and HR tech developers 💻!

### ✨ Core Capabilities/Key Features

#### 📊 Profile Information Mastery

- **Identity Data**: Full name, first name, last name, public identifier
- **Professional Headline**: Current role and company
- **About Section**: Complete biography and professional summary
- **Location Details**: Geographic information with region specificity

#### 💪 Experience Extraction

- **Current Role**: Job title, company, duration, location
- **Work History**: Complete career timeline with start/end dates
- **Company Intelligence**: LinkedIn company pages and organizational links
- **Duration Calculations**: Precise years/months formatting

#### 📈 Engagement Analytics

- **Connection Count**: Network size estimation
- **Follower Metrics**: Audience reach and influence
- **Profile Completeness**: URN and public identifier tracking

***

### ⚙️ Input Configuration

Just enter the LinkedIn profile URLs in the Input Section then click the "start" button and wait for the results. The URL will be like this:

```json
{
  "urls": [
    {
      "url": "https://www.linkedin.com/in/ryanroslansky"
    }
  ]
}
```

#### 📝 Input Specifications

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `urls` | Array | Yes | LinkedIn profile URLs to process |
| `url` | String | Yes | Valid LinkedIn profile URL |

***

### 📤 Output Structure

You will see comprehensive output like this:

```json
[
  {
    "profileData": {
      "linkedinUrl": "https://www.linkedin.com/in/ryanroslansky",
      "linkedinPublicUrl": "https://linkedin.com/in/ryanroslansky",
      "firstName": "Ryan",
      "lastName": "Roslansky",
      "fullName": "Ryan Roslansky",
      "headline": "CEO at LinkedIn",
      "about": "As CEO of LinkedIn and EVP of Microsoft Office...",
      "connections": 500,
      "followers": 933000,
      "email": null,
      "mobileNumber": null,
      "publicIdentifier": "ryanroslansky",
      "urn": "678940",
      "profileImage": "https://media.licdn.com/.../profile-image.jpg",
      "location": "San Francisco Bay Area, US"
    },
    "experienceData": {
      "jobTitle": "Chief Executive Officer",
      "jobStartedOn": "2020-06",
      "jobLocation": "San Francisco Bay Area",
      "jobStillWorking": true,
      "currentJobDuration": "5 yrs 9 mos",
      "currentJobDurationInYrs": 5.8,
      "companyName": "LinkedIn",
      "companyLinkedin": "https://www.linkedin.com/company/linkedin",
      "experiences": [...]
    }
  }
]
```

#### 📚 Output Field Documentation

**👤 Profile Data Section**
| Field | Description |
|-------|-------------|
| `linkedinUrl` | Original scraped LinkedIn URL |
| `fullName` | Complete name of the professional |
| `headline` | Current professional headline/title |
| `about` | Complete biography/description |
| `connections` | Network connection count |
| `followers` | Total follower count |
| `location` | Geographic location information |

**💼 Experience Data Section**
| Field | Description |
|-------|-------------|
| `jobTitle` | Current position title |
| `companyName` | Employer organization |
| `jobStartedOn` | Start date (YYYY-MM format) |
| `jobEndedOn` | End date (if applicable) |
| `duration` | Human-readable time period |
| `durationInYrs` | Precise decimal year duration |
| `jobDescription` | Role responsibilities and achievements |

***

### 📊 Data Categories Available

The **LinkedIn Profile Scraper** automatically extracts multiple data categories:

1. **Profile Information** - Names, headlines, about sections, URLs
2. **Work Experience** - Complete career history with descriptions
3. **Engagement Metrics** - Connections, followers, network size
4. **Media Assets** - Profile images and public identifiers
5. **Company Intelligence** - Organization links and industry context

***

### 🔧 Technical Features

#### 🔍 Advanced Extraction Capabilities

- **Profile Metadata**: URN, public identifier, profile completeness
- **Experience Analytics**: Precise duration calculations (years/months)
- **Company Recognition**: Automated LinkedIn company page linking
- **Multi-profile Support**: Batch processing capabilities

#### ⚡ Data Quality Features

- **Employment Status Detection**: Current/former role identification
- **Date Normalization**: Standardized YYYY-MM formatting
- **Duration Calculations**: Both human-readable and decimal formats
- **Null Value Handling**: Graceful missing data management

#### 🛡️ Reliability Features

- **URL Validation**: Automatic LinkedIn URL normalization
- **Public Profile Access**: Works with publicly accessible profiles
- **Structured Output**: Consistent JSON formatting
- **Error Resilience**: Continues processing multiple profiles

***

### 🎯 Use Cases

- **Recruiters** – Build talent pipelines and candidate databases
- **Sales Professionals** – Prospect research and lead qualification
- **Market Researchers** – Analyze industry leadership patterns
- **HR Tech Developers** – Power talent acquisition platforms
- **Business Analysts** – Track executive career movements
- **Investors** – Research company leadership teams

***

### ✅ Why Choose Our LinkedIn Profile Scraper?

- **Reliable Performance**: Stable and efficient profile extraction
- **Comprehensive Data**: Get complete professional histories
- **User-Friendly**: Simple interface for beginners and experts
- **Regular Updates**: Maintained for LinkedIn compatibility
- **Structured Output**: Easy-to-parse JSON formatting

***

### ⚠️ Limitations

- Only works with public LinkedIn profiles
- May encounter rate limits based on LinkedIn's restrictions
- Some profiles may have limited visibility based on privacy settings

#### Zillow Specialized Actors:

- [Zillow Agent Profile Scraper](https://apify.com/codenest/zillow-agent-profile-scraper)
- [Zillow Property & Apartment Scraper Pro](https://apify.com/codenest/zillow-property-apartment-scraper-pro)
- [Zillow Property & Apartment Scraper](https://apify.com/codenest/zillow-property-apartment-scraper)

***

### 📧 Need Customization?

Want \*higher data volumes, \*\*specific field extraction, or \**custom integrations*?

✉ Email **<codenest2.0@gmail.com>** for tailored solutions!

***

# Actor input Schema

## `urls` (type: `array`):

List of public LinkedIn profile URLs to scrape.

## Actor input object example

```json
{
  "urls": [
    {
      "url": "https://www.linkedin.com/in/sameh-jarour"
    }
  ]
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        {
            "url": "https://www.linkedin.com/in/sameh-jarour"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("codenest/linkedin-profile-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "urls": [{ "url": "https://www.linkedin.com/in/sameh-jarour" }] }

# Run the Actor and wait for it to finish
run = client.actor("codenest/linkedin-profile-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    {
      "url": "https://www.linkedin.com/in/sameh-jarour"
    }
  ]
}' |
apify call codenest/linkedin-profile-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=codenest/linkedin-profile-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ztgYKenPtFPBySWth/builds/VndE4zFgcDS1SSoEC/openapi.json
