# LinkedIn Hashtag Scraper · No Cookies · $1/1k ✅ (`linkedintel/linkedin-hashtag-scraper`) Actor

Find LinkedIn posts by hashtag. Track competitor campaigns, viral trends, industry conversations. Recency + top-performing sort. No cookies, no login. $1/1k pay-per-post.

- **URL**: https://apify.com/linkedintel/linkedin-hashtag-scraper.md
- **Developed by:** [LinkedIntel](https://apify.com/linkedintel) (community)
- **Categories:** Social media, SEO tools, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$3.00 / 1,000 hashtag post extracteds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## 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 Hashtag Scraper · No Cookies · $1/1k

Find LinkedIn posts that contain specific hashtags. Track competitor campaigns, viral trends, industry conversations, and the actual voices behind a topic — at LinkedIn's scale, without ever logging in.

**Pay-per-result pricing: $1 per 1,000 posts.** No subscription, no monthly minimum, no charge for empty queries.

---

### Why this exists — the white-space spot on Apify Store

There is **no other dedicated LinkedIn hashtag scraper on Apify**. Today's options force you to either:

- Pay $99/mo for **Brand24** (or $41/mo for **Mention**, or "talk to sales" for **Sprinklr**) for a broader social-listening suite you don't need, billed monthly whether you pull data or not — and most of these tools deprioritize LinkedIn coverage.
- Hack around a generic LinkedIn search scraper, paste a hashtag as a keyword, and discover only after running it that you can't filter by date, can't dedup posts across multiple hashtags, and don't get a reaction breakdown.

This actor exists for one job: **give me every recent LinkedIn post containing #hashtag, with full author, engagement, and media context, normalized, deduped, and on a per-record price tag.**

### What you get — 27 fields per post

Every post returned is a `hashtagPost` record with this shape:

```json
{
  "type": "hashtagPost",
  "sourceHashtag": "ai",
  "postId": "7204318726155931648",
  "postUrn": "urn:li:activity:7204318726155931648",
  "postUrl": "https://www.linkedin.com/posts/...",
  "authorName": "Jane Founder",
  "authorHeadline": "Building autonomous agents @ Acme",
  "authorUrl": "https://www.linkedin.com/in/jane-founder/",
  "authorUrn": "urn:li:fsd_profile:ABC123",
  "authorType": "person",
  "text": "Just shipped our biggest AI release of 2026...",
  "textLength": 412,
  "postedAt": "2026-05-18T14:32:00+00:00",
  "language": "en",
  "reactionCount": 487,
  "likeCount": 312,
  "empathyCount": 24,
  "praiseCount": 95,
  "interestCount": 42,
  "funnyCount": 3,
  "appreciationCount": 11,
  "maybeCount": 0,
  "commentCount": 38,
  "shareCount": 6,
  "repostCount": 14,
  "mediaType": "image",
  "mediaUrl": "https://media.licdn.com/dms/...",
  "isRepost": false,
  "originalAuthorName": null,
  "hashtagsFound": ["ai", "agents", "shipit"],
  "mentions": ["acmecorp", "openai"],
  "scrapedAt": "2026-05-19T08:12:44+00:00"
}
````

Each run also emits one `summary` record at the end with per-hashtag counts, and a `diagnostic` record per hashtag if zero posts come back.

### Top use cases

#### 1. Track competitor product-launch campaigns

Monitor `#yourcompetitor` daily — every time a customer, employee, or partner mentions them on LinkedIn, you see the post, the reaction count, and the engagement context.

#### 2. Watch viral / trending content

Pull `#blackfriday`, `#cybermonday`, `#ces2026` during big moments. Sort by `top` to see what's actually winning attention.

#### 3. Industry pulse & trend research

Monthly snapshot of `#generativeai`, `#climatetech`, or any vertical hashtag — count posts, top authors, dominant themes, reaction patterns.

#### 4. Conference & event tracking

Conference-week scraping of `#saastr`, `#dreamforce`, `#websummit` — get the speakers, sponsors, and attendees actually posting. Better lead lists than the official attendee list.

#### 5. UGC discovery for brand marketing

Monitor `#yourbrand` to find customer-generated content you can amplify, reshare with permission, or feature in case studies.

#### 6. Influencer + creator sourcing

Pull `#yourtopic` posts sorted by `top` — sort the output by `reactionCount` and you have a list of the actual influential creators on that topic, not the LinkedIn-curated "voice" list.

#### 7. Recruiter sourcing for niche skills

`#rustlang`, `#kubernetes`, `#designsystems` — find the people actively posting in your hiring funnel's keyword space.

### Pricing — why $1 per 1,000 posts is unbeatable

| Tool | Pricing | Monthly minimum | LinkedIn-specific |
|---|---|---|---|
| **Brand24** | $99 / mo (Personal) → $499 / mo | Yes — fixed | Multi-channel, LinkedIn is one of many |
| **Mention** | $41 / mo → $179 / mo | Yes — fixed | Multi-channel |
| **Sprinklr** | Enterprise, "contact sales" | Yes — typically $1k+ / mo | Multi-channel |
| **Hootsuite Insights / Brandwatch** | $$$$, enterprise contracts | Yes | Multi-channel |
| **Generic Apify LinkedIn search** | $1.50/1k posts, no dedup, no date filter, no breakdown | None | LinkedIn, but blunt instrument |
| **This actor** | **$1 / 1,000 posts** | **None** | **LinkedIn-only, hashtag-purpose-built** |

Apify gives every user **$5 of free platform credit per month** — that's ~5,000 posts/month free before you ever pay a cent.

### Example recipes

#### Track a competitor launch — last 7 days

```json
{
  "hashtags": ["youraicompetitor"],
  "sortBy": "recent",
  "dateFrom": "2026-05-12",
  "maxPostsPerHashtag": 200
}
```

#### Top-performing AI posts in 2026 so far

```json
{
  "hashtags": ["ai", "generativeai", "llm"],
  "sortBy": "top",
  "dateFrom": "2026-01-01",
  "maxPostsPerHashtag": 500
}
```

#### English-only Black Friday posts

```json
{
  "hashtags": ["blackfriday", "cybermonday"],
  "sortBy": "top",
  "languagesFilter": ["en"],
  "maxPostsPerHashtag": 300
}
```

#### Pulse-check #ces2026 around the event

```json
{
  "hashtags": ["ces2026", "ces"],
  "dateFrom": "2026-01-06",
  "dateTo": "2026-01-12",
  "maxPostsPerHashtag": 1000
}
```

### How it works

1. You provide one or more hashtags (with or without `#`).
2. The actor strips `#`, lowercases, and deduplicates your input.
3. For each hashtag, it paginates LinkedIn's public hashtag-search results until it hits `maxPostsPerHashtag` (or the data runs out).
4. Posts are deduplicated **across hashtags by post ID** — if `#ai` and `#generativeai` both surface the same post, you're billed once.
5. Date and language filters are applied client-side (the vendor's hashtag search returns posts globally; we then keep only the ones inside your window).
6. The final dataset is a flat list of `hashtagPost` records plus a single `summary` row.

**No login. No cookies. No browser sessions. No account ban risk.** The actor uses a managed data partnership for cookieless LinkedIn access — your LinkedIn account never touches this.

### FAQ

**Q: Why isn't there a dedicated LinkedIn hashtag scraper on Apify Store already?**
Hashtag scrapers exist for X/Twitter, Instagram, TikTok — but the vendors that crawl LinkedIn publicly haven't packaged a hashtag-specific tool. We built this on top of LinkedIn's public hashtag-search endpoint, with the dedup + filter + normalization layer that makes it actually useful for marketing teams.

**Q: How fresh is the data?**
Posts surface within minutes of being published on LinkedIn, just like they would for any logged-out browser visiting the hashtag search page.

**Q: Does `sortBy: top` always work?**
LinkedIn supports `top` for most hashtags. For very long-tail / low-volume hashtags it may fall back to recency. Either way, you get posts.

**Q: What's the max posts I can pull per hashtag in one run?**
1,000, capped at the vendor level. To go deeper, run the actor on a schedule (daily, hourly) and append.

**Q: Can I run multiple hashtag scrapes in parallel?**
Yes — kick off as many runs as you want on the Apify platform. Each one is billed independently per-record.

**Q: Why are some reaction breakdown fields missing?**
LinkedIn returns reaction breakdown only when a post has enough engagement to split it. Posts with single-digit reactions usually only get `reactionCount` populated, not per-type counts.

### Compliance & disclaimer

This actor scrapes **publicly accessible LinkedIn hashtag search results** — the same content any logged-out visitor sees by browsing `linkedin.com/feed/hashtag/...`.

- No private profile data, no gated content, no DMs, no anything-behind-login.
- LinkedIn user content is subject to LinkedIn's Terms of Use and applicable copyright laws.
- Customers are responsible for compliance with applicable data protection laws (GDPR, CCPA, etc.) when processing scraped data — particularly when post text contains personal information.
- **Not affiliated with, endorsed by, or sponsored by LinkedIn Corporation or Microsoft Corporation.** "LinkedIn" is a trademark of LinkedIn Corporation, used here solely for descriptive purposes.

# Actor input Schema

## `hashtags` (type: `array`):

List of hashtags to search for (with or without # prefix). Each hashtag triggers a separate search.

## `maxPostsPerHashtag` (type: `integer`):

Hard cap on posts returned per hashtag.

## `sortBy` (type: `string`):

Sort by most recent or top-performing posts (top sort may not be supported by all queries).

## `dateFrom` (type: `string`):

ISO date (YYYY-MM-DD). Only return posts published on or after this date.

## `dateTo` (type: `string`):

ISO date (YYYY-MM-DD). Only return posts published on or before this date.

## `languagesFilter` (type: `array`):

ISO 639-1 language codes (e.g. 'en', 'es', 'fr') to filter results. Empty = all languages.

## Actor input object example

```json
{
  "hashtags": [
    "ai",
    "generativeai"
  ],
  "maxPostsPerHashtag": 50,
  "sortBy": "recent",
  "languagesFilter": []
}
```

# 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 = {
    "hashtags": [
        "ai",
        "generativeai"
    ],
    "languagesFilter": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("linkedintel/linkedin-hashtag-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 = {
    "hashtags": [
        "ai",
        "generativeai",
    ],
    "languagesFilter": [],
}

# Run the Actor and wait for it to finish
run = client.actor("linkedintel/linkedin-hashtag-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 '{
  "hashtags": [
    "ai",
    "generativeai"
  ],
  "languagesFilter": []
}' |
apify call linkedintel/linkedin-hashtag-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "LinkedIn Hashtag Scraper · No Cookies · $1/1k ✅",
        "description": "Find LinkedIn posts by hashtag. Track competitor campaigns, viral trends, industry conversations. Recency + top-performing sort. No cookies, no login. $1/1k pay-per-post.",
        "version": "1.0",
        "x-build-id": "HAh8wbgwAmnfACtqm"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/linkedintel~linkedin-hashtag-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-linkedintel-linkedin-hashtag-scraper",
                "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/linkedintel~linkedin-hashtag-scraper/runs": {
            "post": {
                "operationId": "runs-sync-linkedintel-linkedin-hashtag-scraper",
                "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/linkedintel~linkedin-hashtag-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-linkedintel-linkedin-hashtag-scraper",
                "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": [
                    "hashtags"
                ],
                "properties": {
                    "hashtags": {
                        "title": "Hashtags",
                        "type": "array",
                        "description": "List of hashtags to search for (with or without # prefix). Each hashtag triggers a separate search.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxPostsPerHashtag": {
                        "title": "Max posts per hashtag",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Hard cap on posts returned per hashtag.",
                        "default": 50
                    },
                    "sortBy": {
                        "title": "Sort order",
                        "enum": [
                            "recent",
                            "top"
                        ],
                        "type": "string",
                        "description": "Sort by most recent or top-performing posts (top sort may not be supported by all queries).",
                        "default": "recent"
                    },
                    "dateFrom": {
                        "title": "Posted after (optional)",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "type": "string",
                        "description": "ISO date (YYYY-MM-DD). Only return posts published on or after this date."
                    },
                    "dateTo": {
                        "title": "Posted before (optional)",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "type": "string",
                        "description": "ISO date (YYYY-MM-DD). Only return posts published on or before this date."
                    },
                    "languagesFilter": {
                        "title": "Languages filter (optional)",
                        "type": "array",
                        "description": "ISO 639-1 language codes (e.g. 'en', 'es', 'fr') to filter results. Empty = all languages.",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
