{
  "openapi": "3.0.1",
  "info": {
    "title": "NoFluffJobs Scraper — IT Jobs with Salaries",
    "description": "Extract IT vacancies from NoFluffJobs, the Polish/CEE board where every posting must publish a salary range. Records include title, company, salary min/max, seniority, tech stack, remote status and apply URL. The best source for honest CEE salary data.",
    "version": "0.1",
    "x-build-id": "05VQa0tbYOK7ahOk9"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nomad-agent~nofluffjobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nomad-agent-nofluffjobs-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/nomad-agent~nofluffjobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-nomad-agent-nofluffjobs-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/nomad-agent~nofluffjobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-nomad-agent-nofluffjobs-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": {
          "categories": {
            "title": "Job categories",
            "type": "array",
            "description": "Which NoFluffJobs categories to fetch. Defaults to [\"frontend\"]. This is the full set of category slugs verified live against the NoFluffJobs search API (each was probed directly and returns real results): standard tech categories (backend, frontend, fullstack, mobile, embedded, devops, testing, architecture, security, game-dev, artificial-intelligence, data, sys-administrator), management/analysis (pm, agile, product-management, project-manager, business-intelligence, business-analyst), design/support (ux, support, erp), engineering (electronics, telecommunication, electrical-eng, automation, mechanics), and non-IT business roles NoFluffJobs also lists (sales, marketing, office-administration, hr, finance, consulting, customer-service, law, logistics, other). \"ai-data\" is kept as a legacy alias slug that still returns results server-side.",
            "items": {
              "type": "string",
              "enum": [
                "backend",
                "frontend",
                "fullstack",
                "mobile",
                "embedded",
                "testing",
                "devops",
                "architecture",
                "security",
                "game-dev",
                "artificial-intelligence",
                "data",
                "sys-administrator",
                "pm",
                "agile",
                "product-management",
                "project-manager",
                "business-intelligence",
                "business-analyst",
                "ux",
                "support",
                "erp",
                "electronics",
                "telecommunication",
                "electrical-eng",
                "automation",
                "mechanics",
                "sales",
                "marketing",
                "office-administration",
                "hr",
                "finance",
                "consulting",
                "customer-service",
                "law",
                "logistics",
                "other",
                "ai-data"
              ],
              "enumTitles": [
                "Backend",
                "Frontend",
                "Fullstack",
                "Mobile",
                "Embedded",
                "Testing / QA",
                "DevOps",
                "Architecture",
                "Security",
                "Game Dev",
                "Artificial Intelligence",
                "Data",
                "System Administrator",
                "PM (Project/Product)",
                "Agile",
                "Product Management",
                "Project Manager",
                "Business Intelligence",
                "Business Analyst",
                "UX/UI",
                "Support",
                "ERP",
                "Electronics",
                "Telecommunication",
                "Electrical Engineering",
                "Automation",
                "Mechanics",
                "Sales",
                "Marketing",
                "Office Administration",
                "HR",
                "Finance",
                "Consulting",
                "Customer Service",
                "Law",
                "Logistics",
                "Other",
                "AI & Data (legacy alias)"
              ]
            },
            "default": [
              "frontend"
            ]
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum total number of postings to return across all categories. Set 0 for no limit.",
            "default": 100
          },
          "maxPages": {
            "title": "Max pages per category",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum number of result pages to fetch per category (each page contains up to 50 postings).",
            "default": 5
          },
          "salaryCurrency": {
            "title": "Salary currency",
            "enum": [
              "EUR",
              "PLN",
              "USD",
              "GBP",
              "CHF"
            ],
            "type": "string",
            "description": "Currency in which salary ranges are returned. NoFluffJobs converts all salaries to this currency.",
            "default": "EUR"
          },
          "region": {
            "title": "Region",
            "enum": [
              "pl"
            ],
            "type": "string",
            "description": "Reserved for a future NoFluffJobs regional-portal parameter. NoFluffJobs used to run country-specific portals (nofluffjobs.com/pl, /hu, /cz, ...), but the public search API this Actor calls (api/search/posting) currently ignores this query parameter entirely: we verified this by querying with region=pl, hu, cz, sk, ua, nl and even an invalid value, and every request returned an identical result count. All CEE/EU postings (Poland, Czechia, Hungary, Slovakia, Ukraine, Netherlands and more) already come back from one unified search index regardless of this setting, so no value is being missed by leaving it as \"pl\". Kept for backward compatibility and in case NoFluffJobs re-enables real per-region querying.",
            "default": "pl"
          },
          "postedSince": {
            "title": "Posted within (days)",
            "minimum": 0,
            "type": "integer",
            "description": "Drop postings older than this many days, based on the source's postedAt timestamp. Set 0 (default) to disable. Postings with a missing or unparseable postedAt always pass through, since we can't judge their age.",
            "default": 0
          },
          "titleExclude": {
            "title": "Exclude titles containing",
            "type": "array",
            "description": "Drop postings whose title contains any of these words/phrases (case-insensitive substring match). Default empty — no filtering.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "companyExclude": {
            "title": "Exclude companies containing",
            "type": "array",
            "description": "Drop postings whose company name contains any of these words/phrases (case-insensitive substring match). Default empty — no filtering.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "cacheTtlSeconds": {
            "title": "Cache TTL (seconds)",
            "minimum": 0,
            "type": "integer",
            "description": "Cache the upstream fetch in the key-value store for this many seconds; re-runs within the window skip the network call. Set 0 to disable.",
            "default": 1800
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}