{
  "openapi": "3.0.1",
  "info": {
    "title": "No Fluff Jobs Scraper",
    "description": "[💰 $0.75 / 1K] Extract IT and tech job listings from No Fluff Jobs across 6 European countries. Search by keyword and filter by category, seniority, employment type, city, salary, and remote work to get structured jobs with salary ranges, tech stack, company, and apply links.",
    "version": "1.0",
    "x-build-id": "Qn2rxpVhhp2e3QO3C"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~nofluffjobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-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/solidcode~nofluffjobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-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/solidcode~nofluffjobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-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": {
          "searchQueries": {
            "title": "Search Keywords",
            "maxItems": 50,
            "type": "array",
            "description": "Job titles, roles, or technologies to search for, such as 'python', 'react', or 'data engineer'. A multi-word phrase like 'data engineer' is matched as one phrase. Each keyword runs a separate search. Leave empty to collect the broadest result set for the chosen country and filters. Up to 50 keywords per run.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Direct No Fluff Jobs URLs",
            "maxItems": 50,
            "type": "array",
            "description": "Paste full No Fluff Jobs search-result, category, or individual job URLs (e.g. https://nofluffjobs.com/jobs/backend) to scrape them directly. Useful when you already have a search dialed in on the website. When set, this takes priority over the keyword search above. Up to 50 URLs per run.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country / Site Edition",
            "enum": [
              "pl",
              "nl",
              "cz",
              "sk",
              "hu",
              "ua"
            ],
            "type": "string",
            "description": "Which country edition of No Fluff Jobs to search. This sets the site locale and the jobs shown. Pick the country you want jobs in.",
            "default": "pl"
          },
          "category": {
            "title": "Job Category",
            "enum": [
              "",
              "backend",
              "frontend",
              "fullstack",
              "mobile",
              "devops",
              "testing",
              "data",
              "ai",
              "security",
              "ux",
              "architecture",
              "embedded",
              "sys-administrator",
              "support",
              "business-analyst",
              "business-intelligence",
              "project-manager"
            ],
            "type": "string",
            "description": "Limit results to one IT job category. Leave on 'Any' to include all categories.",
            "default": ""
          },
          "seniority": {
            "title": "Seniority Level",
            "enum": [
              "",
              "trainee",
              "junior",
              "mid",
              "senior",
              "expert"
            ],
            "type": "string",
            "description": "Limit results to one experience level. Leave on 'Any' to include all levels.",
            "default": ""
          },
          "employmentType": {
            "title": "Employment Type",
            "enum": [
              "",
              "b2b",
              "permanent"
            ],
            "type": "string",
            "description": "Filter by contract type. Pick one or leave on 'Any' for all types.",
            "default": ""
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City to search in, such as 'Warsaw', 'Kraków', or 'Wrocław'. Leave empty to search anywhere in the selected country (including remote)."
          },
          "remoteOnly": {
            "title": "Remote Only",
            "type": "boolean",
            "description": "Only show jobs that can be done fully remotely.",
            "default": false
          },
          "withSalaryOnly": {
            "title": "With Salary Only",
            "type": "boolean",
            "description": "Only show jobs that disclose a salary range.",
            "default": false
          },
          "salaryCurrency": {
            "title": "Salary Currency",
            "enum": [
              "",
              "PLN",
              "EUR",
              "USD",
              "GBP",
              "CZK",
              "HUF",
              "UAH"
            ],
            "type": "string",
            "description": "Limit results to jobs advertised in one currency. Leave on 'Any' to include all currencies.",
            "default": ""
          },
          "maxResultsPerQuery": {
            "title": "Max Results per Query",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of job listings to collect per search keyword (or per start URL). Set to 0 to collect all available results across pagination. Results are fetched in pages: the actor stops once your cap is reached but always keeps the whole final page, so a small cap can return up to a full page more than you asked for. Listings repeated across pages or regions are deduplicated, so the final count can also run slightly below your cap.",
            "default": 100
          },
          "onlyUniqueJobs": {
            "title": "Only Unique Jobs",
            "type": "boolean",
            "description": "When on, each job is returned once even if No Fluff Jobs lists it under several regions or URLs. Deduplicates by the listing's reference. Turn off to keep every regional copy.",
            "default": true
          },
          "includeDescription": {
            "title": "Fetch Full Job Descriptions",
            "type": "boolean",
            "description": "Include the full job description text and HTML for each listing. Leave on for the most complete data. Turn off for lighter, faster records when you only need titles, companies, salaries, and tech stack.",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}