{
  "openapi": "3.0.1",
  "info": {
    "title": "Remote Jobs Aggregator: RemoteOK, Jobicy, Arbeitnow + 2 more",
    "description": "Remote jobs from RemoteOK, Jobicy, Arbeitnow, Working Nomads and 4 Day Week in one clean feed. Duplicates across boards merged. Filter by keyword, category, country or region, time zone, salary and date. Official APIs and RSS only, every job links back.",
    "version": "1.0",
    "x-build-id": "cqEpTt2AuKc1IqcvM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/angadseth~remote-jobs-aggregator/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-angadseth-remote-jobs-aggregator",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/angadseth~remote-jobs-aggregator/runs": {
      "post": {
        "operationId": "runs-sync-angadseth-remote-jobs-aggregator",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/angadseth~remote-jobs-aggregator/run-sync": {
      "post": {
        "operationId": "run-sync-angadseth-remote-jobs-aggregator",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "sources": {
            "title": "Job boards",
            "type": "array",
            "description": "Which boards to read. Leave as is for all six. Each board is read once per run through its official public API or RSS feed.",
            "items": {
              "type": "string",
              "enum": [
                "remoteok",
                "jobicy",
                "arbeitnow",
                "workingnomads",
                "fourdayweek"
              ],
              "enumTitles": [
                "RemoteOK",
                "Jobicy",
                "Arbeitnow (remote jobs only)",
                "Working Nomads",
                "4 Day Week (remote jobs only)"
              ]
            },
            "default": [
              "remoteok",
              "jobicy",
              "arbeitnow",
              "workingnomads",
              "fourdayweek"
            ]
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Keep jobs that contain any of these words or phrases, e.g. \"python\", \"react\", \"customer support\", \"data engineer\". Whole words, case does not matter. Leave empty for all jobs.",
            "items": {
              "type": "string"
            }
          },
          "keywordsMatch": {
            "title": "Match keywords in",
            "enum": [
              "titleOrTags",
              "title",
              "anywhere"
            ],
            "type": "string",
            "description": "Title and tags is the best balance: \"python\" finds Python roles and jobs tagged Python. Title only is strictest. Anywhere also searches the full description and finds the most.",
            "default": "titleOrTags"
          },
          "excludeKeywords": {
            "title": "Exclude words (in title)",
            "type": "array",
            "description": "Drop jobs whose title contains any of these words, e.g. \"senior\", \"intern\", \"sales\".",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Keep jobs whose category or tags contain any of these words, e.g. \"programming\", \"design\", \"marketing\", \"customer support\", \"devops\". Each board names its categories a little differently, so short words work best.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Where you can work from",
            "type": "array",
            "description": "Keep jobs open to people in any of these places: a country (\"India\", \"USA\", \"Germany\", \"IN\"), a region (\"Europe\", \"EU\", \"EMEA\", \"LATAM\", \"APAC\", \"North America\") or \"Worldwide\" (only jobs open everywhere). A job limited to a region matches the countries in it, so \"India\" also finds APAC jobs.",
            "items": {
              "type": "string"
            }
          },
          "includeWorldwide": {
            "title": "Also keep worldwide jobs",
            "type": "boolean",
            "description": "With a location filter, also keep jobs that are open worldwide or name no location limit. Turn off to keep only jobs that name your country or region.",
            "default": true
          },
          "timezones": {
            "title": "Time zones",
            "type": "array",
            "description": "Keep jobs whose stated time zone contains any of these, e.g. \"CET\", \"UTC+1\", \"EST\", \"PST\". Jobs that state no time zone are kept, because most postings do not give one.",
            "items": {
              "type": "string"
            }
          },
          "minSalary": {
            "title": "Minimum yearly salary",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only jobs whose published pay reaches at least this much per year (top of the range, in the currency below; hourly and monthly pay is converted to yearly). Jobs without a published salary are dropped when this is set. 0 = no salary filter.",
            "default": 0
          },
          "currency": {
            "title": "Salary currency",
            "enum": [
              "USD",
              "EUR",
              "GBP",
              "INR",
              "CAD",
              "AUD",
              "CHF",
              "SGD",
              "NZD",
              "SEK",
              "NOK",
              "DKK",
              "PLN",
              "BRL",
              "MXN",
              "JPY"
            ],
            "type": "string",
            "description": "Currency of the minimum salary. Salaries in other currencies are compared with approximate exchange rates.",
            "default": "USD"
          },
          "postedSince": {
            "title": "Posted since",
            "type": "string",
            "description": "Keep jobs posted after this: \"24h\", \"3d\", \"7d\", \"2w\", \"1m\", or a date like \"2026-11-01\". Empty = any date."
          },
          "dedupe": {
            "title": "Merge the same job across boards",
            "type": "boolean",
            "description": "Companies often post one job on several boards. When on, the same company + title is saved once, with the other boards listed in alsoOn. Turn off to keep every board's copy.",
            "default": true
          },
          "includeDescription": {
            "title": "Include description text",
            "type": "boolean",
            "description": "Add the full job description as clean plain text. Turn off for smaller results.",
            "default": true
          },
          "includeDescriptionHtml": {
            "title": "Include description HTML",
            "type": "boolean",
            "description": "Also add the original description HTML where the board gives it, e.g. to show it on your own site.",
            "default": false
          },
          "maxItems": {
            "title": "Max jobs",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Stop after this many jobs in total, shared fairly across the boards (newest first). You pay per job saved.",
            "default": 30
          },
          "maxPagesPerSource": {
            "title": "Max pages per board",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Jobicy, Arbeitnow and 4 Day Week have more than one page (100 to 300 jobs each). Reading stops early once enough jobs match. Raise this for narrow filters over a long period.",
            "default": 5
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}