{
  "openapi": "3.0.1",
  "info": {
    "title": "Jobs.ge Georgia Jobs Scraper",
    "description": "Search Jobs.ge (Georgia, the country's oldest job board) and get public job listings: title, employer, published date, application deadline, URL. Unofficial, independent tool — not affiliated with, endorsed by, or sponsored by Jobs.ge.",
    "version": "0.5",
    "x-build-id": "dcG0uVvZ7bv9Chh8K"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/zinin~jobs-ge/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-zinin-jobs-ge",
        "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/zinin~jobs-ge/runs": {
      "post": {
        "operationId": "runs-sync-zinin-jobs-ge",
        "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/zinin~jobs-ge/run-sync": {
      "post": {
        "operationId": "run-sync-zinin-jobs-ge",
        "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": {
          "posted_within_days": {
            "title": "Published within days (optional)",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Keep jobs from the most recent N calendar dates in UTC: 1 = today, 7 = today and the previous 6 days, 30 = today and the previous 29 days. Applied before Max items. Omit to disable the date filter. Search scans up to 20 listing pages and stops when Max items is satisfied; incomplete scans are disclosed. Jobs with an unknown publication date are excluded when this filter is enabled. Jobs.ge supplies dates, not publication times; this is not a rolling hourly window."
          },
          "keywords": {
            "title": "Search keywords (optional)",
            "maxItems": 10,
            "type": "array",
            "description": "Words/phrases to match against job titles across scanned source pages. Leave empty to disable the title filter. Scans up to 20 pages, stopping when Max items is satisfied; incomplete scans are disclosed. Runtime cap: 10 keywords.",
            "items": {
              "type": "string"
            }
          },
          "language": {
            "title": "Interface language",
            "enum": [
              "en",
              "ge"
            ],
            "type": "string",
            "description": "Which Jobs.ge interface to read: English (/en/) or Georgian (/ge/). Most postings are written in Georgian regardless of interface language — that is a fact of the source, not a translation this Actor performs.",
            "default": "en"
          },
          "max_items": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 320,
            "type": "integer",
            "description": "Maximum job rows returned after category, location, keyword, and publication-date filtering.",
            "default": 30
          },
          "fetch_full_description": {
            "title": "Fetch full description",
            "type": "boolean",
            "description": "Visit each matched job's detail page for the full description text (slower — one extra request per job). When off, description is null (Jobs.ge's listing page carries no description snippet at all, not even a teaser).",
            "default": false
          },
          "category": {
            "title": "Job category (optional)",
            "enum": [
              "all",
              "administration_management",
              "finance_statistics",
              "sales_procurement",
              "pr_marketing",
              "general_technical_staff",
              "logistics_transport_distribution",
              "construction_repair",
              "cleaning",
              "security_safety",
              "it_programming",
              "media_publishing",
              "education",
              "law",
              "medicine_pharmacy",
              "beauty_fashion",
              "food",
              "other"
            ],
            "type": "string",
            "description": "Narrow the search using Jobs.ge's own job category. Omit or choose All for every category. Combined with Location, keywords, and publication date before Max items."
          },
          "location": {
            "title": "Location / region (optional)",
            "enum": [
              "all",
              "tbilisi",
              "abkhazeti",
              "adjara",
              "guria",
              "imereti",
              "kakheti",
              "kvemo_kartli",
              "mtskheta_mtianeti",
              "racha_lechkhumi_lower_svaneti",
              "samegrelo_zemo_svaneti",
              "samtskhe_javakheti",
              "shida_kartli",
              "abroad",
              "remote"
            ],
            "type": "string",
            "description": "Narrow the search using Jobs.ge's own location groups: Tbilisi, regions, Abroad, or Remote. For Kutaisi choose Imereti; for Batumi choose Adjara AR. These are source-defined search groups, not a normalized city field in each output row. Omit or choose All for every location."
          },
          "fetch_job_category": {
            "title": "Find job categories (optional)",
            "type": "boolean",
            "description": "Populate category from confirmed Jobs.ge category-list membership even when no category filter is selected. Adds up to 40 listing requests across categories (up to 20 per category), so it is slower. Reports the first observed membership, not every possible category. Unresolved categories stay null and are marked partial. A selected category filter already supplies its confirmed category without these extra requests.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}