WeWorkRemotely Scraper · Remote Jobs, Companies & Categories avatar

WeWorkRemotely Scraper · Remote Jobs, Companies & Categories

Pricing

from $1.32 / 1,000 job listing returneds

Go to Apify Store
WeWorkRemotely Scraper · Remote Jobs, Companies & Categories

WeWorkRemotely Scraper · Remote Jobs, Companies & Categories

Scrape WeWorkRemotely listings across all 11 job categories: hiring company, role, category, region, job type, skill tags and the full description text. Filter by keyword, region, company, type and date. No login, no API key.

Pricing

from $1.32 / 1,000 job listing returneds

Rating

0.0

(0)

Developer

Tarek Etman

Tarek Etman

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 minutes ago

Last modified

Share

reapX — public sources in, addressable records out

WeWorkRemotely Scraper · Remote Jobs, Companies & Categories

WeWorkRemotely scraper that pulls every live remote job from the WeWorkRemotely board - all 11 categories, with the hiring company, the role, the region, the job type, the skill tags and the full listing text on every row. No login, no API key, no browser.

Maintained by reapX. Every row cites the Apify run that produced it — nothing is inferred, modelled or filled in, and a field absent from the source is absent from the row. The extracted archive for this source is browsable at reapx.dev/data/weworkremotely-scraper/ and mirrored as an open dataset on Hugging Face and Kaggle. Questions: reapxdev@proton.me

WeWorkRemotely is one of the oldest and largest remote-only job boards. This Actor reads its public category feeds, so what you get is exactly what a candidate sees, usually within minutes of a listing going up.

What you get

One row per listing, with a stable jobId you can use as a primary key:

FieldExample
company / roleDoximity / Data Engineering Manager
categoryFull-Stack Programming
jobTypeFull-Time
region / country / state / isWorldwideAnywhere in the World / - / - / true
skills["Python", "SQL"]
publishedAt / expiresAt2026-08-02T07:31:05Z / 2026-09-01T07:31:05Z
descriptionfull listing text, HTML stripped
jobUrldirect link to the posting

Four named views ship with the dataset: Jobs overview, Worldwide roles, Companies hiring and Full text.

All 11 categories

Programming (all), Full-Stack Programming, Front-End Programming, Back-End Programming, DevOps and Sysadmin, Design, Product, Customer Support, Sales and Marketing, Management and Finance, and All Other Remote. Pick as many as you like - the results are merged and de-duplicated. Leave the field empty to read the whole board in a single request.

Narrow it down

WeWorkRemotely's own search endpoint is not open to API clients, so the Actor applies your narrowing to the feed rows instead. Listings removed by a filter are never charged.

  • Keywords - matched against title, description, skills and category
  • Regions - matched against region, country and state
  • Job type - Full-Time, Part-Time or Contract
  • Companies - partial company-name match
  • Posted within the last N days - for a feed that stays fresh on a schedule

Input configuration

Every field is optional. The prefilled values below are what runs if you press Start without changing anything.

Which part of the board

WeWorkRemotely publishes one feed per category. Pick as many as you like and the results are merged and de-duplicated.

FieldTypeAcceptsWhat it does
categorieslistone value per lineWhich WeWorkRemotely category feeds to read. Leave empty to read the whole board in one request.

Narrow it down

WeWorkRemotely's own search is not open to API clients, so these filters are applied to the feed rows. Listings removed here are never charged.

FieldTypeAcceptsWhat it does
searchTermslistone value per lineWords to match against the title, description, skills and category, one per line. A job is kept if it matches at least one. Examples: python, react, senior, healthcare.
regionslistone value per lineMatch against the listing's region, country or state, one per line. Examples: Anywhere in the World, USA, Europe, Canada.
jobTypeslistone value per lineContract shape of the role. Leave empty for all types.
companieslistone value per lineKeep only listings from these companies, matched as a partial name, one per line. Examples: Doximity, Cloudflare.
postedWithinDaysinteger1 to 365Return only listings published in the last N days, recomputed on every run. Use 1 for a daily feed or 7 for a weekly one. Leave empty for no date limit.

Size and detail

How many rows to return and how much of each listing to carry.

FieldTypeAcceptsWhat it does
maxJobsinteger1 to 20000Hard stop on how many jobs are returned and charged. Each job returned costs $0.002. 100 jobs finishes in seconds. Prefilled with 100.
includeDescriptiontrue/falsecheckboxCarry the full listing text on every row, converted from HTML to plain text. Turn off for a smaller, faster dataset that is just the job facts. Prefilled with true.
requestDelaySecsinteger1 to 60Seconds to wait between feed requests. 1 is the minimum this Actor allows; raise it if you are running several jobs at once. Prefilled with 2.

