{
  "openapi": "3.0.1",
  "info": {
    "title": "Cadremploi Scraper — French Executive & Management Jobs",
    "description": "Scrape job listings from Cadremploi.fr — France's leading executive and management job board. Filter by keyword and location. Returns title, company, salary range, contract type and full descriptions with apply URLs.",
    "version": "0.0",
    "x-build-id": "jlULSaXAJ2MPSj5mo"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/unfenced-group~cadremploi-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-unfenced-group-cadremploi-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/unfenced-group~cadremploi-scraper/runs": {
      "post": {
        "operationId": "runs-sync-unfenced-group-cadremploi-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/unfenced-group~cadremploi-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-unfenced-group-cadremploi-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": {
          "searchQuery": {
            "title": "Search keywords",
            "type": "string",
            "description": "Job title, role or skill to search for, such as 'responsable marketing', 'directeur financier' or 'chef de projet'. Searched by Cadremploi itself, so results are genuine keyword matches. Leave empty to browse every job.",
            "default": ""
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, department or region to search in, such as 'Paris', 'Lyon' or 'Ile-de-France'. Typed exactly as you would in Cadremploi's location box. Leave empty to search all of France.",
            "default": ""
          },
          "radius": {
            "title": "Search radius",
            "enum": [
              "0",
              "10",
              "20",
              "50",
              "100"
            ],
            "type": "string",
            "description": "How far around the location to search. Only applies when a city is set. These are the only distances Cadremploi supports; any other value is rejected.",
            "default": "20"
          },
          "contractTypes": {
            "title": "Contract type",
            "type": "array",
            "description": "Keep only jobs on these contract types. Leave empty to include every contract type.",
            "items": {
              "type": "string",
              "enum": [
                "CDI",
                "CDD",
                "FREELANCE",
                "STAGE",
                "ALTERNANCE"
              ],
              "enumTitles": [
                "CDI (permanent)",
                "CDD (fixed-term)",
                "Freelance",
                "Internship (stage)",
                "Apprenticeship (alternance)"
              ]
            },
            "default": []
          },
          "jobFunction": {
            "title": "Job function",
            "type": "array",
            "description": "Keep only jobs in these business areas, such as Marketing, IT or Finance. Pick one or more. Leave empty to include every function.",
            "items": {
              "type": "string",
              "enum": [
                "ADMINISTRATION",
                "FINANCE",
                "AUDIT",
                "CONSULTING",
                "LEGAL",
                "HR",
                "RESEARCH",
                "LOGISTICS",
                "PRODUCTION",
                "IT",
                "ECOMMERCE",
                "SALES",
                "EXPORT",
                "MARKETING",
                "COMMUNICATION"
              ],
              "enumTitles": [
                "Administration & General Services",
                "Accounting & Finance",
                "Audit",
                "Consulting",
                "Legal & Tax",
                "Human Resources & Training",
                "Studies & Research",
                "Logistics, Purchasing & Transport",
                "Production, Maintenance & Quality",
                "IT & Telecom",
                "Internet & e-Commerce",
                "Sales & Business Development",
                "Export",
                "Marketing",
                "Communication & Creative"
              ]
            },
            "default": []
          },
          "daysOld": {
            "title": "Posted within (days)",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep jobs posted within this many days. Set to 0 to include jobs of any age.",
            "default": 0
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep only jobs that mention remote work or télétravail. Cadremploi has no remote filter of its own, so this is applied to the text we collect — keep 'Fetch full job details' on so the whole description is searched, not just the title and preview.",
            "default": false
          },
          "fetchDetails": {
            "title": "Fetch full job details",
            "type": "boolean",
            "description": "On by default. Each job card already carries the title, company, location, contract type and posted date. Keep this on to also fetch the full description, structured salary, company profile, apply link and exact posted date from each job's own page. Turn it off for faster runs that return the card fields only.",
            "default": true
          },
          "skipReposts": {
            "title": "Skip reposts",
            "type": "boolean",
            "description": "Skip jobs already returned by an earlier run of this Actor. Combine with 'Posted within 1 day' for a clean daily feed of new jobs only.",
            "default": false
          },
          "startUrls": {
            "title": "Cadremploi URLs (advanced)",
            "type": "array",
            "description": "Optional. Paste Cadremploi search URLs or individual job URLs straight from your browser. Overrides the search fields above.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxItems": {
            "title": "Maximum results",
            "minimum": 0,
            "maximum": 25000,
            "type": "integer",
            "description": "Cap on the number of jobs returned. Set to 0 for every matching job, with no limit. Results are collected a page at a time (50 per page), so a small cap can return up to a full page more than you asked for.",
            "default": 100
          },
          "proxyConfiguration": {
            "title": "Proxy (optional)",
            "type": "object",
            "description": "Optional. Cadremploi is reached directly, so no proxy is needed and none is used by default. Only enable this if you specifically want the run routed through a proxy.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}