
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Scrape remote jobs from Remote OK: title, company, salary range, location, tags, benefits, full description, apply link and posted date. Search by tag, keyword or URL and filter by location, minimum salary, benefits and date. No login needed.
Scrape remote jobs from Remote OK: title, company, salary range, location, tags, benefits, full description, apply link and posted date. Search by tag, keyword or Remote OK URL, filter by location, minimum salary, benefits and date, and get every job Remote OK lists, not only the latest 100. No login, no browser, a few seconds per run.
salaryMin/salaryMax are only filled when the employer stated a range.| Field | What it does |
|---|---|
tags | Remote OK tags. Each line is a search; python, django on one line requires both tags. |
searchQueries | Free-text searches, for example data engineer. |
startUrls | Tag, country, company, search or single job links on remoteok.com. |
maxResults | Jobs to save in total (default 20, 0 = no limit). |
locations | Countries (US, Germany), regions (Europe, North America, Latin America, Asia, Africa, Middle East, Oceania) or Worldwide. |
minSalary | Minimum yearly salary in USD. |
postedWithinDays | Only jobs posted in the last N days. |
benefits | Jobs offering all selected benefits (async, 4 day workweek, equity ...). |
onlyWithSalary, excludeKeywords | Skip jobs without a salary, or with certain words in the title. |
sortBy | Remote OK default, latest, highest paid, most viewed, most applied, hottest, most benefits. |
maxResultsPerSearch | Cap per tag, keyword or URL. |
includeDescription, includeHtml | Full description as text and HTML (on by default). |
{
"tags": ["python", "react, typescript"],
"searchQueries": ["data engineer"],
"locations": ["US", "Europe"],
"minSalary": 100000,
"postedWithinDays": 30,
"maxResults": 200
}
| Field | Description |
|---|---|
id, title, company, companySlug, companyUrl, companyLogo | Job and company |
location, locations, applicantCountries, isWorldwide | Where candidates may live |
employmentType | Full-time, Part-time, Contract ... |
salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryText | Stated salary range (empty when none was stated) |
tags, benefits, industry | Remote OK tags and the employer's benefits |
postedAt, validThrough | Posted and expiry dates (UTC) |
isVerified, isHighlighted, isFeatured | Listing flags |
url, applyUrl, applyInstructions, applyKeyword | Remote OK page, employer apply link and how to apply |
descriptionText, descriptionHtml | Full description |
source, sourceUrl, attribution, scrapedAt | Attribution to Remote OK and scrape time |
Real example (trimmed):
{
"id": "1137399",
"title": "SI agent engineer",
"company": "Sticker Mule",
"companySlug": "sticker-mule",
"companyUrl": "https://remoteok.com/company/sticker-mule",
"companyLogo": "https://r2.remoteok.com/jobs/89697397571b48dca3445c4b2d0b8ca51789562667.jpg",
"location": "Europe",
"locations": ["Europe"],
"applicantCountries": [],
"isWorldwide": false,
"employmentType": "Full-time",
"salaryMin": 150000,
"salaryMax": 250000,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"salaryText": "$150,000 - $250,000/year",
"tags": ["golang", "ai", "javascript", "typescript"],
"benefits": ["401(k)", "Distributed team", "Async", "Medical insurance", "Paid time off"],
"industry": "Startups",
"postedAt": "2026-10-16T00:00:03.000Z",
"validThrough": "2027-01-14T00:00:03.000Z",
"isVerified": false,
"isHighlighted": true,
"isFeatured": false,
"url": "https://remoteok.com/remote-jobs/remote-si-agent-engineer-sticker-mule-1137399",
"applyUrl": "https://jobs.ashbyhq.com/stickermule/2f01bd23-9eda-446a-a56a-b530d84cb9bb?utm_source=5",
"applyInstructions": "How do you apply?\n\nApply here",
"applyKeyword": "HUMOUR",
"descriptionText": "Sticker Mule is building the most lucrative commerce platform on the Internet by combining software, manufacturing, and super intelligence in one stack. ...",
"source": "Remote OK",
"sourceUrl": "https://remoteok.com/remote-jobs/remote-si-agent-engineer-sticker-mule-1137399",
"attribution": "Job data from Remote OK (https://remoteok.com)",
"scrapedAt": "2026-10-16T01:46:29.000Z"
}
You pay $0.80 per 1,000 jobs saved ($0.0008 per job), plus a small amount of platform usage (compute and datacenter proxy traffic). A run that saves 1,000 jobs costs about $0.80 in job fees plus roughly one cent of usage. Empty searches cost nothing in job fees.
Is it legal to scrape Remote OK? The actor only reads public job listings that anyone can see without an account. Remote OK asks that you link back to the job on Remote OK and mention Remote OK as the source when you republish its jobs; every row includes sourceUrl and attribution for that. Remote OK's logo is a registered trademark, so don't reuse it without their permission.
Do I need a login or my own proxy? No. The default datacenter proxy works.
How many jobs can I get? Everything Remote OK currently lists for your searches. The whole site usually has around 1,000 to 1,500 active jobs.
Why is the salary empty for some jobs? Many employers don't state a salary. Remote OK shows an estimated range for those jobs; the actor leaves these estimates out so the salary fields only hold real ranges.
Can I schedule it or use the API? Yes. Schedule runs (for example daily with "Posted within 1 day") and read results through the API, webhooks or integrations.
applyUrl falls back to the Remote OK job page when the employer gives no direct link (Remote OK sends logged-out visitors there).postedAt is the date Remote OK shows, which can be a repost date.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
tagsarrayOptionalTags
Remote OK tags such as python, react, design, marketing, customer support. Each line is its own search. Put several tags on one line, separated by commas, to require all of them (for example python, django). Leave tags, keywords and URLs empty to get every job on Remote OK.
searchQueriesarrayOptionalSearch keywords
Free-text searches, for example data engineer or product designer. Each keyword is its own search.
startUrlsarrayOptionalRemote OK URLs
Remote OK pages to scrape: tag pages (remoteok.com/remote-python-jobs, remoteok.com/remote-dev+javascript-jobs), country pages (remoteok.com/remote-jobs-in-canada), company pages (remoteok.com/company/toptal), search links (remoteok.com/?search=sales) or single job links.
maxResultsintegerOptionaldefault 20Max results
Maximum number of jobs to save across all searches. Use 0 for every job Remote OK lists for your searches.
All filters are optional and combine with AND.
locationsarrayOptionalLocations
Keep jobs open to candidates in any of these places: country codes or names (US, Germany), regions (Europe, North America, Latin America, Asia, Africa, Middle East, Oceania) or Worldwide.
minSalaryintegerOptionalMinimum salary (USD per year)
Keep jobs whose salary reaches at least this amount per year, for example 100000.
postedWithinDaysintegerOptionalPosted within (days)
Keep only jobs posted in the last N days.
benefitsarrayOptionalBenefits
Keep jobs that offer all of these benefits.
onlyWithSalarybooleanOptionaldefault falseOnly jobs with a salary
Skip jobs that do not state a salary range.
excludeKeywordsarrayOptionalExclude title keywords
Skip jobs whose title contains any of these words, for example intern or junior.
sortByenumOptionaldefault "default"Sort by
Order in which Remote OK returns jobs. Matters when Max results is smaller than the number of matches.
maxResultsPerSearchintegerOptionaldefault 0Max results per search
Cap for each tag, keyword or URL on its own. 0 means no per-search cap.
includeDescriptionbooleanOptionaldefault trueInclude description
Save the full job description as plain text.
includeHtmlbooleanOptionaldefault trueInclude description HTML
Also save the description as HTML.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies work well for Remote OK.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| id | string | null | Remote OK job id |
| title | string | null | Job title |
| company | string | null | Company name |
| companySlug | string | null | Remote OK company slug |
| companyUrl | string | null | Company page on Remote OK |
| companyLogo | string | null | Company logo URL |
| location | string | null | Where candidates may live, as shown on Remote OK |
| locations | array | Location labels |
| applicantCountries | array | Countries named in the job's applicant requirements |
| isWorldwide | boolean | null | Open to candidates anywhere |
| employmentType | string | null | Full-time, Part-time, Contract, ... |
| salaryMin | number | null | Lowest salary |
| salaryMax | number | null | Highest salary |
| salaryCurrency | string | null | Salary currency |
| salaryPeriod | string | null | year or hour |
| salaryText | string | null | Salary range as text |
| tags | array | Remote OK tags |
| benefits | array | Benefits listed by the employer |
| industry | string | null | Industry |
| postedAt | string | null | When the job was posted (UTC) |
| validThrough | string | null | When the listing expires (UTC) |
| isVerified | boolean | null | Verified job |
| isHighlighted | boolean | null | Highlighted listing |
| isFeatured | boolean | null | Pinned to the top of Remote OK |
| url | string | null | Job page on Remote OK |
| applyUrl | string | null | Employer apply link when given, else the Remote OK job page |
| applyInstructions | string | null | How to apply, as written by the employer |
| applyKeyword | string | null | Code word Remote OK asks applicants to mention |
| descriptionText | string | null | Full description as plain text |
| descriptionHtml | string | null | Full description as HTML |
| source | string | null | Data source (Remote OK) |
| sourceUrl | string | null | Source page on Remote OK |
| attribution | string | null | Attribution text for Remote OK |
| scrapedAt | string | null | When the job was scraped (UTC) |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Job | One saved Remote OK job | $0.0008 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('openrole/remoteok-scraper').call({
"tags": [
"python"
],
"searchQueries": [],
"startUrls": [],
"maxResults": 20,
"locations": [],
"excludeKeywords": [],
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run openrole/remoteok-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=openrole/remoteok-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Jobs by tag that list a salary, with descriptions.
Free-text remote job search.
Jobs from a tag page URL without descriptions.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.