# LinkedIn Profile Scraper - MCP Ready (`apiagent/linkedin-profile-scraper`) Actor

Scrape LinkedIn profiles to structured JSON. Works with Claude, Codex, Cursor, Hermes Agent and any MCP-compatible AI agent. Features: cached results, AI skill extraction, influence scoring.

- **URL**: https://apify.com/apiagent/linkedin-profile-scraper.md
- **Developed by:** [Agent Wang](https://apify.com/apiagent) (community)
- **Categories:** Developer tools, Jobs, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.50 / 1,000 linkedin-profile-scrapeds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## 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 - MCP Ready

A reliable **LinkedIn profile scraper** that turns any public [LinkedIn](https://www.linkedin.com/) person profile into clean, structured JSON. Works with Claude, Codex, Hermes Agent, or any MCP-compatible AI agent.

### 🎯 Key Features

- **Reliable Infrastructure** - Enterprise-grade scraping with 99%+ success rate
- **AI Skill Extraction** - Extracts skills from profile text (60+ AI/ML keywords)
- **Influence Scoring** - Classifies profiles by follower/connection tier
- **MCP Compatible** - Ready for Claude,  Codex, Hermes Agent and AI agent workflows
- **Structured Output** - Consistent JSON format for easy integration

### 📋 What this API returns

| Field | Description |
| --- | --- |
| `name`, `firstName`, `lastName` | The person's name |
| `headline` | Profile headline / current position |
| `about` | About / summary section |
| `location`, `countryCode` | Location info |
| `currentCompany`, `currentTitle` | Current role |
| `experience` | Work history (title, company, dates, location) |
| `pastCompanies` | Distinct company names from experience |
| `education` | Education entries (school, degree, field) |
| `followers`, `connections` | Audience size |
| **`skills`** | **AI-extracted skills (our differentiator)** |
| **`aiRelevantScore`** | **AI relevance score (0-100)** |
| **`influence.tier`** | **Influence tier (nano/micro/mid/macro/mega)** |
| `summary` | One-line profile summary |

#### 🎯 Our Unique Value

Unlike other LinkedIn scrapers, we provide **AI-powered insights**:

- **`skills`** - Automatically extracts 60+ AI/ML keywords from profile text
- **`aiRelevantScore`** - Scores how relevant this person is to AI/ML roles (0-100)
- **`influence.tier`** - Classifies influence level based on followers/connections

**Example:**

```json
{
  "result_type": "profile",
  "name": "Andrew Ng",
  "firstName": "Andrew",
  "lastName": "Ng",
  "headline": "Founder at DeepLearning.AI",
  "about": "Founder of DeepLearning.AI; General Partner at AI Fund; Chairman and Co-Founder of Coursera...",
  "location": "Palo Alto, California, United States",
  "countryCode": "US",
  "currentCompany": "DeepLearning.AI",
  "currentTitle": "Founder",
  "experience": [
    {
      "title": "Founder",
      "company": "DeepLearning.AI",
      "duration": "2017 - Present",
      "location": "Palo Alto, California"
    },
    {
      "title": "Managing General Partner",
      "company": "AI Fund",
      "duration": "2017 - Present",
      "location": "Palo Alto, California"
    }
  ],
  "pastCompanies": ["Google Brain", "Stanford University", "Coursera"],
  "education": [
    {
      "title": "Stanford University",
      "degree": "Ph.D.",
      "field": "Computer Science"
    }
  ],
  "followers": 2590520,
  "connections": 500,
  "skills": ["Machine Learning", "Deep Learning", "Computer Vision", "NLP", "Python"],
  "aiRelevantScore": 95,
  "influence": {
    "followers": 2590520,
    "connections": 500,
    "tier": "mega"
  },
  "summary": "Founder at DeepLearning.AI, in Palo Alto, California, United States, 2,590,520 followers"
}
```

### ⚙️ Input examples

#### One profile

```json
{
  "profileUrls": ["https://www.linkedin.com/in/andrewyng"]
}
```

#### Several profiles (collected in parallel)

```json
{
  "profileUrls": [
    "https://www.linkedin.com/in/andrewyng",
    "https://www.linkedin.com/in/williamhgates"
  ]
}
```

### 🔌 Use this API from Claude (MCP)

This Actor is MCP-server-compatible, so [Claude Code](https://claude.ai/referral/uIlpa7nPLg) (free trial), Claude (desktop and web), Cursor, and other MCP clients can call it as a tool through Apify's hosted MCP server.

Add it with this Actor-specific URL:

`https://mcp.apify.com/?tools=actors,docs,os4ZlK8i0WebQ2Swu`

### 💰 Pricing (pay-per-event)

You pay per profile returned. There is no per-run setup fee. The current per-event price is shown on the Store card and in the Actor's Monetization details. Because billing is per profile, you only pay for the profiles actually delivered.

### 🎯 Use cases

- **Sales prospecting** - Enrich prospect URLs with role, company, seniority
- **Recruiting** - Pull candidate headlines, experience, education
- **Lead enrichment** - Append firmographic data to CRM records
- **Talent-market research** - Analyze roles, career moves, education
- **AI agent workflows** - Drive this API over MCP from Claude

### 🚀 How to get started

1. Open the Actor and paste one or more LinkedIn profile URLs into `profileUrls`
2. Run it and read the results from the dataset (JSON, CSV, Excel, or API)

### ❓ FAQ

#### Is this a LinkedIn API or a LinkedIn profile scraper?

Both descriptions fit. You call it like an API (profile URL in, structured JSON out), and under the hood it is a LinkedIn profile scraper that reads public profile pages.

#### How do I scrape LinkedIn profiles with this actor?

Paste public LinkedIn `/in/` URLs into `profileUrls` and run it. Each URL returns one row of structured data.

#### Can I run it from Claude or another AI agent over MCP?

Yes. The Actor is MCP-server-compatible, so Claude Code, Cursor, and other MCP clients can call it as a tool.

#### What if a profile cannot be collected?

The API returns a clear error row for that URL explaining why, so a single bad URL does not fail the whole run.

# Actor input Schema

## `profileUrls` (type: `array`):

LinkedIn profile URLs to scrape (up to 1000 per run)

## Actor input object example

```json
{}
```

# Actor output Schema

## `profiles` (type: `string`):

Structured LinkedIn profile data including skills, influence scoring, and AI relevance

## `metadata` (type: `string`):

Execution statistics including cache hits, API costs, and success rates

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("apiagent/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 = {}

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

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

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

```

## CLI example

```bash
echo '{}' |
apify call apiagent/linkedin-profile-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,apiagent/linkedin-profile-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

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