# LinkedIn Post Search (`yugenox/linkedin-post-search`) Actor

Live keyword search of LinkedIn posts → structured JSON (author, headline, profile, post URL, hashtags, media, attached job + apply URL).

- **URL**: https://apify.com/yugenox/linkedin-post-search.md
- **Developed by:** [Yugenox Corp](https://apify.com/yugenox) (community)
- **Categories:** Jobs, Automation, Agents
- **Stats:** 8 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 posts

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## LinkedIn Post Search

**Turn any keyword into a live feed of LinkedIn posts — as clean, structured JSON.**

Search LinkedIn posts by keyword and instantly get ready-to-use data: who posted, their headline and profile, the post text and link, when it went up, hashtags, media — and when a post is a job opening, the role and a **direct apply link**. Fast, paginated, and exportable to JSON, CSV, or Excel.

### What you get for every post

| Field | Example |
|---|---|
| `author` | Glen Hopkinson |
| `profileUrl` | linkedin.com/in/glen-hopkinson-… |
| `text` | "We're hiring a Claims Advisor Trainee in our Toronto office…" |
| `postUrl` | direct link to the post |
| `postedAt` | 2026-06-26T12:18Z |
| `hashtags` | `#hiring` |
| `media` | image URL (when present) |
| `job` | `{ title, applyUrl }` — when the post is a hiring post |

### What you can do with it

- **Recruiters & sourcers** — find people actively posting "we're hiring," each with a direct apply link. Build a who's-hiring lead list in seconds.
- **Lead generation** — surface decision-makers posting about your space, and the buying signals that come with it.
- **Job seekers & job boards** — pull fresh hiring posts by keyword and city, every one with an apply link.
- **Sales & SDR teams** — catch trigger events (hiring, funding, launches) and reach out while they're hot.
- **Brand & competitor monitoring** — track who's talking about a company, product, or topic.
- **Content & trend research** — see what's being posted on any subject, newest first.

### How to use it

1. Paste your **LinkedIn cookie** (`li_at`). See below; it takes about 30 seconds.
2. Enter a **keyword** — e.g. `data engineer hiring toronto`.
3. Choose how many posts you want, and optional filters.
4. Get a clean dataset back — download it, plug it into Make / Zapier / n8n / your CRM, or pull it straight from the API.

#### Input

| Field | What it does |
|---|---|
| **sessionCookie** | Your LinkedIn `li_at` cookie (stored encrypted) |
| **keyword** | The terms to search for |
| **maxPosts** | How many posts to return (up to ~400 per search) |
| **onlyWithJob** | Return only hiring posts that include a job + apply link |
| **sortBy** | Relevance or most recent |

### How to get your cookie

LinkedIn only shows post search to logged-in members, so the actor searches as you.

1. Log in to **linkedin.com** in Chrome on a computer.
2. Press **F12** (or right-click → Inspect) → **Application** tab → **Cookies** → `https://www.linkedin.com`.
3. Find **`li_at`** and copy its **Value**. It's a long string that starts with `AQE…`.
4. Paste it into **Your LinkedIn cookie (li\_at)**.

A few things to know:

- **Your cookie is stored encrypted** as a secret input, and it's only used to run your searches.
- **It usually lasts months.** If LinkedIn logs you out, the run ends with a clear message and **no charge**. Just paste a fresh one.
- **Use a secondary LinkedIn account if you can,** and keep volumes reasonable. The default throttle is tuned to stay under LinkedIn's limits.

#### Output

A dataset of structured post records (fields above). Use it in a spreadsheet, your CRM, an automation, or your own app via the Apify API.

### Run it from your code

```
POST https://api.apify.com/v2/acts/<actor>/run-sync-get-dataset-items?token=YOUR_TOKEN
{ "sessionCookie": "AQE…your li_at…", "keyword": "data engineer hiring toronto", "maxPosts": 100, "onlyWithJob": true }
```

Returns the posts array right in the response.

### FAQ

**Is it legal to scrape LinkedIn posts?**
This Actor only collects publicly available data: posts that LinkedIn shows to any signed-in member in its public post search. Collecting publicly available data is generally legal, but you're responsible for how you use it. Results can include authors' names and public profile links, and that counts as personal data. You must follow privacy laws such as GDPR, PIPEDA and CCPA, as well as LinkedIn's terms. If you're unsure, check with a lawyer. More on this: [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

**Does it access any private data?**
No. It only reads what LinkedIn post search shows to any signed-in member, using your own session. It never opens private messages, connection lists, or anything your account couldn't already see in the LinkedIn app.

### Pricing

Pay only for the results you receive — no subscription. Try a small run first to see the data quality.

# Actor input Schema

## `sessionCookie` (type: `string`):

Your LinkedIn session cookie. Log in to linkedin.com in Chrome → F12 → Application → Cookies → https://www.linkedin.com → copy the value of "li\_at". Pasting the full cookie string also works. Stored encrypted; used only to run your searches. A secondary LinkedIn account is recommended.

## `keyword` (type: `string`):

Search terms, e.g. "data engineer hiring toronto".

## `maxPosts` (type: `integer`):

How many posts to return (LinkedIn caps a single search at ~400).

## `onlyWithJob` (type: `boolean`):

Return only hiring posts that carry a structured job (title + direct apply URL).

## `delayMs` (type: `integer`):

Delay between load-more calls. Higher = slower but safer on the account.

## Actor input object example

```json
{
  "keyword": "hiring toronto",
  "maxPosts": 50,
  "onlyWithJob": false,
  "delayMs": 700
}
```

# 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 = {
    "keyword": "hiring toronto"
};

// Run the Actor and wait for it to finish
const run = await client.actor("yugenox/linkedin-post-search").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 = { "keyword": "hiring toronto" }

# Run the Actor and wait for it to finish
run = client.actor("yugenox/linkedin-post-search").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 '{
  "keyword": "hiring toronto"
}' |
apify call yugenox/linkedin-post-search --silent --output-dataset

```

## MCP server setup

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

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/kQFyJX3bywnSXipKB/builds/kRGR5HMf4VJkCoMlW/openapi.json
