WeWorkRemotely Job Listings Scraper avatar

WeWorkRemotely Job Listings Scraper

Pricing

from $0.70 / 1,000 jobs

Go to Apify Store
WeWorkRemotely Job Listings Scraper

WeWorkRemotely Job Listings Scraper

[πŸ’°0.8/1k] Scrapes job listings from WeWorkRemotely.com. Supports categories, search, and job detail pages with rich JSON-LD data including salary, applicant countries, and company info.

Pricing

from $0.70 / 1,000 jobs

Rating

0.0

(0)

Developer

Epic Scrapers

Epic Scrapers

Maintained by Community

Actor stats

1

Bookmarked

1

Total users

0

Monthly active users

17 days ago

Last modified

Share

WeWorkRemotely Jobs Scraper: remote jobs by category, keyword and country, exported to a spreadsheet

WeWorkRemotely Jobs Scraper turns the listings on We Work Remotely into a dataset you can sort, filter and export. It is for job seekers, recruiters, remote-work newsletters and job-board builders. Each row is one remote job, with its title, company, category, employment type, region, the countries it accepts applicants from, skills, posting date and a link to the job.

  • Category, keyword and employment-type runs. Pick a category such as Back-End or Design, search a keyword such as python, or paste any WeWorkRemotely list URL.
  • Post-filters that match how remote jobs are posted. Keep only jobs open to applicants in your countries (countries), jobs from the last 24 hours to 90 days (timeFilter), given regions such as USA Only or EMEA, or given job types.
  • Fast listing mode. With Include detail pages off, the Actor reads category feeds and returns jobs in seconds.
  • Clean descriptions on request. Keep the job description as HTML, strip it to plain text, or leave it out to keep the dataset small.
  • Pay per job, no login. The Pricing tab shows the per-job price. No WeWorkRemotely account or API key. Export to JSON, CSV, Excel or Google Sheets.

Scope: This Actor covers WeWorkRemotely only. For general job boards use Indeed Job Scraper or SEEK Job Scraper. For freelance project posts use Upwork Job Scraper.

What can you do with WeWorkRemotely Jobs Scraper?

GoalHow
Build a daily remote job feedSchedule a run with timeFilter set to 24h and send new rows to a sheet or Slack.
Find jobs you can apply to from where you liveSet countries (for example US, GB, DE) and check applicantCountries.
Track hiring in one fieldChoose a category or searchKeyword and count rows per companyName and postedDate.
Source companies that hire remotelyCollect companyName, companyLogo and url for every listing in a category.
Compare skills in demandCount values in skills across a category.
Feed a job board or newsletterExport title, companyName, url, employmentType and postedDate.

How it compares

What you needWeWorkRemotely Jobs ScraperBrowsing the site by handGeneric page scrapers
Bulk exportJSON, CSV, Excel, APICopy and pasteYes
Applicant-country filterBuilt inRead each listingWrite your own
Time-window filter24h, 7d, 30d, 90dScan dates by eyeWrite your own
Repeated runsSchedule and compareManualVaries
PricePay per jobFree, slowVaries

Quick start

  1. Click Try for free and sign in to Apify.
  2. Choose a Category, enter a Search keyword, or paste URLs into Start URLs.
  3. For a first run, set Max items to 20.
  4. Click Start, then open the Output tab to preview and export the data.

Input

{
"category": "remote-back-end-programming-jobs",
"timeFilter": "7d",
"countries": ["US", "GB"],
"includeDetailPages": false,
"maxItems": 100
}
FieldTypeDefaultEffect
startUrlsArrayEmptyWeWorkRemotely URLs: /remote-jobs, /categories/{slug}, /remote-full-time-jobs, a search URL or one job URL.
categoryStringEmptyOne category: full-stack, front-end, back-end, DevOps, design, product, management and finance, sales and marketing, customer support, or all other.
searchKeywordStringEmptyKeyword search such as python or react.
employmentTypeStringEmptyfull-time or contract. Applies when a category or keyword is set.
includeDetailPagesBooleantrueTries each job's own page for more fields. Off returns listing data only and runs faster.
countriesArrayEmptyKeep jobs that accept applicants from these ISO-2 country codes.
timeFilterStringEmpty24h, 7d, 30d or 90d.
regionsArrayEmptyKeep jobs with these region labels, such as Anywhere in the World.
jobTypesArrayEmptyKeep jobs of these types, such as Full-Time, Contract, Freelance.
minSalaryInteger0Minimum yearly salary in USD. Applies to jobs where a salary was found.
includeDescriptionBooleantrueInclude the job description.
cleanHtmlBooleanfalseReturn the description as plain text.
maxItemsInteger1000Stop after this many jobs.
proxyObjectResidentialApify Proxy settings. Residential is the default.

