A one-time pull of LinkedIn job postings tells you who's hiring right now. It doesn't tell you when a target account opens a new role tomorrow. For that you need a bot, not a report — something that checks on a schedule and only bothers you when there's something new to see.
This is different from pulling job data once for a list of companies, which an earlier post already covers. That's a snapshot. This is the alert layer on top of it.
What actually triggers an alert?
A LinkedIn job posting isn't announced anywhere outside LinkedIn itself — there's no webhook, no push notification you can subscribe to. The only way to know a posting is new is to have already seen everything that existed before it.
That means an alert bot is really two pieces: a poll that runs on a schedule, and a diff that compares this run's results against every job ID you've already alerted on.
How do you set up the recurring poll?
LinkedIn Jobs takes jobTitles (required),
locations, company (an array, up to 10 companies per run), and a
postedLimit filter with real options of 1h, 24h, week, or month.
Set postedLimit to 24h and sortBy to date, and run it once a day —
each run only returns postings from the last 24 hours, so you're not
re-fetching the same 200 jobs every time just to find the two new ones.
curl -X POST "https://api.mindcase.co/v1/data/linkedin/jobs/run?wait=true" \
-H "Authorization: Bearer $MINDCASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"params": {
"jobTitles": "senior software engineer",
"company": ["Stripe", "Notion", "Linear"],
"postedLimit": "24h",
"sortBy": "date",
"maxResults": 50
}
}'
# $0.001 per job returnedWire that call to whatever scheduler you already use — a cron job, a GitHub Action, an n8n or Zapier trigger. Mindcase doesn't run the schedule for you; it just answers the question each time you ask it.
How do you avoid alerting on the same job twice?
postedLimit: "24h" narrows the window, but it doesn't guarantee zero
overlap — a job posted at 11pm might show up in two consecutive daily
runs depending on exactly when each one fires. The fix is a dedupe step on
your side, not LinkedIn's.
Every row returned includes a real jobId field. Keep a running list of
every jobId you've already alerted on — a text file, a database table,
a Redis set, whatever fits your stack — and only send a notification for
IDs that aren't in it yet. After alerting, add the new IDs to the list.
That's the entire mechanism: no job reaches you twice, and nothing
requires LinkedIn to tell you anything it doesn't already return.
How do you cut down on low-signal alerts?
A bare title search on something like "engineer" returns a wide net —
every seniority level, every workplace type, every posting whether it's
been live an hour or gone stale with 200 applicants. jobTitles and
postedLimit narrow the when; a few other real filters narrow the
quality.
experienceLevel (entry, mid-senior, director, executive, and
others) filters to the seniority band you actually care about, and
under10Applicants — a real boolean field — flags postings that haven't
already been flooded, which is closer to "a hiring manager will actually
see your response" than raw posting age is. Stack those with company
and postedLimit in the same call, and the alert you get is already
close to a shortlist instead of a firehose you filter by hand afterward.
What can't you get from Mindcase?
Two cases.
A true push notification. There's no webhook or subscription — you are always the one polling. The closest you get to "real-time" is polling often enough that the delay between a posting going live and your next run feels real-time to you.
A guarantee that postedLimit is exact to the minute. It's LinkedIn's
own stated posting-age filter, not a Mindcase-side timestamp comparison —
treat it as "recent," and let your own jobId dedupe be the thing that
actually decides whether an alert fires, not the filter alone.
Which endpoint should you use for which job?
| Endpoint | Input | Price | Best for |
|---|---|---|---|
| LinkedIn Jobs | Job title + filters (company, location, postedLimit) | $0.001 / job | Recurring alert bot on new postings |
| Naukri Jobs | Keyword + filters | Real-time, India-specific hiring signals | Same pattern, India job market |
| Indeed Jobs | Keyword + location | Global job board coverage | Same pattern, broader board coverage |
FAQ
No. LinkedIn Jobs runs against public job postings — no login, no session, no LinkedIn account required.
The company filter accepts up to 10 per run. For more, split your company list across multiple calls with the same postedLimit and sortBy settings, and merge the dedupe list across all of them.
You'll still catch anything posted within the last 24 hours of whenever you next run it, since postedLimit is relative to the call time, not a fixed clock. Anything posted more than 24 hours before your next run won't show up in that window, but the jobId dedupe means nothing you do catch gets alerted twice.
A batch pull answers who's hiring right now, once. This bot answers who just started hiring, continuously — same endpoint, different cadence and a dedupe step on top.
