{
  "openapi": "3.0.1",
  "info": {
    "title": "ANOFM.ro Scraper: Romania Government Jobs & Vacancies",
    "description": "Scrape official job listings from Romania's National Employment Agency (ANOFM, mediere.anofm.ro). Returns occupation title, COR code, employer, Romanian county (județ), salary in RON, employment type, education level, and contact details for all 41 județe.",
    "version": "0.2",
    "x-build-id": "rqGtCBiNUMn1b4Fqv"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/santamaria-automations~anofm-ro-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-santamaria-automations-anofm-ro-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/santamaria-automations~anofm-ro-scraper/runs": {
      "post": {
        "operationId": "runs-sync-santamaria-automations-anofm-ro-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/santamaria-automations~anofm-ro-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-santamaria-automations-anofm-ro-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",
            "type": "array",
            "description": "One or more occupation keywords to search on ANOFM. Each runs as a separate query against Romania's official occupation registry (COR). Examples: 'programator', 'contabil', 'sudor', 'mecanic', 'asistent'. Leave empty to get all open vacancies.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Direct Job URLs",
            "type": "array",
            "description": "Direct ANOFM job detail page URLs to scrape. Example: https://mediere.anofm.ro/app/module/mediere/job/3365408",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location (Județ / City)",
            "type": "string",
            "description": "Romanian county (județ) or major city to filter results. Examples: 'București', 'Cluj', 'Timișoara', 'Iași', 'Brașov', 'Constanța', 'Galați'. Leave empty for all of Romania."
          },
          "countyId": {
            "title": "County ID (Advanced)",
            "type": "integer",
            "description": "ANOFM internal county ID (1-42). Takes priority over Location field. See actor documentation for the full ID map. 2=București, 13=Cluj, 35=Timiș, 23=Iași, 9=Brașov."
          },
          "workTypeId": {
            "title": "Work Type ID",
            "type": "integer",
            "description": "Filter by work schedule. 1=Normă întreagă (Full-time), 2=Normă parțială (Part-time), 3=Practică (Internship), 4=Ucenicie (Apprenticeship). 0 = any.",
            "default": 0
          },
          "contractTypeId": {
            "title": "Contract Type ID",
            "type": "integer",
            "description": "Filter by contract type. 1=Determinat (Fixed-term), 2=Nedeterminat (Permanent). 0 = any.",
            "default": 0
          },
          "minimumSalary": {
            "title": "Minimum Salary (RON)",
            "type": "integer",
            "description": "Only return jobs with minimum_salary greater than this value in RON. 0 = no filter. Romania minimum wage 2026 is approximately 3700 RON gross.",
            "default": 0
          },
          "availableForEUCitizens": {
            "title": "Available for EU Citizens",
            "type": "boolean",
            "description": "When enabled, only return jobs marked as open to EU citizens (EURES listings).",
            "default": false
          },
          "includeJobDetails": {
            "title": "Include Full Job Details",
            "type": "boolean",
            "description": "When enabled, the ANOFM API already returns all detail fields — contact name, email, phone, education level, professional experience, work regime, and address. Enabling this flag charges the higher job-detail-result PPE event instead of job-serp-result.",
            "default": false
          },
          "maxResults": {
            "title": "Max Total Results",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Total results cap across all search queries.",
            "default": 5
          },
          "maxResultsPerQuery": {
            "title": "Max Results per Query",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum results returned per individual search keyword.",
            "default": 5
          },
          "maxConcurrency": {
            "title": "Max Concurrency",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Maximum parallel requests. Keep low (3-5) to be respectful to the government API.",
            "default": 3
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}