We Work Remotely Jobs Scraper
Pricing
from $1.00 / 1,000 results
We Work Remotely Jobs Scraper
Scrape remote job listings from WeWorkRemotely.com with titles, companies, locations, salaries, full descriptions, and company profiles. HTTP-only, no login required.
Pricing
from $1.00 / 1,000 results
Rating
5.0
(6)
Developer
Crawler Bros
Actor stats
7
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape remote jobs from WeWorkRemotely.com — titles, companies, locations, salaries, full descriptions, and company profiles. HTTP-only; no login, no cookies, no proxy required.
Output (per job)
type=job_wwrurl,id,slugtitle,company,companyLogo,companyLogoFull,companyHqcompanyWebsite— company homepage / social URL (hiringOrganization.sameAs)hiringOrganizationSameAs— full list when multiplesameAsentries are presentcompanyBio— about-the-company text block when the sidebar provides onecategory,occupationalCategory(string or list per JSON-LD)employmentType— raw schema.org value (e.g.FULL_TIME)employmentTypeNormalized— lower-case hyphenated form (e.g.full-time,contract)jobLocationType—TELECOMMUTE/ONSITEpostedAt,applyBefore,validThroughsalary,salaryDetails(min / max / currency / unit)salaryMin,salaryMax,salaryCurrency,salaryUnit— exposed at top level for easy filteringapplicantCountries,applicantLocationRequirements— parsed fromapplicantLocationRequirements[].namedirectApply— JSON-LD boolean flag (Google structured-data hint)skills— list extracted from Skills / Requirements bullet list when presentdescriptionHtml,descriptionText(whenincludeDescription = true)applyUrlapplicationCount— when the detail page shows "N applicants"companyFoundedYear— when the company block shows a founded yearscrapedAt
If the listing / search returns zero results, a single job_wwr_blocked sentinel record is emitted so runs exit 0.
Input
| Field | Type | Description |
|---|---|---|
categoryUrls | string[] | WWR category or search URLs. Prefill: https://weworkremotely.com/categories/remote-programming-jobs. |
searchTerm | string | Optional keyword used when no categoryUrls are supplied (builds /remote-jobs/search?term=…). |
maxItems | integer | Max jobs per run. Default 3. |
includeDescription | boolean | Fetch each job's detail page for full description + company metadata. Default true. |
cleanHtml | boolean | Strip scripts / tracking images from descriptionHtml. Default true. |
regions | string[] | Optional region substrings (case-insensitive). Example: ["USA", "Europe"]. |
jobTypes | string[] | Optional employment-type filter: full-time, contract, part-time. |
minSalary | integer | Minimum salary in USD. Only applied when a listing has numeric salary data. |
How it works
- Fetch each
categoryUrlsentry (or build a search URL fromsearchTerm). - Extract
/remote-jobs/<slug>links from the listing page. - For each job, fetch the detail page and parse the embedded
JobPostingJSON-LD schema (Google-compatible structured data). Fall back to DOM selectors where the schema lacks fields. - Clean HTML: unescape entities, strip
<script>and 1×1 tracking images whencleanHtml = true.
FAQ
Do I need a proxy? No. Why is the sentinel emitted? When the given URL / search has no matching jobs, we still emit one record so downstream pipelines never see an empty output.