{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/fiber-ai/json-schema/fiber-ai-job-posting-with-keyword-response-schema.json",
  "title": "Job posting with keyword",
  "x-generated": "2026-11-07",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_original/fiber-ai-api-openapi.json#/components/schemas/JobPostingWithKeywordResponse",
  "type": "object",
  "properties": {
    "lookbackDays": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "maximum": 90,
      "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
    },
    "isDummy": {
      "type": "boolean",
      "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
    },
    "type": {
      "type": "string",
      "const": "job_posting_with_keyword"
    },
    "entityType": {
      "type": "string",
      "const": "company"
    },
    "keywords": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      },
      "minItems": 1,
      "description": "Alert when a job posting contains any of these keywords in the selected search fields."
    },
    "searchFields": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string",
        "enum": [
          "title",
          "description"
        ]
      },
      "minItems": 1,
      "description": "Job posting fields to search for the keywords. Omit to search the title only."
    },
    "seniorityLevels": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string",
        "enum": [
          "Internship",
          "Entry level",
          "Associate",
          "Mid-Senior level",
          "Director",
          "Executive"
        ]
      },
      "minItems": 1,
      "description": "Only alert for these seniority levels. Omit for any level."
    },
    "modalities": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string",
        "enum": [
          "On-site",
          "Remote",
          "Hybrid"
        ]
      },
      "minItems": 1,
      "description": "Only alert for these job modalities. Omit for any."
    },
    "locationTypes": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string",
        "enum": [
          "remote",
          "on_site",
          "hybrid"
        ]
      },
      "minItems": 1,
      "description": "Deprecated. Use modalities instead.",
      "deprecated": true
    },
    "minPostings": {
      "type": [
        "integer",
        "null"
      ],
      "exclusiveMinimum": 0,
      "description": "Only alert if at least this many NEW matching postings are detected in a single check cycle. Omit for 1 (any new match)."
    },
    "id": {
      "type": "string",
      "description": "Unique rule ID. Use with removeRuleIds to delete a specific rule."
    }
  },
  "required": [
    "isDummy",
    "type",
    "entityType",
    "keywords",
    "id"
  ]
}