We Work Remotely Jobs Search Scraper
Pricing
from $2.99 / 1,000 we work remotely remote job records
We Work Remotely Jobs Search Scraper
Scrape remote job listings from We Work Remotely, the largest remote work community. Extract job titles, companies, locations, categories, and application details for remote recruitment and market analysis.
Pricing
from $2.99 / 1,000 we work remotely remote job records
Rating
0.0
(0)
Developer
Jobs API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
We Work Remotely jobs scraper
This Apify Actor accepts a search query or exact public job URLs from We Work Remotely. It writes business fields published on each verified job detail page to the default dataset. Missing optional facts stay absent; the Actor does not fill them with guesses.
Source access status
A historical ordinary HTTPS request to the public search page on 2026-09-27 returned HTTP 403 with the source challenge “Just a moment... Enable JavaScript and cookies to continue.” The Actor stopped after that request. This update uses offline checks only; it does not claim a fresh scrape or that the site is currently accessible to the Actor. The record below is explicitly fictional documentation and is not source evidence.
When a future authorized run encounters an HTTP 401, 403, 429 or 451 response or a source-authored verification challenge, it stops further requests. It does not switch browser, identity or route to continue past the barrier.
Input
All fields have defaults, so none is globally required. jobUrls becomes required by mode: one URL in single, and 1–20 unique URLs in multiple. In search, leave it empty. In single and multiple mode, leave query at its default; it is used only for search.
| Field | Type | Required? | Default | Bounds or use |
|---|---|---|---|---|
mode | string | No | search | search, single, or multiple |
query | string | No | developer | 1–120 characters, non-blank, and contains no control characters; search mode only |
jobUrls | array of strings | Conditional | [] | Search: empty. Single: exactly 1 URL. Multiple: 1–20 unique job slugs. Each URL must be the exact HTTPS form https://weworkremotely.com/remote-jobs/<slug> |
maxItems | integer | No | 3 | 1–100; caps jobs requested in search mode. Direct modes process each supplied URL |
maxRequests | integer | No | 20 | 1–200 requests total, including robots.txt, search/detail pages, and every followed redirect |
requestDelayMs | integer | No | 1000 | 1,000–10,000 milliseconds between requests |
requestTimeoutSecs | integer | No | 30 | 5–30 seconds for each request |
proxyConfiguration | object | No | {} | Strict Apify SDK proxy fields described below. Empty settings disable proxy use |
Input names are exact. Aliases such as jobUrl, urls, startUrls, and keywords are rejected. Values are type-checked; strings are not converted into numbers, and numeric limits are not rounded or clamped. Search query text is preserved exactly, including leading or trailing spaces.
proxyConfiguration
The Actor accepts only these four SDK fields. proxyUrls cannot be combined with Apify proxy settings. Providing groups or a country requires useApifyProxy: true. A proxy setup error fails closed instead of silently switching to a direct route.
| Field | Type | Required? | Default | Bounds or use |
|---|---|---|---|---|
useApifyProxy | boolean | No | omitted / false | Enables Apify Proxy when true |
apifyProxyGroups | array of strings | No | omitted | Up to 20 non-empty printable ASCII group names, 1–64 characters each |
apifyProxyCountry | string | No | omitted | Two ASCII letters, for example US; requires useApifyProxy: true |
proxyUrls | array of strings | No | omitted | Up to 20 absolute HTTP(S) URLs, at most 2,048 characters each, with no whitespace, controls, backslashes, fragment, or invalid percent escape |
Example inputs
Each example shows the complete eight-field input. The job slugs below are placeholders; replace them with existing public job detail URLs. These examples do not claim that the placeholder pages exist.
Search input example
{"mode": "search","query": "developer","jobUrls": [],"maxItems": 3,"maxRequests": 20,"requestDelayMs": 1000,"requestTimeoutSecs": 30,"proxyConfiguration": {}}
Single job input example
{"mode": "single","query": "developer","jobUrls": ["https://weworkremotely.com/remote-jobs/your-job-slug"],"maxItems": 3,"maxRequests": 20,"requestDelayMs": 1000,"requestTimeoutSecs": 30,"proxyConfiguration": {}}
Multiple jobs input example
{"mode": "multiple","query": "developer","jobUrls": ["https://weworkremotely.com/remote-jobs/your-first-job-slug","https://weworkremotely.com/remote-jobs/your-second-job-slug"],"maxItems": 3,"maxRequests": 20,"requestDelayMs": 1000,"requestTimeoutSecs": 30,"proxyConfiguration": {}}
Dataset output
Each item is a business record for one verified native job detail URL. jobId, title, and jobUrl are required. Other facts are optional and are included only when the public page supplies them. Salary amounts and units are kept as published; they are not converted. Description text and sanitized HTML preserve the source posting's readable content.
| Field | Type | Meaning |
|---|---|---|
jobId | string | Native We Work Remotely job slug used as the record identity. |
title | string | Published job title. |
jobUrl | URI string | Canonical public detail page URL. |
companyName | string | Published employer name. |
companyAddress | string | Employer address as shown on the page. |
companyJobsPostedCount | integer ≥ 0 | Published count of jobs posted by the employer. |
companyLogoUrl | URI string | Employer logo URL. |
companyWebsite | URI string | Employer website. |
companyProfileUrl | URI string | Employer profile page on We Work Remotely. |
companyLocations | array of location objects | Employer locations; nested fields are described below. |
employmentType | string | Published employment type. |
occupationalCategory | string | Published job category or occupation. |
responsibilities | array of strings | Responsibilities published for the job. |
qualifications | array of strings | Qualifications published for the job. |
educationRequirements | array of strings | Education requirements published for the job. |
experienceRequirements | array of strings | Experience requirements published for the job. |
incentiveCompensation | array of strings | Incentive compensation details published for the job. |
eligibilityToWorkRequirement | array of strings | Work eligibility requirements published for the job. |
workHours | string | Published hours or schedule information. |
jobStartDate | date or zoned ISO date-time string | Published start date. Valid date-only values are preserved; ambiguous local times are omitted. |
jobImmediateStart | boolean | Whether the posting explicitly says the job starts immediately. |
salaryMin | number ≥ 0 | Published lower compensation amount. |
salaryMax | number ≥ 0 | Published upper compensation amount. |
salaryCurrency | string | Published currency code. |
salaryPeriod | string | Published pay period or unit, such as a year or hour. |
locationSummary | string | Readable summary of the advertised job location. |
jobLocations | array of location objects | Structured locations where the job may be performed. |
applicantLocationRequirements | array of strings | Published location eligibility requirements for applicants. |
jobLocationType | string | Published workplace type, such as a telecommuting designation. |
isRemote | boolean | Remote-work status supported by the posting. |
datePosted | date or zoned ISO date-time string | Published posting date. Valid date-only values are preserved; ambiguous local times are omitted. |
validThrough | date or zoned ISO date-time string | Published closing date. Valid date-only values are preserved; ambiguous local times are omitted. |
skills | array of strings | Published skills or qualifications. |
benefits | array of strings | Published benefits. |
directApply | boolean | Whether the posting says direct application is available. false is retained when published. |
applyUrl | URI string | Explicit application link or action URL, when present. |
description | string | Full readable posting text, including paragraph and list spacing. |
descriptionHtml | string | Sanitized HTML for the primary posting description. |
descriptionHeadings | array of strings | Headings found in the posting description. |
descriptionBulletPoints | array of strings | List items found in the posting description. |
imageUrl | URI string | Published job image URL. |
Each companyLocations and jobLocations entry is a closed object. It can contain name (display name), locality (city or locality), region (state or region), country, latitude (−90 to 90), and longitude (−180 to 180). Each nested field is optional and omitted when the source does not provide it.
Fictional output example
This complete example demonstrates the Dataset field shapes. Every value is invented for documentation; it does not come from a current or historical scrape.
{"jobId": "fictional-platform-engineer","title": "Fictional Platform Engineer","jobUrl": "https://weworkremotely.com/remote-jobs/fictional-platform-engineer","companyName": "Northstar Paper Boats Fictional Cooperative","companyAddress": "42 Imaginary Quay, Paper Harbor, Imaginary Coast, Fictionland","companyJobsPostedCount": 0,"companyLogoUrl": "https://assets.northstar-paperboats.example/fictional-mark.svg","companyWebsite": "https://northstar-paperboats.example","companyProfileUrl": "https://weworkremotely.com/company/northstar-paper-boats-fictional","companyLocations": [{"name": "Paper Harbor Studio","locality": "Paper Harbor","region": "Imaginary Coast","country": "Fictionland","latitude": 0,"longitude": 0}],"applyUrl": "https://jobs.northstar-paperboats.example/apply/fictional-platform-engineer","employmentType": "FULL_TIME","occupationalCategory": "Software Engineering","salaryMin": 118000,"salaryMax": 146000,"salaryCurrency": "USD","salaryPeriod": "YEAR","locationSummary": "Anywhere in Fictionland","jobLocations": [{"name": "Anywhere in Fictionland","country": "Fictionland","latitude": 0,"longitude": 0}],"applicantLocationRequirements": ["Fictionland"],"jobLocationType": "TELECOMMUTE","isRemote": true,"datePosted": "2026-10-01","validThrough": "2026-11-01T12:30:00-05:00","skills": ["TypeScript","Distributed systems","Observability"],"benefits": ["Fictional healthcare stipend","Annual library fund"],"responsibilities": ["Design resilient services","Write operational runbooks"],"qualifications": ["Experience with distributed systems"],"educationRequirements": ["A relevant credential or equivalent experience"],"experienceRequirements": ["Five years of production software experience"],"workHours": "40 hours per week with flexible scheduling","jobStartDate": "2026-11-15","jobImmediateStart": false,"incentiveCompensation": ["Annual performance bonus target"],"eligibilityToWorkRequirement": ["Must be eligible to work in Fictionland"],"directApply": false,"description": "Role overview\n\nNorthstar Paper Boats is a fictional cooperative building calm, reliable tools for imaginary harbor communities.\n\nResponsibilities\n\n- Design resilient services for fictional users.\n- Document operations and support teammates.\n\nHow to apply\n\nSend a short note describing a useful imaginary system you would like to improve.","descriptionHtml": "<h2>Role overview</h2><p>Northstar Paper Boats is a fictional cooperative building calm, reliable tools for imaginary harbor communities.</p><h2>Responsibilities</h2><ul><li>Design resilient services for fictional users.</li><li>Document operations and support teammates.</li></ul><h2>How to apply</h2><p>Send a short note describing a useful imaginary system you would like to improve.</p>","descriptionHeadings": ["Role overview","Responsibilities","How to apply"],"descriptionBulletPoints": ["Design resilient services for fictional users.","Document operations and support teammates."],"imageUrl": "https://images.northstar-paperboats.example/fictional-role.png"}
Run summary
The Actor writes one key-value record named OUTPUT_SUMMARY, with exactly three fields:
| Field | Type | Meaning |
|---|---|---|
status | FAILED or SUCCEEDED | Final Actor run status. |
itemsStored | integer ≥ 0 | Dataset writes acknowledged by the storage API. |
isPartial | boolean | Whether the run stored only a partial expected result. |
With zero acknowledged Dataset items, the Actor ends FAILED with itemsStored: 0 and isPartial: false, including empty results and a source access barrier. If one or more items were acknowledged before a later error or source barrier, the Actor preserves that prefix and ends SUCCEEDED with isPartial: true. isPartial is also true when a run stored fewer rows than its target. A completed extraction of the requested rows ends SUCCEEDED with isPartial: false. The summary is operational run evidence, not a Dataset item.