We Work Remotely Jobs Search Scraper avatar

We Work Remotely Jobs Search Scraper

Pricing

from $2.99 / 1,000 we work remotely remote job records

Go to Apify Store
We Work Remotely Jobs Search Scraper

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

Jobs API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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.

FieldTypeRequired?DefaultBounds or use
modestringNosearchsearch, single, or multiple
querystringNodeveloper1–120 characters, non-blank, and contains no control characters; search mode only
jobUrlsarray of stringsConditional[]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>
maxItemsintegerNo31–100; caps jobs requested in search mode. Direct modes process each supplied URL
maxRequestsintegerNo201–200 requests total, including robots.txt, search/detail pages, and every followed redirect
requestDelayMsintegerNo10001,000–10,000 milliseconds between requests
requestTimeoutSecsintegerNo305–30 seconds for each request
proxyConfigurationobjectNo{}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.

FieldTypeRequired?DefaultBounds or use
useApifyProxybooleanNoomitted / falseEnables Apify Proxy when true
apifyProxyGroupsarray of stringsNoomittedUp to 20 non-empty printable ASCII group names, 1–64 characters each
apifyProxyCountrystringNoomittedTwo ASCII letters, for example US; requires useApifyProxy: true
proxyUrlsarray of stringsNoomittedUp 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.

FieldTypeMeaning
jobIdstringNative We Work Remotely job slug used as the record identity.
titlestringPublished job title.
jobUrlURI stringCanonical public detail page URL.
companyNamestringPublished employer name.
companyAddressstringEmployer address as shown on the page.
companyJobsPostedCountinteger ≥ 0Published count of jobs posted by the employer.
companyLogoUrlURI stringEmployer logo URL.
companyWebsiteURI stringEmployer website.
companyProfileUrlURI stringEmployer profile page on We Work Remotely.
companyLocationsarray of location objectsEmployer locations; nested fields are described below.
employmentTypestringPublished employment type.
occupationalCategorystringPublished job category or occupation.
responsibilitiesarray of stringsResponsibilities published for the job.
qualificationsarray of stringsQualifications published for the job.
educationRequirementsarray of stringsEducation requirements published for the job.
experienceRequirementsarray of stringsExperience requirements published for the job.
incentiveCompensationarray of stringsIncentive compensation details published for the job.
eligibilityToWorkRequirementarray of stringsWork eligibility requirements published for the job.
workHoursstringPublished hours or schedule information.
jobStartDatedate or zoned ISO date-time stringPublished start date. Valid date-only values are preserved; ambiguous local times are omitted.
jobImmediateStartbooleanWhether the posting explicitly says the job starts immediately.
salaryMinnumber ≥ 0Published lower compensation amount.
salaryMaxnumber ≥ 0Published upper compensation amount.
salaryCurrencystringPublished currency code.
salaryPeriodstringPublished pay period or unit, such as a year or hour.
locationSummarystringReadable summary of the advertised job location.
jobLocationsarray of location objectsStructured locations where the job may be performed.
applicantLocationRequirementsarray of stringsPublished location eligibility requirements for applicants.
jobLocationTypestringPublished workplace type, such as a telecommuting designation.
isRemotebooleanRemote-work status supported by the posting.
datePosteddate or zoned ISO date-time stringPublished posting date. Valid date-only values are preserved; ambiguous local times are omitted.
validThroughdate or zoned ISO date-time stringPublished closing date. Valid date-only values are preserved; ambiguous local times are omitted.
skillsarray of stringsPublished skills or qualifications.
benefitsarray of stringsPublished benefits.
directApplybooleanWhether the posting says direct application is available. false is retained when published.
applyUrlURI stringExplicit application link or action URL, when present.
descriptionstringFull readable posting text, including paragraph and list spacing.
descriptionHtmlstringSanitized HTML for the primary posting description.
descriptionHeadingsarray of stringsHeadings found in the posting description.
descriptionBulletPointsarray of stringsList items found in the posting description.
imageUrlURI stringPublished 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:

FieldTypeMeaning
statusFAILED or SUCCEEDEDFinal Actor run status.
itemsStoredinteger ≥ 0Dataset writes acknowledged by the storage API.
isPartialbooleanWhether 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.