LinkedIn Hiring Posts Scraper π
Pricing
$2.50 / 1,000 results
LinkedIn Hiring Posts Scraper π
Find companies actively hiring from public LinkedIn posts π Extract recruiter names, hiring roles, companies, locations, post URLs, and fresh hiring intent data by keyword, industry, or location β no LinkedIn login or cookies required.
Pricing
$2.50 / 1,000 results
Rating
0.0
(0)
Developer
Hamza
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
3
Monthly active users
2 days ago
Last modified
Categories
Share
LinkedIn Hiring Posts Scraper
Find companies that are actively hiring right now β straight from public LinkedIn posts. Fresh hiring intent data, no LinkedIn login or cookies required.
This actor surfaces the companies whose recruiters, founders, or HR leaders are publishing hiring posts on LinkedIn. You get the company, the role being hired, who's posting, a hiring-intent score, and a direct link to the post β perfect for staffing firms, sales prospecting, recruiting, and outreach.
Why this is the highest-signal lead source on LinkedIn
People posting "we are hiring" on LinkedIn aren't thinking about growing. They're spending money right now. Every record this actor produces is a company that:
- Has open headcount and an active budget
- Has named the role they need
- Is broadcasting it publicly today (not three quarters ago)
That makes the dataset gold for: recruiting agencies pitching roles, staffing firms identifying ICP, HRTech founders running ABM, and account executives selling anything growth-related.
What you get back
Each row in the dataset is one LinkedIn hiring post:
{"postUrl": "https://www.linkedin.com/posts/technovaco_we-are-hiring-software-engineers-activity-1234567890","hiringCompany": "TechNova","recruiterName": "John Smith","hiringRole": "Software Engineer","postSnippet": "John Smith is hiring React developers for TechNova in Berlin...","hiringIntent": "Medium","hiringKeywordMatched": "we are hiring","jobRoleMatched": "Software Engineer","industryKeyword": "SaaS","locationKeyword": "Germany","postDate": "3 days ago","timestamp": "2026-05-23T12:00:00Z"}
The full field list:
| Field | What it is |
|---|---|
postUrl | Direct link to the LinkedIn post |
hiringCompany | The company doing the hiring (best-effort extraction) |
recruiterName | The post author (when the post is by a person, not a company page) |
hiringRole | The detected role being hired |
postSnippet | Raw snippet text from the result |
hiringIntent | High / Medium / Low urgency classification |
hiringKeywordMatched | Which hiring phrase from your input surfaced this post |
jobRoleMatched | The role bucket the query targeted |
industryKeyword | The industry filter used (if any) |
locationKeyword | The location filter used (if any) |
postDate | Human-readable "X days ago" hint when present |
timestamp | ISO 8601 scrape time |
Export to CSV, JSON, Excel, or pipe directly into HubSpot, Salesforce, Clay, Apollo, or any HTTP webhook.
Inputs
| Field | Type | What it does |
|---|---|---|
| Hiring Intent Phrases | array<string> | Hiring phrases to search for. Defaults to we are hiring, looking for, join our team. Add now hiring, urgently hiring, open position, job opening, hiring immediately. |
| Job Roles | array<string> | Specific roles to focus on (Software Engineer, AI Engineer, Marketing Manager, Sales Representative). Optional. |
| Industry / Tech Keywords | array<string> | Industry tags (SaaS, Fintech, Healthcare) or technologies (React, Python, AI). Optional. |
| Locations | array<string> | Country / region / city filters (United States, Berlin). Optional. |
| Maximum Posts | integer | Stop after collecting N unique posts. Default 100. |
| Search Language | string | Language hint. Default en. |
| Deduplicate Results | boolean | Drop duplicate post URLs across the run. Default true. |
The actor expands every combination of (industry Γ location) using the OR-grouped hiring-phrase and role buckets. So 2 industries Γ 2 locations = 4 internal searches, all deduplicated into one clean dataset.
Hiring-intent scoring
Each post gets one of three labels based on urgency cues in the title + snippet:
| Tier | Trigger words |
|---|---|
| High | urgently hiring, urgent, hiring immediately, immediate opening, asap, must hire |
| Medium | now hiring, we are hiring, we're hiring, open position, open role, job opening, join our team, new role |
| Low | looking for, seeking, recruiting for, on the lookout |
If nothing matches, hiringIntent is null. Use this field to triage: send your highest-priority outreach to High intent posts first.
Example use cases
Staffing agency prospecting β hiringKeywords: ["we are hiring", "urgently hiring"], jobRoles: ["Software Engineer", "AI Engineer"], locations: ["United States"]. Pull the list, filter hiringIntent = High, contact those companies tomorrow morning.
HRTech ABM list β hiringKeywords: ["we are hiring"], keywords: ["SaaS", "B2B"]. Build a growing-companies-only ICP list to invite to your webinar.
Job seekers β hiringKeywords: ["we are hiring", "looking for"], jobRoles: ["Frontend Developer", "React Developer"], locations: ["Berlin", "Amsterdam"]. See exactly which companies are hiring your stack in your city this week.
Sales prospecting β Companies posting hiring content are growing fast. Whatever you sell (analytics, payroll, devtools, infrastructure), they're spending money. Run this weekly to keep your pipeline fresh.
Investor / market intel β Track hiring intensity by industry vertical month over month. Spot companies scaling fast before press coverage catches up.
Tips that save you time and money
- Start with the urgent phrases.
urgently hiringandhiring immediatelyreturn fewer but much higher-quality leads. Stack them withwe are hiringfor broader coverage. - Add a role filter to cut noise. Searching just
we are hiringreturns mixed content β addingSoftware EngineerorAccount Executivereturns just the posts hiring for that role. - Locations are loose. They match as phrases anywhere in the post, so you'll see some noise. Run per-country for clean segmentation.
- Sort by
hiringIntentin your CSV. TriageHigh β Medium β Lowso cold outreach goes to the hottest leads first. - Watch
postDate. Posts from "2 weeks ago" or older are less urgent than posts from "today" β many hiring needs are filled fast.
Pricing β pay only for what you extract
This actor uses Apify's pay-per-event pricing. You're billed per post delivered to your dataset, plus a one-time start fee. No charge if a run returns zero results.
| Apify Plan | Start Fee | Per Profile |
|---|---|---|
| Free / Bronze | $0.0025 | $0.0025 |
| Silver | $0.0025 | ~$0.0022 |
| Gold | $0.0025 | ~$0.0020 |
| Platinum | $0.0025 | ~$0.0018 |
| Diamond | $0.0025 | ~$0.0015 |
Real-world cost examples:
- 25 posts for a test run: about $0.06
- 250 hiring posts across the US & Canada: about $0.63
- 2,000 posts across 10 industries: about $5.00
The Free Apify plan ships with $5/month of credit β plenty for several real lead lists.
Frequently asked
Do I need a LinkedIn account or Sales Navigator? No. The actor never logs into LinkedIn, never asks for cookies, and never touches your account. It only returns posts that are publicly accessible.
Will this get me LinkedIn-banned? No. There's no account activity for LinkedIn to flag.
How fresh is the data?
You're seeing posts as soon as they're indexed publicly. The postDate field gives you a relative timestamp (when present) so you can prioritize the most recent.
How accurate is the hiringCompany field?
Very accurate when the post is by a company page (Acme Corp on LinkedIn: β¦) or contains an explicit at <Company> mention. Less accurate when an individual recruiter posts vaguely about hiring without naming the employer β in those cases the field may be null and you'll have to consult postSnippet.
How accurate is the hiringRole field?
Catalogue-based matching against ~50 common roles plus your custom jobRoles list, with a regex fallback for hiring <Role> patterns. If you supply explicit roles in jobRoles, they take priority β so the field will surface "Senior React Engineer" instead of just "Engineer" when you asked for it.
Will I get duplicates if I run it twice?
Within a single run, no β dedup is on by default. Across runs, yes β track previously seen postUrl values in your own pipeline.
Can I schedule this? Yes, and you probably should. Apify Schedules let you run it daily or weekly to catch fresh hiring posts in your target industry. Combine with a webhook to push new rows into HubSpot, Salesforce, Notion, or Google Sheets.
The actor returned 0 results β what's wrong?
(1) Make sure your hiring phrases are common public ones β we are hiring returns far more than currently seeking outstanding candidates forβ¦. (2) Try removing the Locations filter to see if you're over-narrowing. (3) Add more role / industry combinations.
A note on responsible use
This actor extracts public posts and the metadata around them. It does not bypass authentication, log into accounts, scrape private content, or pull anything beyond what any anonymous visitor could see.
That said: outreach based on hiring intent is still cold outreach. Don't pretend to be applying for the job, don't blast template messages, and respect GDPR / CCPA / similar regulations in your jurisdiction. The companies in your dataset are humans dealing with hiring β treat them that way and your reply rates will be much higher.
Drop it into your workflow
- Apify Schedules β run it daily or weekly to catch fresh hiring signals
- Zapier / Make β push new rows into HubSpot, Salesforce, Notion, Slack
- Apify Webhook β POST results to your server for custom routing
- Pair with an email-finder β use
recruiterName + hiringCompanyto resolve email addresses in Clay, Apollo, or Hunter - Pair with a LinkedIn Profile Scraper β enrich the
recruiterNamefield with full job history
Run it once with a small maxResults to see what you get. The first 25 posts are usually cheap enough to taste-test before committing.