Pricing

Pay per event. The primary event is Job listing returned (job-listing), charged at $0.002 per event on the free plan, falling to $0.00084 on the highest tier.

Charged once for each WeWorkRemotely listing delivered as a complete row: company, role, category, region, job type, skill tags, publication date and full description text. Listings removed by your keyword, region, company, type or date filters, feeds that return nothing and blocked requests are never charged.

Other charged events: apify-actor-start (Actor Start).

Minimum charge cap per run: $0.005.

Tiered discounts apply automatically on every paid Apify plan. Platform usage is absorbed by the Actor, so the per-event price is the whole price.

Usage examples

The prefilled run, which is what Start does with nothing changed

{
"maxJobs": 100,
"includeDescription": true,
"requestDelaySecs": 2
}

Filter by job categories

{
"maxJobs": 100,
"includeDescription": true,
"requestDelaySecs": 2,
"categories": [
"remote-programming-jobs",
"remote-devops-sysadmin-jobs"
]
}

Filter by keywords

{
"maxJobs": 100,
"includeDescription": true,
"requestDelaySecs": 2,
"searchTerms": [
"python",
"kubernetes"
]
}

Filter by regions

{
"maxJobs": 100,
"includeDescription": true,
"requestDelaySecs": 2,
"regions": [
"Anywhere in the World"
]
}

Filter by job type

{
"maxJobs": 100,
"includeDescription": true,
"requestDelaySecs": 2,
"jobTypes": [
"Contract"
]
}

Output example

One row, exactly as the actor wrote it to the dataset:

{
"jobId": "gitlab-area-vice-president-financial-services",
"jobUrl": "https://weworkremotely.com/remote-jobs/gitlab-area-vice-president-financial-services",
"title": "GitLab: Area Vice President - Financial Services",
"role": "Area Vice President - Financial Services",
"company": "GitLab",
"category": "Customer Support",
"jobType": "Full-Time",
"region": "Anywhere in the World",
"country": null,
"state": null,
"skills": [],
"isWorldwide": true,
"publishedAt": "2026-07-31T07:31:03Z",
"publishedDate": "2026-07-31",
"expiresAt": "2026-08-30T07:31:03Z",
"description": "Headquarters: Remote, US\n\nGitLab is the intelligent orchestration platform for DevSecOps. GitLab enables organizations to increase developer productivity, improve operational efficiency, reduce security and compliance...",
"sourceFeed": "remote-customer-support-jobs",
"sourceQuery": "categories=remote-customer-support-jobs/remote-sales-and-marketing-jobs, terms=success/account manager"
}

That row carries 19 fields in total; 18 are shown.

Fields on every row

FieldTypeWhat it is
jobIdstringStable WeWorkRemotely slug for this listing, taken from its URL. Unique per posting and safe to use as a primary key.
jobUrlstringPublic WeWorkRemotely page for this listing.
titlestringThe listing title exactly as published, in WeWorkRemotely's "Company: Role" form.
rolestringThe role on its own, with the company prefix removed.
companystringThe hiring company, taken from the title prefix.
categorystringWeWorkRemotely category the listing is filed under.
jobTypestringContract shape of the role as published.
regionstringWhere the role may be worked from. Most WeWorkRemotely listings are open worldwide.
countrystringCountry restriction, when the employer sets one.
statestringState or province restriction, when the employer sets one.
skillslistSkill tags the employer attached to the listing.
isWorldwidetrue/falseTrue when the role is open to candidates anywhere in the world.
publishedAtstringWhen the listing was published, ISO 8601.
publishedDatestringPublication date only, YYYY-MM-DD, for grouping and filtering.
expiresAtstringWhen the listing comes off the board, ISO 8601, when the employer sets it.
descriptionstringFull listing text as plain text, converted from the feed's HTML. Null when 'Include the full job description' is turned off.
sourceFeedstringWhich WeWorkRemotely feed the row came from.
sourceQuerystringThe resolved query that produced this row, so a merged dataset stays traceable.
scrapedAtstringWhen this Actor read the row from WeWorkRemotely, ISO 8601.

4 named dataset views ship with it: Jobs overview, Worldwide roles, Companies hiring, Full text. They drive the Output tab in Console and the Output block on the Actor's .md page.

FAQ

How many jobs are on the board at once?

Around 700 live listings across the 11 categories. The whole-board feed serves the newest 100; reading the category feeds gets you the rest.

