RemoteOK Jobs Scraper
parseforge/remoteok-scraper
JobsAutomationDeveloper tools
Scrapes remote job listings from RemoteOK filtered by a job title or keyword. Returns each listing as a flat row with title, company, tags, salary range, and apply URL.
- Total users
- 1
- Monthly active
- 0
- Total runs
- 103
- Bookmarked
- 0
- Rating
- Not rated yet
- Last modified
- 9 days ago
Overview
RemoteOK Jobs Scraper
Scrape remote job listings from RemoteOK by keyword, up to a million per run. Every listing includes the job title, company, tags, salary range, and apply URL. Export to CSV, JSON, Excel, or XML.
RemoteOK is a leading board for digital nomad and remote work jobs, but manually copying listings is slow and error-prone. This actor reads the public job feed directly, filters it by your search term, and returns each match in a clean, flat schema. No API key, no browser automation overhead.
| Who uses it | What they scrape RemoteOK for |
|---|---|
| Recruiters | Build a live pipeline of remote candidates for a specific tech stack. |
| Job board aggregators | Ingest fresh remote listings into a meta-search platform every hour. |
| Market analysts | Track which remote roles and skills are trending in salary data. |
| Job seekers | Filter and export matching remote jobs to review offline. |
What it does
This Actor collects remote job listings from RemoteOK filtered by a job title or keyword, and returns each one as a flat row.
- ๐ Keyword filter: match against job title, company name, and skill tags with one search term.
- ๐ Structured output: every row returns title, company, tags, salary range, and the direct apply URL.
- โก Fast public-feed reading: no browser rendering, so a full run completes in seconds.
- ๐ฆ Bulk collection: set maxItems up to 1,000,000 to pull the entire matching feed.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with RemoteOK data
๐ Track remote hiring trends.
A market analyst runs the actor daily for "AI" and "machine learning" to measure which companies are hiring and what salary bands they advertise.
๐ค Power a niche job board.
A developer schedules the actor every hour for "typescript" and "react" to keep their curated front-end job board populated with fresh RemoteOK listings.
๐ Build a recruitment shortlist.
A recruiter scrapes 500 listings for "DevOps" every Monday morning, exports the CSV, and filters by company and salary to prioritize outreach.
๐ Research global remote salaries.
An analyst collects all listings without a keyword filter, then groups the salary data by tag to publish a quarterly remote-salary report.
Why choose this scraper
| What you get | |
|---|---|
| No API registration | Reads the public RemoteOK feed with zero OAuth or app setup. |
| Fixed flat schema | Every job arrives with the same columns, ready for a database or spreadsheet. |
| Salary when listed | Captures the salary range whenever the poster includes it. |
| Direct apply link | Each row contains the URL that sends the candidate straight to the application. |
How it compares
This actor focuses exclusively on RemoteOK for a lightweight, fast feed read, while the competitors below either bundle RemoteOK with other boards or offer a different feature set.
| Feature | ParseForge | Jobs Board Scraper: Indeed, Reed, Adzuna, RemoteOK & More | RemoteOk Job Scraper | RemoteOK [๐ฐ$1] - Remote Jobs, Tags & Salaries |
|---|---|---|---|---|
| Dedicated RemoteOK-only scraper | Yes | Not listed | Yes | Yes |
| Keyword filter on title, company, and tags | Yes | Yes | Not listed | Yes |
| Salary range in output | Yes | Yes | Not listed | Yes |
| No browser rendering (fast feed read) | Yes | Not listed | Not listed | Not listed |
| Up to 1,000,000 listings per run | Yes | Not listed | Not listed | Not listed |
Configure the run
Drive the Actor with a job title or keyword and a maximum number of listings; the filter runs as each job is read so only matches reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{
"maxItems": 10
}
A larger pull:
{
"maxItems": 200
}
Pricing
Pay-per-result: $0.021 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $2.10 |
| 1,000 results | $21.00 |
| 10,000 results | $210.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the RemoteOK Jobs Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to RemoteOK through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/remoteok-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
First, check your searchTerm spelling. Try leaving it empty to confirm the feed is reachable. If the empty run also returns nothing, the RemoteOK feed structure may have changed; check the actor logs for any parsing errors.
The run finished but returned fewer results than my maxItems.
This is expected when the feed contains fewer matching listings than your maxItems value. Try broadening your searchTerm or removing it entirely to pull more jobs.
Some fields are empty in my dataset.
RemoteOK listings do not always include a salary range or every tag. Empty cells mean the original poster left that field blank, not that the actor missed data.
The actor is timing out on very large runs.
Set a lower maxItems value and run the actor more frequently, or split your keyword list into separate runs. The Apify platform also lets you increase the timeout in the actor settings.
I need data from another job board alongside RemoteOK.
This actor is dedicated to RemoteOK for a clean, predictable schema. For multi-board scraping, consider a separate multi-source actor or run several single-source actors in parallel.
FAQ
| Question | Answer |
|---|---|
| Can I scrape all RemoteOK jobs without a keyword? | Yes. Leave the searchTerm field empty and set maxItems to the number you need. The actor will return every listing it reads from the feed up to that limit. |
| Does this actor require a RemoteOK account or API key? | No. It reads the same public feeds your browser loads, so there is no registration, OAuth, or API key required. |
| What does the searchTerm filter match against? | The searchTerm checks the job title, the company name, and the skill tags attached to each listing. It is a broad keyword match, not an exact phrase search. |
| How fast is a typical run? | Because the actor reads the lightweight public feed without a headless browser, a run of a few hundred listings usually completes in seconds. |
| Can I get the full job description text? | The actor returns the fields visible in the listing feed: title, company, tags, salary range, and apply URL. The full body description is not included in the feed. |
| Does the actor capture the salary if it is not listed? | When a RemoteOK listing does not include a salary range, that field will be empty in your dataset. The actor only captures what the poster provides. |
| Can I schedule this actor to run automatically? | Yes. After publishing the actor, you can set a schedule in the Apify Console to run it every hour, day, or week and receive fresh results. |
| What export formats are supported? | You can export your dataset to CSV, JSON, Excel, or XML directly from the Apify Console or via the API. |
| Is there a limit on how many jobs I can scrape? | You set the limit with the maxItems field, up to 1,000,000 per run. The actual number returned depends on how many listings match your searchTerm. |
| Does this actor handle pagination automatically? | Yes. It reads through the feed pages until it reaches your maxItems limit or the feed ends, with no extra configuration needed. |
Related actors
- upwork-scraper: Use when you need freelance project listings with client history instead of full-time remote jobs.
Browse the full ParseForge collection for more scrapers.
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by RemoteOK. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| maxItems | integer | How many job listings to collect per run. | 10 |
| searchTerm | string | Filter jobs by keyword (matches against job title, company name, and tags). Leave empty to return all jobs. | not set |
Pricing
from $19.00 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| result | Single result in the default dataset. | $0.019 to $0.021 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~remoteok-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
No reviews yet. Be the first.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
