{
  "openapi": "3.0.1",
  "info": {
    "title": "HelloWork Scraper — French Jobs, Salaries, CDI/CDD, No Phones",
    "description": "French job ads from HelloWork: title, company, city, département, contract (CDI, CDD, intérim, alternance, stage), salary min/max, remote work, date, full ad. No phones.",
    "version": "0.1",
    "x-build-id": "zjUN2OrZiKutzBGez"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/highbrow_fame~hellowork-jobs/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-highbrow_fame-hellowork-jobs",
        "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/highbrow_fame~hellowork-jobs/runs": {
      "post": {
        "operationId": "runs-sync-highbrow_fame-hellowork-jobs",
        "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/highbrow_fame~hellowork-jobs/run-sync": {
      "post": {
        "operationId": "run-sync-highbrow_fame-hellowork-jobs",
        "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": {
          "searchUrls": {
            "title": "Search links",
            "type": "array",
            "description": "Set up a search on hellowork.com with all the filters you want and paste the address of the results page (https://www.hellowork.com/fr-fr/emploi/recherche.html?k=…&l=…). Job list pages such as …/fr-fr/emploi/metier_comptable.html work too. One per line.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Or search here without a link: job titles, skills or company names (comptable, développeur java, infirmier). Each keyword is searched in each place below, or in all of France when there is no place. The filters below apply.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Places",
            "type": "array",
            "description": "Towns, Paris arrondissements, postcodes, départements or regions (Lyon, Paris 15e, 69003, Gironde, Bretagne), or a country. A place without keywords gives all its jobs.",
            "items": {
              "type": "string"
            }
          },
          "radiusKm": {
            "title": "Radius (km)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Optional: include jobs this many km around a town. HelloWork adds 20 km when this is empty; 0 keeps to the town itself."
          },
          "contractTypes": {
            "title": "Contract type",
            "uniqueItems": true,
            "type": "array",
            "description": "Optional: only jobs of any of these kinds.",
            "items": {
              "type": "string",
              "enum": [
                "CDI",
                "CDD",
                "Travail_temp",
                "Alternance",
                "Stage",
                "Independant",
                "Freelance",
                "Fonctionnaire",
                "Franchise",
                "Associe",
                "Stage_de_lycee"
              ],
              "enumTitles": [
                "CDI (permanent)",
                "CDD (fixed-term)",
                "Intérim (temp work)",
                "Alternance (work-study)",
                "Stage (internship)",
                "Indépendant (self-employed)",
                "Freelance",
                "Fonctionnaire (civil service)",
                "Franchise",
                "Associé (partner)",
                "Stage de lycée (school work placement)"
              ]
            }
          },
          "remote": {
            "title": "Remote work",
            "uniqueItems": true,
            "type": "array",
            "description": "Optional: only jobs with any of these remote policies.",
            "items": {
              "type": "string",
              "enum": [
                "Complet",
                "Partiel",
                "Occasionnel",
                "Pas_teletravail"
              ],
              "enumTitles": [
                "Full remote",
                "Hybrid (partial)",
                "Occasional",
                "No remote work"
              ]
            }
          },
          "workingTime": {
            "title": "Full or part time",
            "enum": [
              "any",
              "ft",
              "pt"
            ],
            "type": "string",
            "description": "Optional.",
            "default": "any"
          },
          "experience": {
            "title": "Experience asked",
            "uniqueItems": true,
            "type": "array",
            "description": "Optional: only jobs that ask for any of these.",
            "items": {
              "type": "string",
              "enum": [
                "deb",
                "0-1y",
                "2-3y",
                "4-5y",
                "6-10y",
                "gt10y"
              ],
              "enumTitles": [
                "Beginners welcome",
                "0-1 year",
                "2-3 years",
                "4-5 years",
                "6-10 years",
                "More than 10 years"
              ]
            }
          },
          "postedWithin": {
            "title": "Posted within",
            "enum": [
              "all",
              "h",
              "d",
              "w",
              "m"
            ],
            "type": "string",
            "description": "Optional: only jobs published recently.",
            "default": "all"
          },
          "minYearlySalary": {
            "title": "Min yearly salary (€)",
            "minimum": 0,
            "maximum": 500000,
            "type": "integer",
            "description": "Optional: only jobs that publish a salary reaching this much a year at the top of its range (hourly pay × 1,820, monthly × 12 — as HelloWork counts). Jobs without a published salary are left out."
          },
          "salaryOnly": {
            "title": "Only jobs with a published salary",
            "type": "boolean",
            "description": "Leave out jobs whose employer does not publish a salary.",
            "default": false
          },
          "maxListingsPerSearch": {
            "title": "Max jobs per search",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Stops each search after this many jobs. Jobs come newest first.",
            "default": 200
          },
          "includeDetails": {
            "title": "Full job ad",
            "type": "boolean",
            "description": "Opens every job for the exact publication date, the full ad text, the profile wanted, education, experience, sector, skills and postcode. One more request per job.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Parallel searches",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many searches to work on at the same time.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Used only when HelloWork turns a request down: the first try goes out directly.",
            "default": {
              "useApifyProxy": 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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}