Are these jobs really remote?

Yes - WeWorkRemotely is a remote-only board. Use isWorldwide and region to tell globally open roles from ones restricted to a country or state.

How do I get only brand-new postings?

Set Posted within the last N days to 1 and schedule the run daily. Every row carries publishedAt.

Why is the company in the title?

WeWorkRemotely publishes titles as "Company: Role". The Actor splits them for you into company and role, and keeps the original in title.

Can I use this from an AI agent?

Yes. The dataset schema types and documents every field, so the output chains directly into agent workflows through the Apify MCP server.


Unofficial - not affiliated with WeWorkRemotely. Collects public data only. reapx. Contact reapxdev@proton.me.

The full published archive

Each archive page carries Dataset JSON-LD, a canonical URL and the identifiers used, so an agent can resolve an entity without running anything. Nothing on those pages is estimated or modelled.

🧪 Example input

A real, runnable configuration — this is an actual input this Actor has run with.

{
"includeDescription": true,
"requestDelaySecs": 2,
"categories": [
"remote-customer-support-jobs",
"remote-sales-and-marketing-jobs"
],
"searchTerms": [
"success",
"account manager"
],
"maxJobs": 200
}

📄 Sample output

One real row from a real run of this Actor, unedited.

{
"jobId": "gitlab-area-vice-president-financial-services",
"jobUrl": "https://weworkremotely.com/remote-jobs/gitlab-area-vice-president-financial-services",
"title": "GitLab: Area Vice President - Financial Services",
"role": "Area Vice President - Financial Services",
"company": "GitLab",
"category": "Customer Support",
"jobType": "Full-Time",
"region": "Anywhere in the World",
"country": null,
"state": null,
"skills": [],
"isWorldwide": true,
"publishedAt": "2026-07-31T07:31:03Z",
"publishedDate": "2026-07-31",
"expiresAt": "2026-08-30T07:31:03Z",
"description": "Headquarters: Remote, US\n\nGitLab is the intelligent orchestration platform for DevSecOps. GitLab enables organizations to increase developer productivity, improve operational efficiency, reduce security and compliance risk, and accelerate digital transformation. More than 50 million registered users and more than 50% of the Fortune 100* trust GitLab to ship better, more secure software faster.\n\nThe same principles built into our products are reflected in how our team works: we embrace AI as a core productivity multiplier, with all team members expected to incorporate AI into their daily workflows to drive efficiency, innovation, and impact. GitLab is where careers accelerate, innovation flourishes, and every voice is valued. Our high-performance culture is driven by our values and continuous knowledge exchange, enabling our team members to reach their full potential while collaborating with industry leaders to solve complex problems. Co-create the future with us as we build technology that transforms how the world develops software.\n\n* Fortune 500® is a registered trademark of Fortune Media IP Limited, used under license. Claim based on GitLab data. Fortune 100 refers to the top 20% ranked companies in the 2025 Fortune 500 list, published in June 2025. Fortune and Fortune Media IP Limited are not affiliated with, and do not endorse products or services of GitLab.\n\nAn overview of this role\n\nAs Area Vice President, you'll lead GitLab's Financial Services sales organization and shape how we win new customers, expand existing relationships, and deliver predictable growth. You'll build and develop a team of Regional Sales Directors who lead Enterprise and Commercial Account Executives, helping financial services customers improve how they build, secure, and deliver software with GitLab's DevSecOps platform.\n\nReporting to the Vice President of Sales, AMER, you'll set the strategy for the area while staying close to customers, leaders, and day-to-day execution. This is an opportunity to build a high-performing sales organization, strengthen key customer and partner relationships, and work across GitLab to create lasting customer value.\n\nWhat you'll do\n\n\nEstablish and deliver a strategy to win new customers, expand existing accounts with purpose, and create a shared vision for long-term growth.\n\nDrive customer success and predictable year-over-year annual recurring revenue growth for GitLab.\n\nRecruit, develop, and retain a diverse and effective sales organization of Regional Sales Directors and Strategic Account Executives.\n\nBuild and

How it works

  1. You set the filters below, or none at all.
  2. The Actor calls the source's own public endpoint and pages through the results.
  3. Every row is pushed to the dataset as it is built, not buffered to the end — so a run that hits its time limit still returns everything it collected up to that point.
  4. You are charged per row returned, so the maximum-results field is also your cost cap.

💬 Your feedback

Found a bug, or need a field this does not return yet? Open an issue on the Actor's Issues tab, or write to reapxdev@proton.me. Bugs get fixed and reasonable field requests get added.