# LinkedIn Company Posts Monitor: New Posts, No Login (`tenfoldfleet/linkedin-company-posts-monitor`) Actor

Get the latest posts from LinkedIn company pages and only the new ones since your last run: post text, date, URL, author, reposts, reactions, comments, images and video. Watch competitors on a schedule, no login or cookies. $2 per 1,000 posts; failed companies are free.

- **URL**: https://apify.com/tenfoldfleet/linkedin-company-posts-monitor.md
- **Developed by:** [Tenfold Fleet](https://apify.com/tenfoldfleet) (community)
- **Categories:** Social media, Lead generation, Agents
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 posts

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/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

Not affiliated with LinkedIn. This Actor reads only what LinkedIn shows to anyone who opens a company page without signing in.

### What does LinkedIn Company Posts Monitor do?

**LinkedIn Company Posts Monitor** checks public LinkedIn company pages and returns their **latest posts**, and on later runs **only the posts you have not seen yet**. Give it a list of company slugs or URLs, put it on a schedule, and every run hands you a clean feed of what those companies just published: post text, date, link, author, reposts, reaction and comment counts, images and video.

It works like a small **LinkedIn company posts API**: no LinkedIn account, no cookies, no browser. Call it from the Apify API, a schedule, Make, Zapier, n8n or an AI agent over MCP.

**Important limit:** LinkedIn shows about the **10 most recent posts** on a company page to logged-out visitors. This Actor has **no history beyond those ~10 posts**. To build a full archive, start monitoring now and run it on a schedule (daily is enough for most companies).

### Why use it?

- **Competitor watch:** see every product launch, price change or hiring push your rivals announce, the day it goes up.
- **Sales triggers:** spot funding news, new offices and partnerships at target accounts and reach out while it is fresh.
- **Brand and PR tracking:** follow partners, clients or your own pages and log what was posted and how it performed.
- **Content research:** compare which post formats (video, image, article, text) get the most reactions in your niche.
- **Feeds for AI agents and dashboards:** pipe new posts into Slack, a spreadsheet, a CRM or an LLM summary.

### What data can it extract?

| Field | Example |
|---|---|
| `companyName`, `companySlug`, `companyUrl`, `companyFollowers` | Stripe, stripe, 1,795,615 |
| `postId`, `postUrl` | 7521655526498414592, link to the post |
| `postedAt`, `postedAgo` | 2026-10-29T19:33:43.118Z, 5h |
| `text`, `headline`, `textTruncated` | full post text where LinkedIn provides it |
| `isRepost`, `originalPostUrl`, `authorName`, `authorUrl`, `authorHeadline` | true, Brad Smith |
| `reactions`, `comments` | 160, 6 |
| `mediaType`, `images`, `videoUrl`, `videoPoster`, `linkUrl` | video, image URLs, article link |
| `isNew`, `scrapedAt` | true, run time |

### How to monitor LinkedIn company posts

1. Open the Actor and add companies to **Companies**: a slug like `stripe` or the page URL (linkedin.com/company/stripe).
2. Keep **Only new posts** on to receive just the posts that appeared since your previous run.
3. Click **Start**. The first run returns the current ~10 posts per company.
4. Add a **Schedule** (for example daily) in Apify Console. Each later run returns only new posts.
5. Download the results or connect an integration (Slack, Google Sheets, webhooks).

### How much does it cost?

You pay **$2 per 1,000 posts** returned ($0.002 per post), plus a tiny start fee of $0.00005 per run. Companies that are not found, are blocked, show no public feed, or have **no new posts are free**. Watching 50 companies daily that each post once a day costs about $3 a month. On the Apify free plan your monthly free credit covers roughly 2,500 posts.

### Input

```json
{
    "companies": ["microsoft", "stripe", "shopify"],
    "onlyNew": true,
    "maxPostsPerCompany": 10
}
```

- `companies`: slugs or company, showcase or school page URLs.
- `onlyNew` (default `true`): post IDs already returned are remembered per company in a named key-value store (`linkedin-company-posts-seen`) in your Apify account. Set it to `false` to get every visible post each time.
- `maxPostsPerCompany` (default 10, max 10): the newest posts to return per company.

### Output

```json
{
    "company": "stripe",
    "companyName": "Stripe",
    "companyFollowers": 1795615,
    "postId": "7521655526498414592",
    "postedAt": "2026-10-29T19:33:43.118Z",
    "postedAgo": "5h",
    "isRepost": false,
    "authorName": "Stripe",
    "text": "OpenAI's CEO, Sam Altman, joins John Collison to discuss ...",
    "reactions": 160,
    "comments": 6,
    "mediaType": "video",
    "isNew": true
}
```

A company that fails comes back as a free item such as `{"company": "acme-xyz", "error": "Company page not found (404). ..."}`. Download the dataset as JSON, CSV, Excel, XML or HTML, or read it through the Apify API.

### Tips

- Use the slug exactly as it appears in the company URL; display names do not work.
- Some companies hide their feed from logged-out visitors. Those come back as a free error item.
- Reposts are included and marked with `isRepost: true`, so you can filter to a company's own posts.
- Reaction and comment counts are a snapshot at run time. Run with `onlyNew: false` if you want to re-check engagement on the same posts.
- For a fresh start (return everything again), delete the `linkedin-company-posts-seen` key-value store in Apify Console or set `onlyNew` to `false`.

### FAQ

#### Can I get older posts or a company's full post history?

No. A logged-out company page lists about 10 recent posts and this Actor reads only that page. There is no history beyond those posts. Run it on a schedule to collect posts from now on.

#### Do I need a LinkedIn account or cookies?

No. It requests the public company page only, without signing in.

#### Why is some post text cut short?

For reposts and some other cards LinkedIn shows a shortened preview to logged-out visitors. Those items have `textTruncated: true`; `postUrl` opens the full post.

#### How fresh is the data?

Posts usually show up on the public page within minutes of being published, so a daily or hourly schedule catches nearly everything.

#### Is it legal?

It collects publicly visible company posts. Company posts can mention or show people; if you store personal data, you are responsible for handling it under GDPR and similar laws. Consult a lawyer if unsure.

### Disclaimer

LinkedIn is a trademark of LinkedIn Corporation. This Actor is an independent tool, not endorsed by or connected to LinkedIn. Results depend on what LinkedIn shows publicly and may change if the site changes.

# Actor input Schema

## `companies` (type: `array`):

LinkedIn company pages to watch: the slug from the URL (stripe) or the full page URL (linkedin.com/company/stripe). Showcase and school pages work too. Each page shows about 10 recent posts. On the free Apify plan a run is limited by your monthly credit, so keep lists modest.

## `onlyNew` (type: `boolean`):

Return only posts not returned by an earlier run (post IDs are remembered per company in a named key-value store in your account). Turn off to get every post on the page each time.

## `maxPostsPerCompany` (type: `integer`):

Newest posts to return per company. LinkedIn shows at most about 10 recent posts to logged-out visitors, so values above 10 have no effect.

## `proxyConfiguration` (type: `object`):

Apify datacenter proxy is used by default and works for most pages. Switch to residential only if many companies come back blocked.

## Actor input object example

```json
{
  "companies": [
    "microsoft",
    "google",
    "amazon",
    "linkedin"
  ],
  "onlyNew": true,
  "maxPostsPerCompany": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "companies": [
        "microsoft",
        "google",
        "amazon",
        "linkedin"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("tenfoldfleet/linkedin-company-posts-monitor").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 = { "companies": [
        "microsoft",
        "google",
        "amazon",
        "linkedin",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("tenfoldfleet/linkedin-company-posts-monitor").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 '{
  "companies": [
    "microsoft",
    "google",
    "amazon",
    "linkedin"
  ]
}' |
apify call tenfoldfleet/linkedin-company-posts-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,tenfoldfleet/linkedin-company-posts-monitor"
        }
    }
}
```

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/jdRljj43GdkSQRt3O/builds/4jg0dgEBAiF5oIOpo/openapi.json