Output

Example item from listing mode (includeDetailPages: false):

{
"jobId": "test-corp-senior-dev",
"title": "Test Corp: Senior Developer",
"url": "https://weworkremotely.com/remote-jobs/test-corp-senior-dev",
"employmentType": ["Full-Time"],
"occupationalCategory": ["Back-End Programming"],
"postedDate": "2026-05-28T07:25:37.000Z",
"companyName": "Test Corp",
"companyLogo": "https://we-work-remotely.imgix.net/logos/0171/5359/logo.gif",
"location": "",
"region": "Anywhere in the World",
"applicantCountries": ["United Kingdom", "Germany"],
"skills": ["Python", "AWS"],
"tags": ["Full-Time", "Anywhere in the World"],
"postedAge": "2d",
"scrapedAt": "2026-05-30T10:00:00.000Z",
"listingOnly": true
}

Notes:

  • The description is in description (and descriptionHtml when the source gives HTML).
  • With detail pages on, a job can also have salary (currency, min, max, value, unit), validThrough, applyUrl, companyUrl and directApply. WeWorkRemotely sometimes blocks job pages. When that happens the row falls back to listing data and listingOnly stays true, so check that field before relying on salary.
  • Empty values are empty strings or empty arrays, not guesses.
  • postedDate is an ISO timestamp in UTC.

Track remote jobs over time with scheduled runs

Run the same query on a schedule to catch new remote jobs early. Apify can run the Actor for you and send the results wherever you need them.

1. Save your input as a task

Open the Actor, set your category, keyword and countries, then click Save as a new task. A task is a saved input you can run again with one click or on a schedule.

2. Schedule the task

In Apify Console, go to Schedules, click Create new, choose how often to run (for example daily at 06:00 in your time zone), and add your task. See Schedules and How to create a schedule.

Watch how to schedule an Actor:

Or schedule a saved task:

Common schedules:

Use caseFrequencyCron expression
New remote job alertsDaily0 6 * * *
Hiring trends by categoryWeekly (Monday)0 6 * * 1
Fast-moving postingsTwice a day0 6,18 * * *

3. Send the results to a spreadsheet

Connect Google in the task's Integrations tab to save every run to Google Sheets or Google Drive automatically:

4. Compare runs

  • New jobs: jobIds that appear for the first time, with postedDate.
  • Removed jobs: jobIds that vanish between runs.
  • Hiring by company: rows per companyName over time.
  • Skills in demand: count of skills values per run.
  • Salary changes: salary per jobId when detail pages are on (check listingOnly first).

FAQ

How many jobs can I get?

Up to maxItems (default 1,000). A category feed holds the most recent jobs the site lists, so the number per run depends on how many are currently open.

Why did I get few results?

Post-filters (countries, timeFilter, regions, jobTypes, minSalary) remove rows after collection. Loosen them or choose a wider category. Search URLs and keywords return one page of results.

Why is salary empty?

Many WeWorkRemotely jobs do not publish a salary, and job pages are sometimes blocked. Salary fields are only filled when the site provides them.

Do I need an account or proxy?

No account. Residential proxy is the default and recommended.

Is there an official API?

WeWorkRemotely offers RSS feeds but no full search API. This Actor adds filters, descriptions and export.

The Actor collects publicly visible job listings. You are responsible for following the site's terms and local law, including privacy rules if you store personal data.

Cost

Pay per event: you pay for each job saved to the dataset. The price is $0.00099 per job on the Free plan and $0.0008 per job on Bronze, falling to $0.0007 on higher tiers. Check the Pricing tab for current rates.

Run sizeFree planBronze plan
100 jobs$0.099$0.08
1,000 jobs$0.99$0.80

More job boards:

Support

Found a problem? Open an issue in the Issues tab and include the run ID and your input.

This Actor is not affiliated with, endorsed by or sponsored by We Work Remotely. All trademarks belong to their owners.