# LinkedIn Competitor Intelligence & Content Benchmarking (`george.the.developer/linkedin-competitor-intel`) Actor

Compare 2 to 5 LinkedIn profiles side by side. Get engagement leaderboards, topic gap analysis, format comparison, hashtag intelligence, and competitive recommendations. Built for marketing agencies, sales teams, and personal branding coaches.

- **URL**: https://apify.com/george.the.developer/linkedin-competitor-intel.md
- **Developed by:** [George Kioko](https://apify.com/george.the.developer) (community)
- **Categories:** Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Competitor Intelligence & Content Benchmarking

The only LinkedIn competitive analysis tool on Apify. Compare 2 to 5 LinkedIn profiles side by side and get a data driven intelligence report showing who is winning, why they are winning, and exactly what you need to do to beat them.

### What You Get

Feed in post data from any 2 to 5 LinkedIn profiles and receive a complete competitive intelligence report:

**Engagement Leaderboard** ranks every profile by average engagement so you instantly see who is dominating

**Format Comparison** reveals what content format works best for each competitor. One company might crush it with video while another wins with text posts. You will know exactly what to copy and what to avoid.

**Topic Gap Analysis** is the most valuable insight. The tool finds topics your competitors talk about that you never mention. These are content opportunities you are leaving on the table.

**Posting Strategy Diff** compares frequency, consistency, best posting days, and peak hours across all profiles. Find out if you are posting too little, too much, or at the wrong times.

**Hashtag Intelligence** shows which hashtags competitors use that you do not, and which hashtags drive the most engagement across all profiles combined.

**Sentiment Comparison** reveals the emotional tone each competitor uses and whether positive or negative content drives better results for different profiles.

**Competitive Recommendations** are the actionable output. Every recommendation references a specific competitor by name with real numbers. No generic advice. Only data backed moves you can execute today.

### Who This Is For

**Marketing agencies** benchmarking client LinkedIn performance against direct competitors. Run this monthly and show clients exactly where they stand.

**Sales teams** studying prospect content strategy before reaching out. Know what topics a company cares about before the first call.

**Personal branding coaches** comparing client profiles to industry leaders. Show clients the gap between where they are and where the top performers sit.

**Content strategists** planning LinkedIn content calendars. See what works for the competition and build your strategy around real data instead of guesswork.

### Input Format

Provide an array of profiles. Each profile needs a name and an array of posts. Posts should include text, engagement metrics, posting date, content type, and hashtags.

```json
{
  "profiles": [
    {
      "name": "Your Company",
      "posts": [
        {
          "text": "We just launched our new AI product!",
          "numLikes": 100,
          "numComments": 20,
          "numShares": 5,
          "postedAt": "2026-04-01T09:00:00Z",
          "type": "text",
          "hashtags": ["#ai"]
        }
      ]
    },
    {
      "name": "Competitor A",
      "posts": [
        {
          "text": "Excited to share our latest update.",
          "numLikes": 200,
          "numComments": 40,
          "numShares": 10,
          "postedAt": "2026-04-01T10:00:00Z",
          "type": "video",
          "hashtags": ["#ai", "#growth"]
        }
      ]
    }
  ]
}
````

Minimum 2 profiles, maximum 5. Each profile can have any number of posts. More posts means better analysis.

### Output

The output is a single JSON report pushed to the dataset:

```json
{
  "reportType": "competitive-intelligence",
  "profilesAnalyzed": 3,
  "generatedAt": "2026-04-12T...",
  "leaderboard": [
    { "name": "Competitor A", "avgEngagement": 250, "rank": 1 },
    { "name": "Your Company", "avgEngagement": 158, "rank": 2 }
  ],
  "profileAnalyses": {
    "Your Company": { "engagement, timing, formats, topics, hashtags, sentiment" },
    "Competitor A": { "..." }
  },
  "comparison": {
    "engagementLeaderboard": [],
    "formatComparison": {},
    "topicGapAnalysis": {},
    "hashtagIntelligence": {},
    "postingStrategyDiff": {},
    "sentimentComparison": {}
  },
  "recommendations": [
    "Competitor A gets 1.6x your engagement. Their secret: 40% video content vs your 0%.",
    "Competitor B talks about #scaling which gets 180 avg engagement. You never mention this topic."
  ]
}
```

### Where to Get Post Data

Use any LinkedIn scraping tool that exports posts with engagement metrics. Compatible formats include output from the LinkedIn Employee Scraper, HarvestAPI, PhantomBuster, and any tool that exports numLikes, numComments, numShares, text, postedAt, and type fields.

### Pricing

$0.02 per competitive intelligence report generated (pay per event).

### Related Tools

**LinkedIn Employee Scraper** to discover who works at competitor companies and what they post about.

**LinkedIn Content Performance Analyzer** to deep dive into a single profile with detailed engagement analysis, timing optimization, and content recommendations.

### Support

Open an issue on GitHub or message George The Developer on Apify for questions and feature requests.

# Actor input Schema

## `profiles` (type: `array`):

Array of profile objects. Each profile needs a name and an array of posts. Each post should have: text, postedAt, numLikes, numComments, numShares, type, hashtags. Minimum 2 profiles, maximum 5.

## Actor input object example

```json
{
  "profiles": [
    {
      "name": "Your Company",
      "posts": [
        {
          "text": "We just launched our new AI product!",
          "numLikes": 100,
          "numComments": 20,
          "numShares": 5,
          "postedAt": "2026-04-01T09:00:00Z",
          "type": "text",
          "hashtags": [
            "#ai"
          ]
        }
      ]
    },
    {
      "name": "Competitor A",
      "posts": [
        {
          "text": "Excited to share our latest update.",
          "numLikes": 200,
          "numComments": 40,
          "numShares": 10,
          "postedAt": "2026-04-01T10:00:00Z",
          "type": "video",
          "hashtags": [
            "#ai",
            "#growth"
          ]
        }
      ]
    }
  ]
}
```

# 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 = {
    "profiles": [
        {
            "name": "Your Company",
            "posts": [
                {
                    "text": "We just launched our new AI product!",
                    "numLikes": 100,
                    "numComments": 20,
                    "numShares": 5,
                    "postedAt": "2026-04-01T09:00:00Z",
                    "type": "text",
                    "hashtags": [
                        "#ai"
                    ]
                }
            ]
        },
        {
            "name": "Competitor A",
            "posts": [
                {
                    "text": "Excited to share our latest update.",
                    "numLikes": 200,
                    "numComments": 40,
                    "numShares": 10,
                    "postedAt": "2026-04-01T10:00:00Z",
                    "type": "video",
                    "hashtags": [
                        "#ai",
                        "#growth"
                    ]
                }
            ]
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("george.the.developer/linkedin-competitor-intel").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 = { "profiles": [
        {
            "name": "Your Company",
            "posts": [{
                    "text": "We just launched our new AI product!",
                    "numLikes": 100,
                    "numComments": 20,
                    "numShares": 5,
                    "postedAt": "2026-04-01T09:00:00Z",
                    "type": "text",
                    "hashtags": ["#ai"],
                }],
        },
        {
            "name": "Competitor A",
            "posts": [{
                    "text": "Excited to share our latest update.",
                    "numLikes": 200,
                    "numComments": 40,
                    "numShares": 10,
                    "postedAt": "2026-04-01T10:00:00Z",
                    "type": "video",
                    "hashtags": [
                        "#ai",
                        "#growth",
                    ],
                }],
        },
    ] }

# Run the Actor and wait for it to finish
run = client.actor("george.the.developer/linkedin-competitor-intel").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 '{
  "profiles": [
    {
      "name": "Your Company",
      "posts": [
        {
          "text": "We just launched our new AI product!",
          "numLikes": 100,
          "numComments": 20,
          "numShares": 5,
          "postedAt": "2026-04-01T09:00:00Z",
          "type": "text",
          "hashtags": [
            "#ai"
          ]
        }
      ]
    },
    {
      "name": "Competitor A",
      "posts": [
        {
          "text": "Excited to share our latest update.",
          "numLikes": 200,
          "numComments": 40,
          "numShares": 10,
          "postedAt": "2026-04-01T10:00:00Z",
          "type": "video",
          "hashtags": [
            "#ai",
            "#growth"
          ]
        }
      ]
    }
  ]
}' |
apify call george.the.developer/linkedin-competitor-intel --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=george.the.developer/linkedin-competitor-intel",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "LinkedIn Competitor Intelligence & Content Benchmarking",
        "description": "Compare 2 to 5 LinkedIn profiles side by side. Get engagement leaderboards, topic gap analysis, format comparison, hashtag intelligence, and competitive recommendations. Built for marketing agencies, sales teams, and personal branding coaches.",
        "version": "1.0",
        "x-build-id": "kZoz3teDAr9il0Zxy"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/george.the.developer~linkedin-competitor-intel/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-george.the.developer-linkedin-competitor-intel",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/george.the.developer~linkedin-competitor-intel/runs": {
            "post": {
                "operationId": "runs-sync-george.the.developer-linkedin-competitor-intel",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/george.the.developer~linkedin-competitor-intel/run-sync": {
            "post": {
                "operationId": "run-sync-george.the.developer-linkedin-competitor-intel",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "profiles"
                ],
                "properties": {
                    "profiles": {
                        "title": "Profiles",
                        "type": "array",
                        "description": "Array of profile objects. Each profile needs a name and an array of posts. Each post should have: text, postedAt, numLikes, numComments, numShares, type, hashtags. Minimum 2 profiles, maximum 5."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
