Working Nomads Remote Jobs Scraper avatar

Working Nomads Remote Jobs Scraper

Pricing

from $6.15 / 1,000 results

Go to Apify Store
Working Nomads Remote Jobs Scraper

Working Nomads Remote Jobs Scraper

Scrape remote job listings from Working Nomads worldwide. Extract job title, company, category, skill tags, location, posted date and full description. Filter by category, tag or keyword. Export to JSON, CSV or Excel. No login or API key needed.

Pricing

from $6.15 / 1,000 results

Rating

5.0

(2)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

a day ago

Last modified

Share

Working Nomads Remote Jobs Scraper

Working Nomads Remote Jobs Scraper

Here is one real result, with every field the actor returns (the description is trimmed here for readability; the actor returns the full text):

{
"imageUrl": null,
"title": "Senior Python Developer (FastAPI)",
"url": "https://talent.proxify.io/apply?utm_source=workingnomads&utm_medium=job_posting&utm_campaign=senior_python_fastapi",
"applyUrl": "https://talent.proxify.io/apply?utm_source=workingnomads&utm_medium=job_posting&utm_campaign=senior_python_fastapi",
"companyName": "Proxify",
"category": "Development",
"location": "CET (+/- 3 hours)",
"remote": true,
"tags": ["fastapi", "python", "postgresql", "aws", "graphql"],
"source": "Working Nomads",
"postedAt": "2026-08-05T18:36:36.000Z",
"seniority": "Senior",
"employmentType": "Full-time",
"salaryMin": null,
"salaryMax": null,
"salaryCurrency": null,
"salaryPeriod": null,
"salaryText": null,
"description": "About us:\n \nTalent has no borders. Proxify's mission is to connect top developers around the world with opportunities they deserve. So, it doesn't matter where you are; we are here to help you fast-track your independent career in the right direction.\nSince our launch, Proxify's developers have successfully worked with 1200+ happy clien…",
"observedAt": "2026-08-10T14:18:21.355Z",
"error": null
}

The most complete Working Nomads scraper available. It returns every field the Working Nomads remote-jobs feed exposes for each listing, plus derived fields (seniority, employmentType, parsed salary, clean canonical URL and image), and gives you seven filters to target exactly the remote jobs you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor fetches the global Working Nomads remote-jobs feed, applies the filters you pass as input, and writes one normalized record per job to the run's dataset. On top of the raw feed fields it derives a set of extra fields so you can sort and filter without extra parsing: seniority inferred from the title, employmentType detected from the listing text, and a best-effort salary parse (salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryText). When detail fetching is on, it also upgrades each job url to its clean canonical apply link and adds the job imageUrl.

Missing source values are returned as null, never invented. Dates are normalized to ISO 8601. The Working Nomads feed has no server-side search, so every filter is applied by the actor after the feed is fetched.

Quickstart

Open the actor, paste this into the input, and press Run. It returns 10 remote Development jobs, with detail pages fetched.

{
"maxJobs": 10,
"category": "Development",
"withDetails": true
}

Every input field is optional. With an empty input the actor returns the newest remote jobs across every category (default maxJobs is 10).

Input reference

FieldTypeRequiredDefaultDescription
maxJobsintegerno10Maximum number of jobs to collect. Free Apify plans are capped at 10 per run.
withDetailsbooleannotrueWhen on, the actor opens each job's detail page to upgrade the url to its clean canonical apply link and add the job imageUrl. Turn off for faster feed-only runs.
keywordstringno(empty)Free-text term matched against title, company, category, tags and description (case-insensitive). Example: react, python.
categoryenumno(any)Keep only jobs in this category. One of Administration, Consulting, Customer Success, Design, Development, Education, Finance, Healthcare, Human Resources, Legal, Management, Marketing, Sales, System Administration, Writing.
tagstringno(empty)Keep only jobs that include this tag (case-insensitive). Example: react, project management, copywriting.
locationstringno(empty)Keep only jobs whose location text contains this term. Example: Latin America, Europe, anywhere.
employmentTypestringno(empty)Keep only jobs whose detected employment type contains this text. Example: Full-time, Contract, Freelance, Internship.
senioritystringno(empty)Keep only jobs whose detected seniority contains this text. Example: Senior, Junior, Lead, Internship.
minSalaryintegerno(none)Keep only jobs whose detected salary (max, else min) is at least this amount. Only applies to jobs that state a salary.
proxyConfigurationobjectno(none)Standard Apify proxy configuration. Not required; the source is not bot protected.

