# Jobicy Remote Jobs Scraper (`fetch_cat/jobicy-remote-jobs-scraper`) Actor

Scrape remote job listings from Jobicy by keyword, category, region, and job type.

- **URL**: https://apify.com/fetch\_cat/jobicy-remote-jobs-scraper.md
- **Developed by:** [Hanna Nosova](https://apify.com/fetch_cat) (community)
- **Categories:** Jobs, Lead generation, Automation
- **Stats:** 3 total users, 1 monthly users, 94.3% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.02 / 1,000 job listing saveds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Jobicy Remote Jobs Scraper

Collect fresh remote job listings from Jobicy and export clean job data to CSV, JSON, Excel, Google Sheets, or your own database.

Use this actor to monitor remote hiring by keyword, industry, region, job type, seniority, and published date without building a custom integration. It returns structured listings with company details, Jobicy job URLs, categories, seniority, publish dates, salary values when published, excerpts, and optional full descriptions.

### At a glance

- **Extracts:** remote job titles, companies, logos, industries, job types, region labels, seniority, publish dates, salary values when published, excerpts, descriptions, and Jobicy job URLs.
- **Inputs:** keyword tags, Jobicy category slug, geo/region slug, job type and seniority filters, published-date filter, result limit, and description toggle.
- **Best for:** remote job boards, recruiting research, hiring-signal lead generation, job alerts, and labor-market monitoring.
- **Exports:** Apify dataset rows downloadable as CSV, JSON, Excel, XML, RSS, or available through the API.
- **Login:** no Jobicy account is required for public listings.

### Ready-to-run examples

Use these saved Store examples as starting points. Open any example to prefill the Actor input, then adjust URLs, keywords, limits, or filters for your own run.

- **[Export remote jobs with full descriptions](https://apify.com/fetch_cat/jobicy-remote-jobs-scraper/examples/remote-jobs-with-full-descriptions)**
- **[Scrape remote sales jobs in LATAM](https://apify.com/fetch_cat/jobicy-remote-jobs-scraper/examples/remote-sales-jobs-latam)**
- **[Find remote design jobs on Jobicy](https://apify.com/fetch_cat/jobicy-remote-jobs-scraper/examples/remote-design-jobs)**
- **[Scrape remote contract jobs from Jobicy](https://apify.com/fetch_cat/jobicy-remote-jobs-scraper/examples/remote-contract-jobs)**
- **[Scrape remote data science jobs](https://apify.com/fetch_cat/jobicy-remote-jobs-scraper/examples/remote-data-science-jobs)**
- **[Find remote marketing jobs in Europe](https://apify.com/fetch_cat/jobicy-remote-jobs-scraper/examples/remote-marketing-jobs-europe)**
- **[View all ready-to-run examples](https://apify.com/fetch_cat/jobicy-remote-jobs-scraper/examples)** (8 examples)

### What can it do?

- **Find public remote jobs:** collect fresh listings from Jobicy by keyword, category, region, and job type.
- **Capture company context:** save company names, logos, job titles, industries, levels, regions, and apply URLs.
- **Control depth:** include full HTML descriptions only when your workflow needs richer job text.
- **Export clean rows:** send results to CSV, JSON, Excel, XML, RSS, dashboards, or API workflows.
- **Schedule monitoring:** run recurring searches for job-market tracking or hiring-signal alerts.

### Who is it for?

- **Recruiters:** track fresh remote openings in a niche.
- **Job boards and aggregators:** fill a remote-work feed from public listings.
- **Lead generation teams:** find companies actively hiring.
- **Labor-market researchers:** compare roles by region or industry.
- **Career coaches and job seekers:** build alerts from remote listings.

### Why use this actor?

- **No login:** the actor reads public Jobicy listings.
- **Simple filters:** add tags, category, region, job type, and a result limit.
- **Normalized output:** join, filter, and deduplicate rows without custom parsing.
- **Source URLs included:** every row keeps Jobicy URLs and apply URLs for review or application workflows.

### What data can you extract?

Each dataset row is one remote job listing.
The default view highlights the fields most useful for sourcing and analysis.
Turn on full descriptions only when you need rich job text.
Core fields are `id`, `url`, `title`, `companyName`, `jobTypes`, `geo`, `level`, `publishedAt`, and the source-provided salary fields when available.

### Output fields

| Field | Description |
| --- | --- |
| `id` | Jobicy job ID |
| `url` | Original Jobicy job URL |
| `jobSlug` | Jobicy slug |
| `title` | Job title |
| `companyName` | Hiring company |
| `companyLogo` | Company logo URL when available |
| `industries` | Jobicy industry labels |
| `jobTypes` | Job type labels such as Full-Time or Contract |
| `geo` | Region or location label |
| `level` | Seniority label when available |
| `excerpt` | Short job summary |
| `description` | Optional full HTML description |
| `publishedAt` | Published date from Jobicy |
| `applyUrl` | Jobicy job URL; Jobicy's public feed does not promise a separate external application destination |
| `salaryMin` / `salaryMax` | Published salary range when Jobicy provides it |
| `salaryCurrency` / `salaryPeriod` | Currency and period for the published salary range when available |
| `source` | Source marker |
| `scrapedAt` | Timestamp when the actor saved the item |

### Pricing

This Actor uses Apify pay-per-event pricing. The prices below come from the current Actor pricing configuration. Apify public plans map to Store discount tiers, so the table shows both the user-facing plan context and the pricing tier name. The final price shown in Apify depends on the user account plan and any custom agreement.

| Event | What is charged | Price |
| --- | --- | ---: |
| `start` | One-time fee per run | $0.005 |
| `item` | Per Jobicy job listing saved to the dataset | Free $0.000028746; Bronze $0.000024997; Silver $0.000019498; Gold $0.000014998; Platinum $0.0000099988; Diamond $0.0000069991 |

Apify may also charge platform usage for compute, storage, proxies, or data transfer outside this Actor pricing. Check the Actor run and the Apify Pricing tab for the exact cost shown to your account.

### How to scrape Jobicy remote jobs

1. Open the actor on Apify.
2. Add one or more keyword tags such as `python`, `react`, or `seo`.
3. Optionally add an industry category slug and region slug.
4. Set the maximum number of jobs to save.
5. Run the actor and download the dataset in your preferred format.

### Input configuration

| Setting | JSON key | Description |
| --- | --- | --- |
| Keywords / tags | `keywords` | Jobicy tag keywords such as `python`, `react`, `seo`, or `sales`. Leave empty for newest remote jobs. |
| Industry category slug | `category` | Optional Jobicy industry slug such as `dev`, `marketing`, `data-science`, `business`, or `supporting`. Legacy `software-engineering` maps to `dev`. |
| Region / geo slug | `geo` | Optional region filter such as `usa`, `europe`, `emea`, `apac`, `latam`, or `worldwide`. |
| Job types | `jobTypes` | Optional client-side job type filters such as `Full-Time`, `Part-Time`, `Contract`, `Freelance`, or `Internship`. |
| Seniority levels | `jobLevels` | Optional client-side level filters such as `Senior`, `Mid-Level`, or `Entry-Level`. |
| Maximum jobs | `maxItems` | Maximum number of job listings saved to the dataset. |
| Include full descriptions | `includeDescription` | Include full HTML job descriptions when available. Turn off for lighter exports. |
| Published on or after | `postedSince` | Optional ISO date or timestamp for fresh-job monitoring, such as `2026-07-01`. |
| Allow an empty result | `allowEmptyResults` | Keep off by default so an unexpected empty result fails clearly. Turn it on only for a deliberately narrow search that may have no matches. |

### Example input

```json
{
  "keywords": ["python"],
  "category": "dev",
  "geo": "usa",
  "jobTypes": ["Full-Time"],
  "jobLevels": ["Senior"],
  "postedSince": "2026-07-01",
  "maxItems": 25,
  "includeDescription": false
}
```

### Example output

```json
{
  "id": 147705,
  "url": "https://jobicy.com/jobs/147705-cpq-architect",
  "title": "CPQ Architect",
  "companyName": "Autodesk",
  "industries": ["Software Engineering"],
  "jobTypes": ["Full-Time"],
  "geo": "APAC, Australia",
  "level": "Senior",
  "source": "jobicy"
}
```

### Tips for best results

Start broad, then narrow by industry or region.
Use multiple keyword runs when you want independent monitoring streams.
Keep `includeDescription` off for faster lightweight exports.
Use `postedSince` with Apify schedules to refresh results daily or weekly.
Deduplicate downstream by `id` or `url`.

### Integrations

Send new jobs to Google Sheets for recruiter review.
Pipe dataset items into Airtable or Notion for sourcing workflows.
Connect webhooks to Slack alerts when matching jobs appear.
Export JSON to a job board backend or search index.
Use the Apify API from your data warehouse ingestion job.

### API usage

#### Node.js

```js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/jobicy-remote-jobs-scraper').call({
  keywords: ['python'],
  category: 'dev',
  geo: 'usa',
  maxItems: 25,
});
console.log(run.defaultDatasetId);
```

#### Python

```python
from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("fetch_cat/jobicy-remote-jobs-scraper").call(run_input={
    "keywords": ["python"],
    "category": "dev",
    "geo": "usa",
    "maxItems": 25,
})
print(run["defaultDatasetId"])
```

#### cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~jobicy-remote-jobs-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"keywords":["python"],"category":"dev","geo":"usa","maxItems":20}'
```

### MCP and AI agents

Use Apify MCP to run this actor from Claude Code, Claude Desktop, or other MCP-compatible tools.
MCP URL: `https://mcp.apify.com/?tools=fetch_cat/jobicy-remote-jobs-scraper`

Claude Code quick add:

```bash
claude mcp add apify-jobicy-remote-jobs --url "https://mcp.apify.com/?tools=fetch_cat/jobicy-remote-jobs-scraper"
```

Claude Desktop JSON config:

```json
{
  "mcpServers": {
    "apify-jobicy-remote-jobs": {
      "url": "https://mcp.apify.com/?tools=fetch_cat/jobicy-remote-jobs-scraper"
    }
  }
}
```

Example prompts:

- "Run the Jobicy scraper for Python jobs in the USA and summarize the companies hiring."
- "Find remote marketing jobs and export the dataset URL."
- "Schedule a weekly scrape for full-time data science roles."

### Legality and responsible use

This actor extracts publicly available job listing data.
Respect Jobicy attribution expectations by keeping source links in your product or workflow.
Do not misrepresent job listings, companies, or application links.
Review your own compliance requirements before storing or republishing data.

### Troubleshooting

Jobicy returns at most 100 source results per keyword query. Use several focused keywords for broader coverage; the Actor reports the source limit in `RUN_SUMMARY`.
If you receive fewer results than requested, the selected filters may have limited current listings.
If a category returns broad results, verify that you used a Jobicy industry slug rather than a display label.
If descriptions are large, turn off `includeDescription` for lighter exports.
If scheduled runs repeat rows, deduplicate by `id` in your destination system.

### Related actors

- [Ashby Jobs Scraper](https://apify.com/fetch_cat/ashby-jobs-scraper)
- [ATS Jobs Scraper](https://apify.com/fetch_cat/ats-jobs-scraper)
- [Remote.com Jobs Scraper](https://apify.com/fetch_cat/remote-dot-com-jobs-scraper)
- [RemoteOK Jobs Scraper](https://apify.com/fetch_cat/remoteok-jobs-scraper)
- [Reed.co.uk Jobs Scraper](https://apify.com/fetch_cat/reed-co-uk-jobs-scraper)

### FAQ

#### Can I scrape Jobicy without an account?

Yes. This actor uses public Jobicy listings and does not ask for your Jobicy login.

#### Can I filter by region?

Yes. Use the `geo` input with region slugs such as `usa`, `europe`, `emea`, `apac`, or `latam`.

#### Can I get full job descriptions?

Yes. Enable `includeDescription` to include full HTML descriptions when available.

#### Can I run this every day?

Yes. Use Apify schedules and then send new rows to your preferred destination.

#### What should I use as a unique key?

Use `id` first, with `url` as a secondary unique key.

### Support

If a run fails, returns no data, or a field looks wrong, open an issue from the Actor page.

Please include the Apify run ID or run URL, input JSON, one example public URL, query, or input item, what you expected, and what the dataset returned. Small reproducible inputs make parsing or site-layout issues much faster to fix.

### Quick filter examples

#### Python jobs in the USA

keywords=`python`, category=`dev`, geo=`usa`
Use a small `maxItems` value for the first run, then increase it once the filter matches your needs.

#### SEO jobs worldwide

keywords=`seo`, category=`marketing`
Use a small `maxItems` value for the first run, then increase it once the filter matches your needs.

#### Data science in Europe

keywords=`data`, category=`data-science`, geo=`europe`
Use a small `maxItems` value for the first run, then increase it once the filter matches your needs.

#### Customer support in LATAM

category=`supporting`, geo=`latam`
Use a small `maxItems` value for the first run, then increase it once the filter matches your needs.

#### Design roles in APAC

category=`dev`, geo=`apac`
Use a small `maxItems` value for the first run, then increase it once the filter matches your needs.

### Privacy and data handling

This Actor runs with Apify limited permissions and only processes data needed for the documented run. It uses job-search inputs and public job-posting results to produce the output dataset and sends requests to public Jobicy Remote Jobs pages/endpoints; results are stored in Apify run storage for your account. FetchCat does not use your inputs or outputs for advertising, does not use them for model training, and does not retain them outside the Apify run except for transient support debugging when you explicitly share run details. You are responsible for using the Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs.

# Actor input Schema

## `keywords` (type: `array`):

Jobicy tag keywords to search for. Examples: python, react, seo, sales. Leave empty to return the newest remote jobs.

## `category` (type: `string`):

Optional Jobicy industry slug such as dev, marketing, data-science, business, or supporting. Legacy software-engineering is accepted and mapped to dev.

## `geo` (type: `string`):

Optional Jobicy region filter such as usa, europe, emea, apac, latam, or worldwide.

## `jobTypes` (type: `array`):

Optional client-side job type filter. Common values include Full-Time, Part-Time, Contract, Freelance, and Internship.

## `jobLevels` (type: `array`):

Optional client-side Jobicy level filter, such as Senior, Mid-Level, or Entry-Level.

## `maxItems` (type: `integer`):

Maximum number of job listings to save to the dataset.

## `includeDescription` (type: `boolean`):

Include full HTML job descriptions when available. Turn off for lighter exports.

## `postedSince` (type: `string`):

Optional ISO date or timestamp. Only saves jobs published on or after this value, for example 2026-07-01.

## `allowEmptyResults` (type: `boolean`):

Turn on only when a narrow search is expected to return no jobs. Otherwise, an empty result fails clearly instead of looking successful.

## Actor input object example

```json
{
  "keywords": [
    "python"
  ],
  "category": "dev",
  "geo": "usa",
  "jobTypes": [],
  "jobLevels": [],
  "maxItems": 20,
  "includeDescription": false,
  "allowEmptyResults": false
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `runSummary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "python"
    ],
    "category": "dev",
    "geo": "usa",
    "jobTypes": [],
    "jobLevels": [],
    "postedSince": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetch_cat/jobicy-remote-jobs-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keywords": ["python"],
    "category": "dev",
    "geo": "usa",
    "jobTypes": [],
    "jobLevels": [],
    "postedSince": "",
}

# Run the Actor and wait for it to finish
run = client.actor("fetch_cat/jobicy-remote-jobs-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "python"
  ],
  "category": "dev",
  "geo": "usa",
  "jobTypes": [],
  "jobLevels": [],
  "postedSince": ""
}' |
apify call fetch_cat/jobicy-remote-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=fetch_cat/jobicy-remote-jobs-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/BJTaw3KKFgmTKzvCS/builds/FS8dew8oNjurY7915/openapi.json
