{
  "openapi": "3.0.1",
  "info": {
    "title": "Remote Jobs Scraper · 6 Boards, One Schema, Only New",
    "description": "Remote jobs from Himalayas, Jobicy, Remote OK, We Work Remotely, Working Nomads and the Hacker News hiring thread in one schema: regions, type, level, category, annualized salary, links. Deduplicated, filtered before charging, only-new alerts. $0.60 per 1,000 jobs; first 50 a month free.",
    "version": "1.0",
    "x-build-id": "oa0rJK6Rqah9FirsP"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/agentsgearbox~remote-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-agentsgearbox-remote-jobs-scraper",
        "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/agentsgearbox~remote-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-agentsgearbox-remote-jobs-scraper",
        "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/agentsgearbox~remote-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-agentsgearbox-remote-jobs-scraper",
        "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": {
          "boards": {
            "title": "Boards",
            "type": "array",
            "description": "Which boards to read. Default: Himalayas, Jobicy, Remote OK, We Work Remotely, Working Nomads and the current Hacker News \"Who is hiring?\" thread. Remotive is opt-in: it delays listings by 24 hours and asks for a few requests a day, so add it only to runs that are scheduled hourly or less often.",
            "items": {
              "type": "string",
              "enum": [
                "himalayas",
                "jobicy",
                "remoteok",
                "weworkremotely",
                "workingnomads",
                "hackernews",
                "remotive"
              ],
              "enumTitles": [
                "Himalayas",
                "Jobicy",
                "Remote OK",
                "We Work Remotely",
                "Working Nomads",
                "Hacker News: Who is hiring?",
                "Remotive (opt-in, 24 h delay)"
              ]
            },
            "default": [
              "himalayas",
              "jobicy",
              "remoteok",
              "weworkremotely",
              "workingnomads",
              "hackernews"
            ]
          },
          "keywords": {
            "title": "Title keywords",
            "type": "array",
            "description": "Keep only jobs whose title or tags contain any of these (case-insensitive; a value with spaces is matched as a phrase), for example `python`, `product manager`, `react`. Empty means all jobs.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude title keywords",
            "type": "array",
            "description": "Drop jobs whose title contains any of these, for example `senior`, `intern`, `sales`.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Keep only jobs in these categories (the actor maps every board's own categories and titles to this list).",
            "items": {
              "type": "string",
              "enum": [
                "engineering",
                "devops",
                "data",
                "security",
                "design",
                "product",
                "customer-support",
                "marketing",
                "sales",
                "finance",
                "hr",
                "legal",
                "writing",
                "education",
                "healthcare",
                "operations",
                "management",
                "other"
              ],
              "enumTitles": [
                "Engineering",
                "DevOps and infrastructure",
                "Data, analytics and AI",
                "Security",
                "Design",
                "Product",
                "Customer support and success",
                "Marketing",
                "Sales",
                "Finance and accounting",
                "HR and recruiting",
                "Legal",
                "Writing and content",
                "Education",
                "Healthcare",
                "Operations and admin",
                "Management",
                "Other"
              ]
            },
            "default": []
          },
          "locations": {
            "title": "Open to candidates in",
            "type": "array",
            "description": "Keep only jobs whose stated location or region contains any of these, for example `Worldwide`, `USA`, `Europe`, `UK`, `Germany`, `LATAM`, `APAC`. The actor normalizes each board's wording into regions (`Anywhere in the World` becomes `Worldwide`, `US only` becomes `USA`).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "worldwideOnly": {
            "title": "Worldwide jobs only",
            "type": "boolean",
            "description": "Keep only jobs open to candidates anywhere in the world.",
            "default": false
          },
          "employmentTypes": {
            "title": "Employment types",
            "type": "array",
            "description": "Keep only these types. Jobs whose board states no type are dropped when this filter is set.",
            "items": {
              "type": "string",
              "enum": [
                "full-time",
                "part-time",
                "contract",
                "freelance",
                "internship"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Freelance",
                "Internship"
              ]
            },
            "default": []
          },
          "seniority": {
            "title": "Seniority",
            "type": "array",
            "description": "Keep only these levels, from the board's own field where it has one and otherwise from the title (`Senior`, `Staff`, `Head of`, `Director`, `Junior`, `Intern`). Jobs with no recognisable level are dropped when this filter is set.",
            "items": {
              "type": "string",
              "enum": [
                "entry",
                "mid",
                "senior",
                "lead",
                "executive"
              ],
              "enumTitles": [
                "Entry level",
                "Mid level",
                "Senior",
                "Lead or manager",
                "Director and above"
              ]
            },
            "default": []
          },
          "minSalary": {
            "title": "Minimum salary (annual)",
            "minimum": 0,
            "type": "integer",
            "description": "Drop jobs whose stated salary, annualized, is below this amount. Compared in the posting's own currency (most are USD); jobs that state no salary pass unless `requireSalary` is on."
          },
          "requireSalary": {
            "title": "Only jobs with a stated salary",
            "type": "boolean",
            "description": "Drop jobs that state no salary.",
            "default": false
          },
          "postedAfter": {
            "title": "Posted after",
            "type": "string",
            "description": "Skip jobs posted before this: an ISO date such as `2026-10-01` or a relative value such as `24h`, `7d`, `30d`, `12w`. Jobs without a posting date are skipped too when this is set."
          },
          "maxJobs": {
            "title": "Max jobs in total",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Newest first across all boards, after the filters and deduplication.",
            "default": 300
          },
          "maxJobsPerBoard": {
            "title": "Max jobs read per board",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "How far back each board is read, newest first. With filters or the checkpoint on, the actor reads at least 1,000 per board so that the filters have something to match.",
            "default": 200
          },
          "includeDescription": {
            "title": "Include job descriptions",
            "type": "boolean",
            "description": "Full description as text and HTML. Turn off for a lighter dataset; salary parsing still uses the description.",
            "default": true
          },
          "dedupeAcrossBoards": {
            "title": "Deduplicate across boards",
            "type": "boolean",
            "description": "The same company and title on several boards is delivered once (the first board in your list keeps it) and the other listings are recorded in `alsoOn`.",
            "default": true
          },
          "hackerNewsThreads": {
            "title": "Hacker News threads",
            "minimum": 1,
            "maximum": 6,
            "type": "integer",
            "description": "How many monthly \"Who is hiring?\" threads to read, newest first (1 = the current month).",
            "default": 1
          },
          "onlyNewSinceLastRun": {
            "title": "Only jobs not seen in earlier runs (alerts)",
            "type": "boolean",
            "description": "For job alerts. Remembers the job IDs already delivered in a named key-value store and returns only new listings next time.",
            "default": false
          },
          "checkpointStoreName": {
            "title": "Checkpoint store name",
            "type": "string",
            "description": "Key-value store that keeps the list of seen job IDs (created automatically in your account). Use different names for independent alerts.",
            "default": "remote-jobs-state"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}