LinkedIn Company Posts Scraper
Pricing
from $0.80 / 1,000 post collecteds
LinkedIn Company Posts Scraper
LinkedIn Company Posts Scraper extracts public feed updates, post text, images, videos, article links, and social reactions from any LinkedIn company page. Export post text, media links, and engagement metrics into clean Excel, CSV, or JSON tables for research and content tracking.
Pricing
from $0.80 / 1,000 post collecteds
Rating
0.0
(0)
Developer
Crawlix
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
The LinkedIn Company Posts Scraper extracts public feed updates, post text, media assets, article links, and social engagement numbers from any organization on LinkedIn. Provide company URLs or usernames, specify how many posts you need, and every update lands in your dataset as one clean, structured row: company name, post URL, publication date, text, images, videos, article previews, likes, and reposts.
Use it as an automated content monitoring pipeline, a competitor intelligence engine, or a reliable way to scrape LinkedIn company posts directly into Excel, CSV, or JSON tables for research and social analytics.
Overview & Core Capabilities: LinkedIn Company Posts Scraper
The LinkedIn Company Posts Scraper is built for one dedicated job: turning LinkedIn company pages into detailed, tabular datasets of their published updates. Instead of manually scrolling organization feeds, copying text, saving links, and recording engagement numbers, this tool automates the entire collection process across single or multiple organizations in a single run.
What This LinkedIn Company Posts Scraper Extracts:
- Direct Update Access: Canonical post URLs, unique activity IDs, and direct links to view the update on LinkedIn.
- Publishing Metadata: Publication timestamps in ISO UTC format and human-readable relative time markers (e.g.
3d,1w). - Complete Post Content: Full post text and captions, formatting, mentions, and announced corporate developments.
- Topic & Entity Intelligence: Extracted
#hashtags, tagged@mentions, and embedded destinationexternal_links. - Rich Media Assets: Direct high-resolution image links, embedded video stream URLs, and media format tags (
image,video,article,document,poll,none). - Shared Articles & Documents: External article cards with titles and host domains, plus PDF presentation decks with slide counts.
- Polls & Repost Insights: Community poll question prompts, choices, and vote totals, plus original author metadata on reshared updates.
- Social Engagement Metrics: Live counts for public likes/reactions, comments count, reposts, and total unified reactions count.
- Source Identification: Publisher company name, official company page link, numeric company ID, and the exact input that produced the row.
Every post is saved individually the moment it is collected, so your results are preserved even if a run is cut short or hits your budget limit. Whether you run the LinkedIn Company Posts Scraper once for competitor analysis or schedule it weekly for market intelligence, the output keeps a consistent schema that integrates smoothly with your existing spreadsheets, dashboards, and databases.
Practical Use Cases & Applications
Marketing agencies, brand strategists, data engineers, and market researchers rely on the LinkedIn Company Posts Scraper across numerous core applications:
- Competitor Content & Campaign Tracking: Run the LinkedIn Company Posts Scraper weekly on industry rivals to analyze post frequencies, content themes, campaign launches, and audience reception.
- Engagement & Viral Post Benchmarking: Analyze thousands of updates across top industry leaders using the LinkedIn Company Posts Scraper to uncover which topics, formats (video vs image), and headlines drive the highest reaction and engagement counts.
- Product Announcement & PR Monitoring: Track brand positioning shifts, newly released features, and executive communications across target accounts.
- Influencer & Brand Partnership Intelligence: Identify which external authors, articles, and brands are frequently cited and shared by prominent corporate profiles.
- AI Model Training & Sentiment Analysis: Feed clean corporate communication records into language models to study industry-specific tone, terminology, and engagement drivers.
- B2B Prospect Research: Review an account's recent posts before outreach calls to identify current corporate priorities and pain points.
Each use case starts the same way: enter your target company links or handles, set your post target, and let the LinkedIn Company Posts Scraper do the collecting.
Target Audiences & Engineering Teams
The LinkedIn Company Posts Scraper is built to empower both technical and non-technical teams:
- Social Media & Content Strategists: Discover high-performing content formats and optimize post timing based on real historical data.
- Sales Intelligence & Account Executives: Review prospect news and announcements before high-value enterprise sales meetings.
- Data Engineers & Analytics Teams: Stream structured feed data directly into analytical warehouses like BigQuery, Snowflake, and PostgreSQL.
- Market Researchers & Brand Analysts: Track cross-industry trends and aggregate corporate communications across hundreds of global brands.
Key Architectural Advantages & Reliability
| Operational Feature | LinkedIn Company Posts Scraper | Manual Data Entry | Browser Extension Tools |
|---|---|---|---|
| Data Structure | Flat 1-row-per-post JSON / CSV | Inconsistent and messy | Incomplete field coverage |
| Paging Capability | Automatic continuous feed retrieval | Slow manual scrolling | Halts after 2–3 updates |
| Media Extraction | Direct high-res image & video links | Laborious manual downloads | Often misses video assets |
| Engagement Numbers | Exact likes, reactions, and shares | Prone to human errors | Frequently inaccurate |
| State Resilience | Auto-resumes after container migration | N/A | Crashes on interruptions |
| Export Formats | Excel, CSV, JSON, XML, HTML | Manual formatting | Limited export options |
Quickstart: Step-by-Step Execution Guide
Running the LinkedIn Company Posts Scraper takes only a few quick steps:
- Provide Company Targets: In the input form, enter one or more LinkedIn company links (e.g.,
https://www.linkedin.com/company/google) or plain handles (e.g.,microsoft). - Set Post Target: Choose how many recent posts to collect per company (defaults to
10posts per company, maximum 80). - Start the Run: Click Start. The actor verifies the input, loads the company feed, and streams each post row directly into the default dataset.
- Export Your Dataset: Visit the Output tab to download your results in Excel, CSV, JSON, or XML.
Free Plan Limit: A free Apify account collects up to 50 posts in total per run across all requested companies. A paid Apify plan has no volume limits.
Input Parameters & Configuration Reference
The LinkedIn Company Posts Scraper accepts the following parameters:
| Parameter Name | Data Type | Default | Description |
|---|---|---|---|
company_urls | Array | ["https://www.linkedin.com/company/google"] | Full public LinkedIn company page URLs. Accepts standard links, links with tabs (e.g. /posts), and URLs with tracking parameters. |
usernames | Array | ["microsoft"] | Company usernames or slugs (the text following /company/ in the URL). One per line. Works identically to full links. |
max_posts | Integer | 10 | Maximum number of unique posts to collect for each company (maximum 80, as LinkedIn guest mode delivers up to ~70–80 recent posts per company). The run ends cleanly when no more posts are available. |
proxyCountry | Select | "US" | Regional connection exit country for web requests. Choose from 158+ supported worldwide countries. |
Extracted Dataset Schema & Field Definitions
Every collected update produces one row in the dataset. Headline fields are bolded below:
| Field Name | Type | Description |
|---|---|---|
number | Integer | Chronological sequence position of the post within the run. |
company_name | String | Official public trade name of the company that published the post. |
company_id | String | Unique numeric identifier of the organization on LinkedIn. |
company_username | String | Unique company slug or handle. |
company_url | String | Canonical link to the publisher's company page on LinkedIn. |
company_input | String | The exact input link or username entered by the user that generated this result. |
post_id | String | Unique numerical activity identifier of the post. |
post_urn | String | Canonical activity URN (e.g. urn:li:activity:7185038481234567890). |
post_url | String | Direct permanent link to the post on LinkedIn. |
posted_date | String | Publication date written in ISO 8601 UTC format if available. |
posted_time_ago | String | Relative timestamp displayed on the post (e.g. 3d, 1w, 2mo). |
text | String | Full text body and caption of the post. |
hashtags | Array | List of topic hashtags extracted from the post caption. |
mentions | Array | Tagged people and company handles mentioned in the post body. |
external_links | Array | Destination URLs and links embedded inside the post body. |
media_type | String | Classification of attached media (image, video, article, document, poll, or none). |
media_urls | Array | Direct URLs to high-resolution images or video stream assets. |
article_url | String | Destination link if an external article or blog was shared. |
article_title | String | Title headline of the shared external article. |
article_domain | String | Publisher or domain host of the shared external article. |
document_title | String | Title headline of attached PDF/presentation carousel document. |
document_pages | Integer | Number of slides or pages in the attached PDF carousel document. |
is_poll | Boolean | True if this post is an interactive community poll. |
poll_question | String | The poll question prompt if this post is a poll. |
poll_options | Array | List of selectable answer choices in the poll. |
poll_total_votes | Integer | Total count of community votes cast on the poll. |
is_repost | Boolean | True if this post is a reshared update from another account. |
reshared_author | String | Original author or company name if this update is a reshare. |
reshared_post_url | String | Link to the original update that was reshared. |
likes_count | Integer | Total count of public likes and social reactions. |
comments_count | Integer | Total count number of public comments on the post. |
reposts_count | Integer | Total count of public shares and reposts. |
total_reactions_count | Integer | Unified total of all public social actions (likes + comments + reposts). |
scraped_at | String | UTC timestamp when this post was collected. |
Sample Dataset Record (JSON)
{"number": 1,"company_name": "Google","company_id": "1441","company_username": "google","company_url": "https://www.linkedin.com/company/google","company_input": "https://www.linkedin.com/company/google","post_id": "7185038481234567890","post_urn": "urn:li:activity:7185038481234567890","post_url": "https://www.linkedin.com/feed/update/urn:li:activity:7185038481234567890","posted_date": "2026-04-12T14:30:00Z","posted_time_ago": "3d","text": "Excited to share our newest developments in scalable computing architecture and cloud infrastructure. Check details at https://cloud.google.com/blog/ai-future #AI #Cloud","hashtags": ["#AI","#Cloud"],"mentions": ["@GoogleCloud"],"external_links": ["https://cloud.google.com/blog/ai-future"],"media_type": "image","media_urls": ["https://media.licdn.com/dms/image/v2/D4E22AQH/feedshare-shrink_800/media.jpg"],"article_url": "https://blog.google/technology/ai/","article_title": "Advancing Frontier AI Systems","article_domain": "blog.google","document_title": null,"document_pages": null,"is_poll": false,"poll_question": null,"poll_options": [],"poll_total_votes": null,"is_repost": false,"reshared_author": null,"reshared_post_url": null,"likes_count": 1420,"comments_count": 87,"reposts_count": 45,"total_reactions_count": 1552,"scraped_at": "2026-10-16T10:15:30Z"}
Operational Constraints & Platform Limits
- Public Feeds Only: The LinkedIn Company Posts Scraper accesses strictly public corporate posts. Private groups, personal profile posts, and restricted internal content are not collected.
- Post Volume Limit (Max 80 Posts per Company): LinkedIn's public guest architecture serves up to ~70–80 of the most recent corporate posts per company without login credentials. To protect performance and prevent unnecessary network calls, the actor caps input at 80 posts per company and cleanly exits the moment the feed ends with zero warnings or errors.
- Missing Field Policy: If an update does not include media assets or external article links, those fields return
nullor empty arrays. The scraper never invents data. - Media Link Lifespans: Direct image and video URLs point to platform-hosted content delivery networks. These external links may rotate over time per the source network's policies.
- Account Limits: Free Apify tiers can collect up to 50 posts in total per run. Upgrading to a paid Apify plan removes this ceiling.
Best Practices & Performance Optimization
- Run in Batches: When scraping posts across large lists with the LinkedIn Company Posts Scraper, group companies into sets of 10 to 30 organizations for structured review.
- Target Appropriate Depths: Requesting 20 to 80 posts per company gives an accurate representation of recent strategy while keeping run durations fast and efficient.
- Schedule Automated Monitoring: Schedule the LinkedIn Company Posts Scraper to run weekly on Apify Console to automatically collect fresh corporate posts and build longitudinal engagement benchmarks.
Troubleshooting & Frequently Asked Questions
What is the maximum number of posts I can scrape per company?
You can scrape up to 80 recent posts per company. LinkedIn's public guest infrastructure exposes approximately 70–76 recent posts for any organization without requiring user logins. Once the available recent posts are collected, the actor exits pagination cleanly, saves all collected records, and moves directly to the next company.
Does the LinkedIn Company Posts Scraper require login credentials?
No. The LinkedIn Company Posts Scraper operates entirely on public web data and does not require you to connect cookies, personal accounts, or login details (100% ban-free and zero account risk).
What happens if a company has fewer posts than requested?
If an organization has only published 4 updates in total and you asked for 80, the scraper collects all 4 available posts, reports that no further updates exist, and proceeds cleanly to the next company.
Can I enter company page links with /posts or sub-tabs?
Yes. The scraper automatically normalizes any company URL, strips sub-tabs, and accesses the feed directly.
Is there a post limit on a free Apify plan?
Yes. Free accounts can collect up to 50 posts in total per run. Upgrading to any paid Apify plan enables unlimited post collection.
Does the free limit apply per day or per run?
The limit applies per individual run. It is not a daily or lifetime restriction.
What should I do if the log says "Free user detected" but I am on a paid plan?
Open an issue in the Issues tab on the actor console with your Apify plan name and the Run ID, and our team will resolve it quickly.
Does this actor scrape individual comment replies or comment threads?
No. The LinkedIn Company Posts Scraper collects the total count of public comments (comments_count) and social engagement metrics for each post. It extracts public post feeds and does not scrape individual member comments or nested reply threads.
Code Integration: Python, JavaScript & REST API
Run the LinkedIn Company Posts Scraper programmatically via official client libraries:
Python (apify-client)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_API_TOKEN")run_input = {"company_urls": [{"url": "https://www.linkedin.com/company/google"}],"usernames": ["microsoft"],"max_posts": 20,"proxyCountry": "US"}run = client.actor("linkedin-company-posts-scraper").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"[{item.get('company_name')}] {item.get('post_url')} | Likes: {item.get('likes_count')}")
JavaScript / Node.js (apify-client)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: 'YOUR_APIFY_API_TOKEN',});const runInput = {company_urls: [{ url: 'https://www.linkedin.com/company/google' }],usernames: ['microsoft'],max_posts: 20,proxyCountry: 'US'};const run = await client.actor('linkedin-company-posts-scraper').call(runInput);const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((post) => {console.log(`${post.company_name}: ${post.post_url} - ${post.text.slice(0, 50)}...`);});
Direct REST API (cURL)
curl --request POST \--url "https://api.apify.com/v2/acts/linkedin-company-posts-scraper/runs?token=YOUR_APIFY_API_TOKEN" \--header "Content-Type: application/json" \--data '{"company_urls": [{"url": "https://www.linkedin.com/company/google"}],"usernames": ["microsoft"],"max_posts": 20}'
Technical Architecture Glossary
| Term | Definition |
|---|---|
| Actor Run | A single execution of the LinkedIn Company Posts Scraper initialized via web UI, API, or automated schedule. |
| Default Dataset | The storage container generated automatically for each run, accessible in JSON, CSV, Excel, and XML formats. |
| Post Row | A discrete record representing one public LinkedIn feed update with attached metadata and metrics. |
| Item Limit | The maximum total posts a free account may collect during one execution (50 posts). |
| Activity URN | The permanent, unique resource identifier assigned by LinkedIn to each feed post. |
Complementary Scrapers in the Ecosystem
Combine data from the LinkedIn Company Posts Scraper with our complementary actors:
- LinkedIn Company Scraper: Extract complete organization profiles, employee scale, website, office locations, and affiliated pages.
- Meta Ad Scraper: Collect running ads, creative assets, spend disclosures, and audience impressions across Facebook and Instagram advertisers.
- Meta Ad Search Actor: Search the public Meta Ad Library by brand keyword or niche to identify active advertisers worldwide.
Support & Feedback Channels
If you encounter unexpected errors, missing fields, or have feature requests for the LinkedIn Company Posts Scraper:
- Navigate to the Issues tab on this actor's console page.
- Create a new ticket with your Run ID, your target input companies, and a brief summary of the issue.
- Our team monitors issues actively to ensure seamless operation across all public company feeds.