{
  "openapi": "3.0.1",
  "info": {
    "title": "Authentic Jobs Scraper: Design, Dev, Remote Jobs",
    "description": "Get every listing straight from authenticjobs.com, linked to its page on the board and flagged remote or not, with the salary as numbers, the category and the job type at $3 per 1,000 listings. Filter by keyword, company, salary or date; a daily schedule can return only new listings. No login.",
    "version": "0.1",
    "x-build-id": "vQGMjIezFdZnv7vXl"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/pradio~authentic-jobs/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-pradio-authentic-jobs",
        "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/pradio~authentic-jobs/runs": {
      "post": {
        "operationId": "runs-sync-pradio-authentic-jobs",
        "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/pradio~authentic-jobs/run-sync": {
      "post": {
        "operationId": "run-sync-pradio-authentic-jobs",
        "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": {
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Optional. The search term, sent to authenticjobs.com's own search exactly as you typed it, so it behaves like typing the same words into the search box on the board. A role (\"designer\", \"engineer\"), a technology or a company name all work. The board matches it anywhere in a posting, its description included, so \"designer\" also finds engineering roles that work with designers; set Category to narrow. Leave it empty to get every open listing on the board. Results come back newest first."
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Optional. A place name sent to authenticjobs.com's own location search and matched as text against each listing's location line, which is whatever the employer wrote (e.g. \"San Francisco Bay Area\", \"Warsaw\", \"United States (Remote)\"). Leave empty to search every location."
          },
          "category": {
            "title": "Category",
            "type": "array",
            "description": "Optional. Only listings in these categories, the ones in the board's own Category menu. Pick several to get listings in any of them. Leave empty for every category. Through the API, a category's name in any case works too.",
            "items": {
              "type": "string",
              "enum": [
                "Artificial Intelligence (AI)",
                "Back-end Engineering",
                "Copywriting",
                "Customer Support",
                "Design",
                "Front-end Engineering",
                "Marketing",
                "Operations",
                "Product Management",
                "Sales"
              ]
            },
            "default": []
          },
          "jobType": {
            "title": "Job type",
            "type": "array",
            "description": "Optional. Only listings of these job types, the board's own Freelance, Full-time, Internship and Part-time boxes. Leave empty for every type. A name the board does not have stops the run and says which one.",
            "items": {
              "type": "string",
              "enum": [
                "Full-time",
                "Part-time",
                "Freelance",
                "Internship"
              ]
            },
            "default": []
          },
          "company": {
            "title": "Company",
            "type": "array",
            "description": "Optional. Only listings from these employers, one per line. A listing is kept when its company name contains one of them, whatever the case and punctuation, so \"Google\" keeps Google DeepMind. Other companies are left out before their posting pages are read, and are not charged. Leave empty for every company.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote only",
            "type": "boolean",
            "description": "Off by default. Turn it on to keep only listings that say the role is remote, the rows whose is_remote is true. A listing that says hybrid or in the office, or does not say, is left out and not charged.",
            "default": false
          },
          "salaryOnly": {
            "title": "Only listings with a salary",
            "type": "boolean",
            "description": "Off by default. Turn it on to keep only listings whose posting states a salary range, the rows with salary_minimum and salary_maximum filled. A listing that states none is left out and not charged.",
            "default": false
          },
          "minSalary": {
            "title": "Minimum salary",
            "minimum": 1,
            "type": "integer",
            "description": "Optional. Only listings whose stated salary range reaches at least this amount at its top end. The amount is compared with the posting's own figure and is never converted, so 100000 keeps a range topping at 100,000 US dollars and one topping at 100,000 pounds alike. Set salaryCurrency (Salary currency) to compare in one currency only. A listing that states no salary is left out. Leave empty for any salary."
          },
          "salaryCurrency": {
            "title": "Salary currency",
            "enum": [
              "USD",
              "GBP",
              "EUR"
            ],
            "type": "string",
            "description": "Optional. Only listings whose stated salary is in this currency: USD, GBP or EUR, as the row's salary_currency says. With Minimum salary set, the minimum then applies in this currency alone. A listing that states no salary, or states it in another currency, is left out and not charged. Leave empty for any currency."
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 1,
            "type": "integer",
            "description": "Optional. Only listings posted in the last this many days, counted from today (UTC) by each listing's posting date. Leave empty for listings of any age; the board keeps a listing open until the employer closes it, so some are months old."
          },
          "onlyNew": {
            "title": "Only new listings",
            "type": "boolean",
            "description": "Off by default: every run returns what the board has now. Turn it on for a daily or weekly schedule: each run then returns only listings that no earlier run of yours with the same keyword, location, category and job type returned, so each listing is paid for once. When nothing is new, the run returns one uncharged row that says so.",
            "default": false
          },
          "maxItemsPerCompany": {
            "title": "Max listings per company",
            "minimum": 1,
            "type": "integer",
            "description": "Optional. The most listing rows one run returns for any one employer, so a company with many openings cannot fill the run. A listing past it is left out before its posting page is read, and is not charged. Leave empty for no cap per company."
          },
          "maxItems": {
            "title": "Maximum items",
            "minimum": 1,
            "type": "integer",
            "description": "The most listing rows one run returns. The board answers 50 listings per page; pages are read three seconds apart until the run holds this many or the board has no more, and at most this many rows are returned after duplicates are dropped. The whole board held 42 open listings on 2026-09-27, so the default returns every listing that matches.",
            "default": 100
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}