Remote Jobs API: RemoteOK & Jobicy Postings
Pricing
from $1.05 / 1,000 job postings
Remote Jobs API: RemoteOK & Jobicy Postings
Merged, de-duplicated remote job postings from the RemoteOK and Jobicy public APIs, normalized to one schema with salary, tags and location. Optional keyword filter and only-new mode for hourly schedules. No login or API key.
Pricing
from $1.05 / 1,000 job postings
Rating
0.0
(0)
Developer
Tabulary
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
What does Remote Jobs API: RemoteOK & Jobicy Postings do?
This Actor returns remote jobs merged from two official, keyless public APIs — RemoteOK and Jobicy — normalized into one clean schema with salary, tags, employment type and location. It's built for job boards, newsletters, recruiters, market researchers and AI agents that want a remote jobs feed or remote job postings without scraping either site or juggling two different response shapes. Postings that appear on both boards are de-duplicated by company and title, and every record keeps a link back to its original source page, as both APIs' terms require.
What you get
- Title, company, location, employment type and salary (min, max, currency, period) where the source discloses it —
nullotherwise, never guessed. - Category/skill tags, posting date, the source board, and both the canonical listing URL and the apply link.
- A keyword filter across title, company and tags, and a choice of one or both boards per run.
- An only-new-since-last-run mode for hourly or daily schedules, so repeat runs deliver just the new postings.
- JSON, CSV or Excel export, Google Sheets, and use from AI agents through the Apify MCP server.
How much does it cost?
You pay per job posting saved, with no monthly fee: $1.50 per 1,000 postings on Apify's free plan, and 10–40% less on paid Apify plans. Each run also costs $0.001 to start. Apify's free plan includes $5 of credit every month, enough for about 3,300 postings. Prices as of October 2026; the price shown on this page is the one that applies.
| Use | Postings | Cost on the free plan |
|---|---|---|
| One search | 100 | about $0.15 |
| A daily scheduled run, about 50 new postings a day | about 1,500 a month | about $2.25 a month |
Set Maximum cost per run to cap any run; the Actor stops cleanly at the cap and keeps everything it saved.
Ready-made inputs
Paste one of these into the JSON input tab, or set the same fields in the form. Each returned results in a live test on 22 October 2026.
All new remote jobs from both boards, newest first · open this example
{ "maxItems": 100 }
Remote Python developer jobs · open this example
{ "keyword": "python", "maxItems": 100 }
Daily alert: new remote designer jobs (schedule it every morning) · open this example
{ "keyword": "designer", "onlyNewSinceLastRun": true, "maxItems": 200 }
Remote marketing jobs · open this example
{ "keyword": "marketing", "maxItems": 100 }
Job alerts: only new since the last run
- Set your keyword and sources and turn on Only new since last run.
- Save it as a task and add an Apify Schedule (hourly or daily).
- Connect the output: Apify's built-in Slack and email notifications, a webhook, or Make, Zapier and n8n to post each new job to a channel, a sheet or a job board.
Each run returns only postings that earlier runs with the same keyword and sources have not delivered, so you pay only for new ones. Postings cut off by your maximum results or spending limit come in the next run.
Input
| Field | Type | Default | Description |
|---|---|---|---|
sources | array | ["remoteok", "jobicy"] | Which boards to pull from. |
keyword | string | "" (none) | Keep only postings whose title, company or tags contain this word. |
maxItems | integer | 30 | Stop after this many postings. Each saved posting is one billable item. |
onlyNewSinceLastRun | boolean | false | Skip postings already saved by an earlier run with the same sources and keyword. |
Output
One dataset item per job posting. A real item from the local test run:
{"source": "jobicy","source_id": "156261","title": "Mid-Market Account Executive","company": "MaintainX","company_logo": "https://jobicy.com/data/server-nyc0409/galaxy/mercury/2025/08/f0177662-221.png","location": "USA","employment_type": "Full-Time","tags": ["Sales"],"salary_min": 153000,"salary_max": 210000,"salary_currency": "CAD","salary_period": "yearly","posted_at": "2026-10-21T18:39:51.000Z","url": "https://jobicy.com/jobs/156261-mid-market-account-executive-7","apply_url": "https://jobicy.com/jobs/156261-mid-market-account-executive-7","description": "MaintainX is a leading mobile-first work execution platform..."}
source is "remoteok" or "jobicy". salary_min/salary_max/salary_currency/salary_period are null when the employer didn't disclose a salary (RemoteOK rarely states a currency or period, so those two are always null for RemoteOK records). posted_at is ISO 8601. url is always the source's own job page, as RemoteOK's and Jobicy's API terms require; apply_url points at the employer's application page when the source provides one, otherwise it matches url. Any e-mail addresses or phone numbers inside description are replaced with [email removed] / [phone removed].
Use it from AI agents
Add the Actor to Claude, ChatGPT, Cursor or any MCP client through the Apify MCP server
(https://mcp.apify.com?tools=tabulary/remote-jobs-feed). Ask in plain language, for
example: "Find remote Python jobs posted in the last week." The agent fills in the input and
gets structured postings back.
Use it from code
curl -X POST "https://api.apify.com/v2/acts/tabulary~remote-jobs-feed/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"sources": ["remoteok", "jobicy"], "keyword": "python", "maxItems": 50}'
The same works with the Apify Python and JavaScript clients. See the API tab for details.
Data source and limits
- RemoteOK API: keyless, returns its latest roughly 100 open postings per request, no further pagination. RemoteOK's terms require a followed link back to the RemoteOK URL and crediting RemoteOK as a source, which this Actor does by keeping each RemoteOK record's
urlpointed at its RemoteOK listing page. - Jobicy API: keyless, covers postings published in the last 7 days with cursor pagination. Jobicy's public API always returns its own job-page URL (a paid Jobicy key is needed for a direct employer apply link), which satisfies Jobicy's requirement that apply links keep pointing at the original Jobicy job page.
- Both sources are polled at most about once per second; the Actor backs off and retries on rate-limit or server errors.
- No personal data is requested. Any e-mail or phone number appearing in a posting's free-text description is masked.
- Not affiliated with or endorsed by RemoteOK or Jobicy.
Other Tabulary tools
Clean data from official and public sources, priced per result:
- UK Tenders API: Contracts Finder & Find a Tender
- EU Tenders API: TED Public Procurement Notices
- SAM.gov Federal Contract Opportunities
- Airport METAR & TAF Weather
- Company Job Postings: Greenhouse, Lever, Ashby & Workable
FAQ
Is this data official? Yes — every record comes straight from RemoteOK's or Jobicy's own public API, not a scrape of their web pages.
How fresh is it? RemoteOK's API reflects its current ~100 newest open postings; Jobicy's covers the last 7 days. Run the Actor on a schedule with Only new since last run turned on for a live feed.
Why are some salary fields null? Because the employer didn't disclose them. RemoteOK rarely states a currency or pay period at all, so those two fields are always null for RemoteOK records.
Something broke? Open an issue on the Issues tab. The Actor is tested daily.
Changelog
- 2026-10-22: First version: merged RemoteOK and Jobicy feeds, de-duplicated by company and title, keyword filter, and an only-new-since-last-run monitor for scheduled alerts.
About Tabulary
This tool is part of Tabulary: clean tables from official public sources. Every Tabulary tool uses the source's official API or open data where one exists, collects no personal data, and is tested on Apify every day. Questions or ideas? Open an issue on the Issues tab.