Professional-job alerts and trackers
LinkedIn Jobs Scraper
Collect public LinkedIn jobs by role, location, and supported filters. Keep descriptions and original links in a consistent format for your app or workflow.
Runs on Apify. Sign in or create an Apify account to use the input form; no code is needed for the first run. Workflow connections require your own credentials.
When to use it
Build a daily alert for a client, keep a job board supplied with records, or track which employers are advertising roles in your market. Each record keeps the original link and source identity. This collects job postings; it is not a candidate-contact database.
- Search by keyword, location, recency, work arrangement, and supported LinkedIn-specific filters.
- Enable cross-run deduplication to skip postings previously returned for the same workflow. Keep a stable scope for that alert or tracker.
- Enable company data, AI enrichment, translation, raw descriptions, or analytics only when the downstream use requires them.
Try a five-job search
Open this tool on Apify ↗, sign in, and paste the example below into the Input JSON editor. Set a maximum run cost before starting.
Start with five rows, a specific location and time window, and optional paid or stateful features disabled. The run-level charge cap belongs in the Apify API or integration caller, not inside this JSON.
{
"schemaVersion": "nomad-agent-job-search-input-v1",
"keyword": "TypeScript developer",
"location": "Spain",
"postedWithin": "7d",
"workArrangements": ["remote", "hybrid"],
"maxItems": 5,
"translateToEnglish": false,
"aiEnrichment": { "enabled": false },
"includeRaw": false,
"dedupe": { "enabled": false },
"analyticsEnabled": false
}
What a small run costs
Base results cost $0.90 per 1,000 jobs: 100 base results cost $0.09 in Actor result charges. Five base results cost $0.0045. AI enrichment, translation, and applicable platform costs are additional.
Prices checked 6 September 2026. Check current Apify pricing and set a maximum run cost.
For developers: the job record
Each row uses exactly schemaVersion, identity, data, custom, llm, and raw at the root. Derive jobKey = source:externalId for destination upserts. A title, company name, or URL can change and is not stable identity.
Keep the canonical record when downstream logic needs nested requirements, hiring contacts, source provenance, raw descriptions, or the distinction between null and []. The 32-field flat projection is a destination convenience and deliberately loses nested detail.
Exact-run completion checklist
The current default build API returns the default build number and immutable build ID. Maintained integrations select latest. Record each run’s resolved numeric build number and immutable ID, then validate its summary and dataset before delivery.
- Select
latestand set a conservative item and maximum charge cap. - Retain the returned run ID and poll that exact run to a terminal status.
- Require
SUCCEEDED, the requested build, and a validnomad-agent-run-summary-v4from the same run’s key-value store. - Honor no more than one retry, and only when a usable
partialsummary explicitly recommends it. - Fetch the same run’s default dataset and require its complete row count to equal
RUN-SUMMARY.delivered. - Validate all six roots and
identity.source = linkedinbefore delivery.
Limitations and responsible use
LinkedIn can change markup, availability, or access controls, and a public page is not permission to republish it. Review LinkedIn’s applicable terms, privacy requirements, licensing, and local law. Do not infer missing facts, publish personal contact data without a lawful purpose, or treat a source omission as an explicitly empty field.
Job Atlas is independently developed and is not affiliated with or endorsed by LinkedIn.
Troubleshooting
- Zero rows: require a validated
emptysummary before calling the search clean; an invalid summary or blocked extraction is not “no matching jobs.” - Repeated rows: keep one stable opaque dedupe scope across scheduled calls, and still upsert by
jobKeyat the destination. - Missing descriptions: check the source record and selected raw/enrichment options; never manufacture evidence from the title.
- Wrong fields: confirm the requested build, exact input schema, and canonical dataset before changing a mapper.
Version and release evidence
Published by Job Atlas. Start with latest and retain the immutable build returned by your run. Job Atlas release evidence; earlier run IDs and numeric builds below are historical primary-organization evidence.