American Jobs Scraper — 6 Sources in One
Pricing
from $3.00 / 1,000 job results
American Jobs Scraper — 6 Sources in One
US job sources behind one endpoint: LinkedIn United States, AI Jobs, Built In, RemoteOK/Remotive/WeWorkRemotely/Himalayas, Hacker News Who Is Hiring and Y Combinator Work at a Startup. One merged, deduped dataset.
American Jobs Scraper - 6 Sources in One
One call for US-focused job data. This bundle fans out to 6 existing job-source Actors, merges their results, dedupes by URL, and returns one flat dataset of live American job postings.
Claude / Codex skill to describe and setup this actor: SKILL.md
This is an unofficial scraper bundle. It is not affiliated with LinkedIn, AI Jobs, Built In, RemoteOK, Remotive, WeWorkRemotely, Himalayas, Hacker News, Y Combinator, or any listed employer.
Sources included
| Source key | Coverage |
|---|---|
linkedin | LinkedIn jobs, default location: United States |
ai_jobs_net | AI, ML and data jobs with United States location |
builtin | US tech and startup jobs from Built In |
remote_boards | RemoteOK, Remotive, WeWorkRemotely and Himalayas |
hackernews | Hacker News Who Is Hiring |
ycombinator_was | Y Combinator Work at a Startup |
Company ATS Actors like Greenhouse, Lever, Ashby and Workable are not included because they require buyer-supplied company lists. Wellfound is also excluded because the current source Actor is not public/priced, so external bundle users cannot reliably call it.
How the bundle works
This is a bundle Actor. Every selected source is scraped inside this Actor's own run — no separate child-actor runs, no stacked fees. Each source's records are mapped onto one shared schema, deduped by URL, and pushed as one merged output. Each source fails open independently: if one board errors or times out, the other sources still return.
Use sources to run a cheaper subset, keyword to filter sources that support free-text search, and location to override the default United States text for LinkedIn and AI Jobs.
Input example
{"keyword": "software engineer","location": "United States","maxItemsPerSource": 10,"maxItems": 50}
Output fields
Each normal row uses the same flat bundle schema:
{"source": "linkedin","id": "123456","title": "Software Engineer","company": "Example Inc.","location": "United States","url": "https://example.com/job/123456","postedAt": "2026-07-07","deadline": "","description": "Complete posting body...","snippet": "Complete posting body...","salary": "","hiringContactName": null,"hiringContactTitle": null,"hiringContactUrl": null}
On linkedin rows the bundle also returns hiringContactName, hiringContactTitle and hiringContactUrl — the person LinkedIn names as the job poster, i.e. who to write to. LinkedIn names someone on roughly a quarter of postings; the fields are null on the rest and on every other source. They cost no extra requests and nothing is guessed.
Fields a source does not provide are returned as empty strings rather than guessed.
Python client
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("nomad-agent/american-jobs-bundle").call(run_input={"keyword": "engineer","maxItems": 50,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(len(items), items[:1])
cURL
curl -X POST \"https://api.apify.com/v2/acts/nomad-agent~american-jobs-bundle/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"keyword":"engineer","maxItems":50}'
Cost note
You pay only this bundle's pay-per-event pricing: one actor-start per run plus one result event per unique job delivered. All 6 sources are scraped in-process — there are no additional child-actor charges. Use sources, maxItemsPerSource and maxItems to control spend, and a "Maximum cost per run" limit is honored (the run stops delivering at the cap).
From the maker of Oink — an open-source, AI-powered job-search bot for Telegram that runs on these Actors. Try the free bot, get a managed instance at oinkjobsearch.com, or browse the full catalog of 50+ Actors.