{
  "openapi": "3.0.1",
  "info": {
    "title": "NoFluffJobs Scraper · Polish Tech Jobs, Salaries & Skills",
    "description": "NoFluffJobs scraper to extract Polish and European tech job listings, IT jobs and salary ranges from NoFluffJobs.com. Extract job titles, companies, salaries, tech stacks, required skills, seniority, location and remote options. Ideal for IT recruitment, salary benchmarking and job market research.",
    "version": "1.0",
    "x-build-id": "BO24YGddzf4NLS22f"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/reapx~nofluffjobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-reapx-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/reapx~nofluffjobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-reapx-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/reapx~nofluffjobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-reapx-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": {
          "keywords": {
            "title": "Keywords",
            "uniqueItems": true,
            "type": "array",
            "description": "Free-text terms matched across the listing, one per line. A job is kept if it matches at least one. Examples: kubernetes, fintech, machine learning.<br><br>Leave this field empty to include every option.",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Job categories",
            "uniqueItems": true,
            "type": "array",
            "description": "NoFluffJobs job categories. Leave empty for every category.",
            "items": {
              "type": "string",
              "enum": [
                "backend",
                "frontend",
                "fullstack",
                "mobile",
                "embedded",
                "testing",
                "devops",
                "businessintelligence",
                "data",
                "artificialintelligence",
                "security",
                "gamedev",
                "ux",
                "productmanagement",
                "projectmanager",
                "businessanalyst",
                "agile",
                "sysadministrator",
                "architecture",
                "automation",
                "support",
                "hr",
                "marketing",
                "sales",
                "finance",
                "logistics",
                "other"
              ],
              "enumTitles": [
                "Backend",
                "Frontend",
                "Fullstack",
                "Mobile",
                "Embedded",
                "Testing / QA",
                "DevOps",
                "Business Intelligence",
                "Data",
                "Artificial Intelligence",
                "Security",
                "Game Dev",
                "UX / UI",
                "Product Management",
                "Project Management",
                "Business Analysis",
                "Agile",
                "SysAdmin",
                "Architecture",
                "Automation",
                "Support",
                "HR",
                "Marketing",
                "Sales",
                "Finance",
                "Logistics",
                "Other"
              ]
            }
          },
          "technologies": {
            "title": "Required technologies",
            "uniqueItems": true,
            "type": "array",
            "description": "Technology the job requires, one per line, matched against the listing's own skill tags. Examples: java, python, react, kubernetes, aws.<br><br>Leave this field empty to include every option.",
            "items": {
              "type": "string"
            }
          },
          "seniority": {
            "title": "Seniority",
            "uniqueItems": true,
            "type": "array",
            "description": "Experience level. Leave empty for all levels.",
            "items": {
              "type": "string",
              "enum": [
                "trainee",
                "junior",
                "mid",
                "senior",
                "expert"
              ],
              "enumTitles": [
                "Trainee",
                "Junior",
                "Mid",
                "Senior",
                "Expert"
              ]
            }
          },
          "cities": {
            "title": "Cities",
            "uniqueItems": true,
            "type": "array",
            "description": "Polish city names, one per line, without diacritics. Examples: warszawa, krakow, wroclaw, gdansk, poznan, katowice, lodz.<br><br>Leave this field empty to include every option.",
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Fully remote only",
            "type": "boolean",
            "description": "Keep only listings that can be done fully remotely."
          },
          "employmentTypes": {
            "title": "Contract type",
            "uniqueItems": true,
            "type": "array",
            "description": "How the role is contracted. B2B is the most common arrangement on this board.<br><br>Leave this field empty to include every option.",
            "items": {
              "type": "string",
              "enum": [
                "b2b",
                "permanent",
                "mandate",
                "internship"
              ],
              "enumTitles": [
                "B2B contract",
                "Permanent employment",
                "Mandate contract",
                "Internship"
              ]
            }
          },
          "salaryCurrency": {
            "title": "Show salaries in",
            "enum": [
              "PLN",
              "EUR",
              "USD",
              "GBP",
              "CHF"
            ],
            "type": "string",
            "description": "Currency every salary range is converted to before it is returned.<br><br>Options: <code>PLN</code>, <code>EUR</code>, <code>USD</code>, <code>GBP</code>, <code>CHF</code>."
          },
          "salaryPeriod": {
            "title": "Salary period",
            "enum": [
              "month",
              "hour"
            ],
            "type": "string",
            "description": "Whether salary ranges are expressed per month or per hour.<br><br>Options: <code>month</code>, <code>hour</code>."
          },
          "minSalary": {
            "title": "Minimum salary",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Keep only listings whose upper salary bound is at least this much, in the currency and period chosen above. Leave empty for no minimum."
          },
          "onlyDisclosedSalary": {
            "title": "Only listings with a visible salary",
            "type": "boolean",
            "description": "Drop the small number of listings whose salary range is hidden until you apply."
          },
          "maxJobs": {
            "title": "Maximum jobs to return",
            "minimum": 1,
            "maximum": 30000,
            "type": "integer",
            "description": "Hard stop on how many jobs are returned and charged. Each job returned costs $0.002. 100 jobs finishes in well under a minute.<br><br>The higher the number, the longer the run takes and the more you are charged, because you pay per row returned."
          },
          "requestDelaySecs": {
            "title": "Delay between requests (seconds)",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "Seconds to wait between requests to NoFluffJobs. 1 is the minimum this Actor allows; raise it if you are running several jobs at once."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}