{
  "openapi": "3.0.1",
  "info": {
    "title": "NoFluffJobs Job Scraper",
    "description": "Searches NoFluffJobs listings by keyword, category, seniority, or city and returns job titles, companies, salary ranges, skills, locations, and remote status. Each distinct posting ID appears once per run, and requested salary currency and period are applied by the site.",
    "version": "0.1",
    "x-build-id": "5fSTaS9JcEuDhrgM2"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/axiomworks~nofluffjobs-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-axiomworks-nofluffjobs-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/axiomworks~nofluffjobs-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-axiomworks-nofluffjobs-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/axiomworks~nofluffjobs-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-axiomworks-nofluffjobs-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": {
          "keyword": {
            "title": "Keyword text (e.g. python)",
            "type": "string",
            "description": "Free-text job or technology query, e.g. \"python\" or \"inżynier\", up to 200 characters. Default empty browses jobs using the other filters. Filters combine with this query. No matches return 0 jobs successfully; remove a filter or try a broader term.",
            "default": ""
          },
          "categories": {
            "title": "Category slugs (e.g. backend)",
            "type": "array",
            "description": "Job category slugs to include, e.g. ['backend'], ['frontend','devops']. Common values: backend, frontend, fullstack, devops, data, testing, mobile, security, ai. Empty = all categories. Combined with the other filters (AND).",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "seniority": {
            "title": "Seniority levels (e.g. senior)",
            "type": "array",
            "description": "Seniority labels as a string array, e.g. [\"senior\"] or [\"junior\",\"mid\"]. Use trainee, junior, mid, senior or expert. Default [] includes all levels; combines with keyword, categories and cities.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "cities": {
            "title": "City names (e.g. Warszawa)",
            "type": "array",
            "description": "City names to include, e.g. ['Warszawa','Kraków','Wrocław']. Use the city name as NoFluffJobs spells it. Empty = all cities (remote included).",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "region": {
            "title": "Region code (e.g. pl)",
            "type": "string",
            "description": "Two-letter NoFluffJobs country site to search, e.g. 'pl' (Poland, default), 'cz' (Czechia), 'sk', 'hu', 'nl'. Also sets which postings are listed.",
            "default": "pl"
          },
          "salaryCurrency": {
            "title": "Salary currency (e.g. EUR)",
            "enum": [
              "PLN",
              "EUR",
              "USD",
              "GBP",
              "CHF"
            ],
            "type": "string",
            "description": "Currency for displayed salary amounts, e.g. \"EUR\": PLN (default), EUR, USD, GBP or CHF. The site converts salaryFrom and salaryTo; this does not require jobs to disclose pay. Missing salary values remain null.",
            "default": "PLN"
          },
          "salaryPeriod": {
            "title": "Salary period (e.g. month)",
            "enum": [
              "month",
              "day",
              "hour",
              "year"
            ],
            "type": "string",
            "description": "Salary display period, e.g. \"hour\": month (default), day, hour or year. Applies together with salaryCurrency to salary amounts; use the same currency and period when comparing runs.",
            "default": "month"
          },
          "maxItems": {
            "title": "Maximum unique jobs (e.g. 20)",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum unique jobs across the entire search and all pages, e.g. 20. Integer 1-10000, default 50. Counts jobs after remoteOnly filtering and deduplication; returns fewer when fewer match. This is one shared limit, not a limit per category or city.",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Proxy settings (e.g. useApifyProxy)",
            "type": "object",
            "description": "Apify Proxy settings for NoFluffJobs requests. Default is a direct connection; enable Apify Proxy (e.g. {\"useApifyProxy\": true}) if a run reports being blocked.",
            "default": {
              "useApifyProxy": false
            }
          },
          "remoteOnly": {
            "title": "Fully remote only (true or false)",
            "type": "boolean",
            "description": "Whether to keep only jobs explicitly marked fully remote, e.g. true. Default false includes every work arrangement. Combines with the other filters; maxItems counts matching unique jobs. If empty, try false or remove a search filter.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}