Filters combine with logical AND. Leave them empty to collect the newest remote jobs across every category.

Output reference

One dataset item per job. Types: string, boolean, integer, string[], or null when the source value is absent.

FieldTypeDescription
imageUrlstringJob or company image from the detail page, or null when none is published or detail fetching is off.
titlestringJob title.
urlstringCanonical apply/listing URL (upgraded from the detail page when withDetails is on).
applyUrlstringApply URL for the job (same as url).
companyNamestringHiring company name.
categorystringWorking Nomads category, for example Development, Marketing.
locationstringLocation or timezone text as published, for example CET (+/- 3 hours), anywhere.
remotebooleanAlways true; every Working Nomads listing is remote.
tagsstring[]Skill and topic tags for the job, or null when none.
sourcestringAlways Working Nomads.
postedAtstringPublish date/time in ISO 8601, or null.
senioritystringSeniority inferred from the title: Internship, Junior, Mid, Senior, Lead, Principal, or null.
employmentTypestringEmployment type detected from the text: Full-time, Part-time, Contract, Freelance, Internship, Temporary, or null.
salaryMinintegerParsed minimum salary, or null when the listing states no pay.
salaryMaxintegerParsed maximum salary, or null.
salaryCurrencystringCurrency code for the parsed salary (USD, EUR, GBP, CAD, AUD), or null.
salaryPeriodstringPay period for the parsed salary: year, month, or hour, or null.
salaryTextstringThe raw matched salary snippet, or null.
descriptionstringFull job description as plain text.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull on success. On a failed run, a single item with a populated error field is written instead.

Example output record

Real record from a live run (description trimmed for readability; the actor returns the full text):

{
"imageUrl": null,
"title": "Senior Fullstack (MERN) Developer",
"url": "https://talent.proxify.io/apply?utm_source=workingnomads&utm_medium=job_posting&utm_campaign=senior_mern",
"applyUrl": "https://talent.proxify.io/apply?utm_source=workingnomads&utm_medium=job_posting&utm_campaign=senior_mern",
"companyName": "Proxify",
"category": "Development",
"location": "CET (+/- 3 hours)",
"remote": true,
"tags": ["javascript", "react", "nodejs", "nextjs", "mongodb"],
"source": "Working Nomads",
"postedAt": "2026-08-05T18:30:18.000Z",
"seniority": "Senior",
"employmentType": "Full-time",
"salaryMin": null,
"salaryMax": null,
"salaryCurrency": null,
"salaryPeriod": null,
"salaryText": null,
"description": "About us:\n\n \n\nTalent has no borders. Proxify's mission is to connect top developers around the world with the opportunities they deserve. So, it doesn't matter where you are; we are here to help you fast-track your independent career in the right direction.\nSince our launch, Proxify's developers…",
"observedAt": "2026-08-10T14:18:22.655Z",
"error": null
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~working-nomads-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"category":"Development","keyword":"python","maxJobs":25,"withDetails":true}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~working-nomads-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"tag":"react","location":"anywhere","maxJobs":100}'

Apify CLI:

apify call scrapers_lat/working-nomads-scraper \
--input '{"category":"Marketing","maxJobs":50}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per job record returned (result event). When withDetails is on and a detail page is fetched successfully, an additive details event is also charged. See the pricing tab for current prices.
  • No charge on failure. If a run errors, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 records per run. Upgrade for higher maxJobs.
  • Feed scope. Working Nomads publishes a single global remote-jobs feed. All filters are applied by the actor after the feed is fetched.

FAQ and troubleshooting

A run returned 0 records. Why? The filter combination matched nothing in the current feed. Loosen filters (remove category or location, or widen keyword). Zero-result runs are not charged.

Why is salaryMin null on most jobs? Most Working Nomads listings do not state pay. Salary fields are parsed from the listing text only when a currency and plausible amount are present, so they stay clean and are null otherwise, never invented.

What does withDetails change? With it on, the actor opens each job's detail page to upgrade the url to its clean canonical apply link and add the imageUrl. Turn it off for faster feed-only runs.

Are all jobs remote? Yes. Every Working Nomads listing is remote, so remote is always true. Use location to filter by the timezone or region text.

Is this an official Working Nomads tool? No. This actor is independent and has no affiliation with Working Nomads. It reads only data that is publicly available on the site.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with Working Nomads. Accesses only publicly available data.