Remotive Jobs Scraper – Salaries & Filters avatar

Remotive Jobs Scraper – Salaries & Filters

Pricing

from $0.02 / 1,000 result extracteds

Go to Apify Store
Remotive Jobs Scraper – Salaries & Filters

Remotive Jobs Scraper – Salaries & Filters

Export public Remotive remote jobs across 30 categories with keyword, company, location, job type, salary, and date filters plus full descriptions.

Pricing

from $0.02 / 1,000 result extracteds

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

5

Monthly active users

a day ago

Last modified

Share

Export the current public Remotive remote-job feed across 30 categories. Filter by keyword, company, location, category, job type, disclosed salary, or publication window, and receive clean descriptions, salary structure, seniority hints, tags, monitoring-ready IDs, and canonical Remotive links.

Use this Actor for remote hiring intelligence, job alerts, talent-market research, salary analysis, lead generation, newsletters, job boards, spreadsheets, APIs, MCP tools, and AI workflows. Results are available as JSON, CSV, Excel, XML, RSS, or through the Apify Dataset API.

At a glance

  • 30 Remotive categories: software, AI, data, design, marketing, sales, support, finance, HR, QA, operations, legal, medical, education, and more.
  • Full-record keyword matching: search title, company, category, job type, location, salary, tags, and description—not only the upstream title/description search.
  • Salary-ready output: keep original salary text and get parsed minimum, maximum, currency, and period when the text supports them.
  • Monitoring controls: use inclusive publication dates, listing age, stable job IDs, and canonical URLs for scheduled workflows.
  • Reliable upstream handling: retries temporary network, rate-limit, and server failures; detects malformed or changed API responses; records a RUN_SUMMARY.
  • Backward compatible: existing inputs and output fields remain available; all new controls and fields are additive.

What can it do?

Remotive Jobs Scraper converts the current public Remotive feed into analysis-ready job rows. It validates the source response, applies every selected filter consistently, keeps source links for attribution, stores one row per matching job, and reports whether an empty dataset was a legitimate filtered search or a failed source request.

Ready-to-run examples

Open a saved example to prefill the input, then adjust its filters for your workflow.

Common workflows

  • Track fresh remote roles by skill, category, job type, or region.
  • Find companies actively hiring remotely for recruiting or sales research.
  • Build salary-transparency datasets from listings with disclosed compensation.
  • Feed job newsletters, alerts, dashboards, CRMs, ATS tools, or job boards.
  • Compare demand for skills, seniority levels, functions, and locations over time.
  • Schedule recurring runs and deduplicate downstream by id or url.

Input configuration

All filters are optional. Multiple filters are combined with AND logic.

SettingJSON keyDescriptionExample
KeywordsearchCase-insensitive match across all useful text fields.python
CategorycategoryPartial Remotive category name or slug.Software Development
CompanycompanyPartial company-name match.GitLab
Candidate locationcandidateLocationMatch Remotive's candidate-location requirement.Europe
Job typesjobTypesInclude one or more job types.["full_time", "contract"]
Require salaryrequireSalaryKeep only listings with disclosed salary text.true
Minimum salaryminimumSalaryMinimum parsed salary in the listing's own period.100000
Maximum jobslimitStop after this many matching rows; 1–1,000.50
Maximum agemaxAgeDaysKeep jobs no older than this many days.14
Published afterpublishedAfterInclusive date or ISO timestamp.2026-07-01
Published beforepublishedBeforeInclusive date or ISO timestamp.2026-07-31
Description HTMLincludeDescriptionHtmlAdd original HTML alongside clean text.false
Run safety limitrunTimeSecsStop retrying before the platform timeout; 30–270 seconds.240

Example input

{
"search": "python",
"category": "Software Development",
"candidateLocation": "Europe",
"jobTypes": ["full_time", "contract"],
"requireSalary": true,
"publishedAfter": "2026-07-01",
"limit": 50,
"includeDescriptionHtml": false
}

Output fields

Each dataset row represents one public Remotive listing.

FieldDescription
idStable Remotive job ID
titleJob title
companyNameHiring company
companyLogoUrlPublic company-logo URL when available
categoryRemotive category
jobTypeOriginal Remotive job type
jobTypeNormalizedNormalized job type for filtering and analysis
candidateRequiredLocationCandidate region or location requirement
salaryOriginal disclosed salary text, or null
salaryMin, salaryMaxParsed salary endpoints when detectable
salaryCurrencyDetected USD, EUR, or GBP, or null
salaryPeriodDetected hour, day, week, month, or year
publicationDateOriginal publication timestamp
publicationDateIsoNormalized UTC timestamp
seniorityTitle/tag-derived seniority hint when detectable
tagsRemotive skills and topic tags
descriptionTextClean full-description text
descriptionHtmlOptional original HTML description
url, sourceUrlCanonical Remotive listing URL for attribution
fetchedAtActor fetch timestamp

Example output

