{
  "openapi": "3.0.1",
  "info": {
    "title": "Pay Transparency Checker: Salary Ranges in Job Postings",
    "description": "Audit job postings for salary ranges and pay transparency law signals by location (US states, cities, Canadian provinces). Greenhouse, Lever, Ashby, Workable, Recruitee. Not legal advice.",
    "version": "0.1",
    "x-build-id": "m4qQnxoYXsen9cn37"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/adastra-connect~pay-transparency-job-auditor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-adastra-connect-pay-transparency-job-auditor",
        "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/adastra-connect~pay-transparency-job-auditor/runs": {
      "post": {
        "operationId": "runs-sync-adastra-connect-pay-transparency-job-auditor",
        "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/adastra-connect~pay-transparency-job-auditor/run-sync": {
      "post": {
        "operationId": "run-sync-adastra-connect-pay-transparency-job-auditor",
        "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",
        "required": [
          "boards"
        ],
        "properties": {
          "boards": {
            "title": "Employer job boards",
            "type": "array",
            "description": "Public board URLs or platform:slug. Supports greenhouse, lever, ashby, workable and recruitee. Plain slugs use auto-detection. Empty API input uses greenhouse:stripe.",
            "default": [
              "greenhouse:stripe"
            ],
            "items": {
              "type": "string"
            }
          },
          "onlyFlagged": {
            "title": "Output only flagged signals",
            "type": "boolean",
            "description": "Output missing_range, range_issue and depends_on_employer_size only. Filtered rows are not billed.",
            "default": false
          },
          "jurisdictionFilter": {
            "title": "Jurisdiction rule IDs",
            "type": "array",
            "description": "Optional rule IDs such as us-ca, us-ny-nyc, ca-on or eu-directive. Evaluate only selected rules and output only jobs matching one.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Job title keywords",
            "type": "array",
            "description": "Optional case-insensitive title substrings. A job must match at least one.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "scanDescriptionForPay": {
            "title": "Scan descriptions for pay",
            "type": "boolean",
            "description": "Also parse salary ranges from descriptions. Greenhouse content and Workable details are requested only when enabled. Descriptions are never output. Dedicated Lever and Ashby pay text may be parsed even when disabled.",
            "default": false
          },
          "maxJobsPerBoard": {
            "title": "Maximum jobs scanned per board",
            "minimum": 1,
            "type": "integer",
            "description": "Inspect at most this many postings per board, in API order. List APIs can return a larger payload. Small prefill keeps daily checks fast.",
            "default": 20
          },
          "maxResults": {
            "title": "Maximum output rows",
            "minimum": 1,
            "type": "integer",
            "description": "Hard cap on dataset rows added in this run. Filtered jobs and a silent baseline do not count.",
            "default": 40
          },
          "requestDelayMs": {
            "title": "Request delay in milliseconds",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum spacing per host. Default 500 ms; Lever uses at least 1000 ms. Robots crawl delays can increase this.",
            "default": 500
          },
          "monitorMode": {
            "title": "Monitor pay and status changes",
            "type": "boolean",
            "description": "Use named persistent state and emit only new jobs, changed pay or changed status. First run silently saves a baseline by default.",
            "default": false
          },
          "monitorKey": {
            "title": "Monitoring stream name",
            "type": "string",
            "description": "Use a separate key for each stable monitoring configuration. Named state survives default dataset purges.",
            "default": "default"
          },
          "emitBaselineOnFirstRun": {
            "title": "Output first monitoring baseline",
            "type": "boolean",
            "description": "When enabled, first-run matching jobs are emitted as new_job and billed. Otherwise the first baseline emits nothing.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}