{
"id": 2091062,
"title": "Senior Product Engineer (Fullstack)",
"companyName": "Clipster",
"companyLogoUrl": "https://remotive.com/job/2091062/logo",
"category": "Software Development",
"jobType": "full_time",
"jobTypeNormalized": "full time",
"candidateRequiredLocation": "Europe, UK, Germany, France, European timezones",
"salary": "$120k - $170k / year",
"salaryMin": 120000,
"salaryMax": 170000,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"publicationDate": "2026-07-13T07:05:10",
"publicationDateIso": "2026-07-13T07:05:10.000Z",
"seniority": "senior",
"tags": ["golang", "react", "AI/ML"],
"descriptionText": "About the company...",
"url": "https://remotive.com/remote-jobs/software-development/senior-product-engineer-fullstack-2091062",
"sourceUrl": "https://remotive.com/remote-jobs/software-development/senior-product-engineer-fullstack-2091062",
"fetchedAt": "2026-07-14T12:00:00.000Z"
}

Run summary and empty results

Every completed request writes RUN_SUMMARY to the default key-value store. It includes upstream and saved counts, malformed/duplicate/filter counts, and status:

  • SUCCEEDED: one or more rows were saved.
  • EMPTY_FILTERED: the upstream feed was valid, but no current listing matched all filters. This is a successful empty search, not an upstream failure.
  • FAILED: input, network, rate-limit, schema, storage, or billing processing failed. The Actor run also fails instead of reporting a misleading green empty result.

Pricing

This Actor uses pay-per-event pricing. The values below exactly match the current Actor pricing configuration; active pricing is not estimated from database notes.

EventWhat is chargedFreeBronzeSilverGoldPlatinumDiamond
startOnce after input validation and before the upstream request$0.005$0.005$0.005$0.005$0.005$0.005
resultPer job row stored in the dataset$0.043783 / 1K$0.038072 / 1K$0.029696 / 1K$0.022843 / 1K$0.015229 / 1K$0.010660 / 1K

Apify may separately charge platform usage for compute, storage, or data transfer according to your plan. Check the run and Pricing tab for the exact amount shown to your account.

Accuracy and salary notes

  • Salary parsing is best effort. A listing can mix currencies, periods, approximate values, or prose that cannot be normalized safely; original salary text is always retained.
  • minimumSalary compares the parsed number in the listing's own period. Do not mix hourly and annual listings in one numeric comparison unless your downstream workflow normalizes periods.
  • seniority is an additive title/tag-derived hint, not an employer-certified level.
  • Fields can be empty when the employer did not publish them.

Source limits and attribution

This Actor reads Remotive's official public remote-jobs API. Remotive states that public API jobs are delayed by 24 hours, advises no more than four fetches per day, and may block excessive traffic above two requests per minute. The Actor performs one feed request per run and retries temporary limits with backoff, but schedules should still respect those limits.

Remotive also requires downstream displays to link to the supplied Remotive URL and identify Remotive as the source. Keep sourceUrl when republishing permitted data and review the official Remotive API terms and documentation.

API examples

cURL

curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~remotive-jobs-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"search":"python","candidateLocation":"Europe","publishedAfter":"2026-07-01","limit":50}'

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/remotive-jobs-scraper').call({
search: 'python',
candidateLocation: 'Europe',
limit: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("fetch_cat/remotive-jobs-scraper").call(run_input={
"search": "python",
"candidateLocation": "Europe",
"limit": 50,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

MCP and AI agents

Use the Actor through the official Apify MCP server:

$claude mcp add apify --transport http https://mcp.apify.com?tools=fetch_cat/remotive-jobs-scraper
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=fetch_cat/remotive-jobs-scraper"
}
}
}
https://mcp.apify.com?tools=fetch_cat/remotive-jobs-scraper

Example prompts:

  • "Export current Remotive software jobs that accept candidates in Europe."
  • "Find Remotive jobs with disclosed annual salary and Python in any field."
  • "Return Remotive contract roles published since July 1, with clean descriptions."

Use the same JSON keys shown in the input table. Agent-readable input, output, and dataset schemas are included in the published Actor build.

FAQ

Why did my run return zero rows?

Your filters may not match the current active public feed. Open RUN_SUMMARY: EMPTY_FILTERED means the feed was healthy and zero listings matched. Broaden the keyword, category, location, salary, or date window.

Does keyword search include company names and tags?

Yes. The Actor fetches the active feed once and applies keyword matching locally across title, company, category, job type, location, salary, tags, and description.

Can I monitor only newly published jobs?

Yes. Use publishedAfter or maxAgeDays, schedule the Actor, and deduplicate by id or url downstream.

Are all salaries annual and in USD?

No. Salary period and currency vary by listing. Use salaryCurrency and salaryPeriod, and keep the original salary text for auditability.

Can I export CSV or Excel?

Yes. Download the dataset as CSV, JSON, Excel, XML, RSS, or access it through the API.

Support

If a run fails, returns an unexpected empty dataset, or a field looks wrong, open an issue from the Actor page. Include the run ID or URL, input JSON, one reproducible public URL or search, expected output, actual output, and RUN_SUMMARY.

Privacy and responsible use

This Actor processes public Remotive job listings and stores results in your Apify run storage. FetchCat does not use inputs or outputs for advertising or model training and does not retain them outside Apify run storage except when you explicitly share details for support. Use the Actor lawfully, comply with Remotive's API terms and attribution requirements, preserve canonical source links when required, and avoid unnecessary personal or sensitive data.