{
  "$defs": {
    "AIGeneratedDeclaration": {
      "description": "Which parts of the payload a language model wrote.",
      "properties": {
        "applies_to": {
          "items": {
            "type": "string"
          },
          "title": "Applies To",
          "type": "array"
        },
        "model": {
          "title": "Model",
          "type": "string"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string"
        },
        "regulation": {
          "title": "Regulation",
          "type": "string"
        }
      },
      "required": [
        "applies_to",
        "model",
        "purpose"
      ],
      "title": "AIGeneratedDeclaration",
      "type": "object"
    },
    "ClientInfo": {
      "description": "Who the report was built for and how much of today's quota is used.",
      "properties": {
        "client_name": {
          "title": "Client Name",
          "type": "string"
        },
        "daily_limit": {
          "title": "Daily Limit",
          "type": "integer"
        },
        "org_name": {
          "title": "Org Name",
          "type": "string"
        },
        "plan": {
          "title": "Plan",
          "type": "string"
        },
        "subscription_status": {
          "title": "Subscription Status",
          "type": "string"
        },
        "trial_days_remaining": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Trial Days Remaining"
        },
        "used_today": {
          "title": "Used Today",
          "type": "integer"
        }
      },
      "required": [
        "client_name",
        "org_name",
        "plan",
        "daily_limit",
        "used_today"
      ],
      "title": "ClientInfo",
      "type": "object"
    },
    "ExecutiveSummary": {
      "description": "The report overview. ``narrative`` is written by a language model and\ndeclared as such in ``metadata.ai_generated``.",
      "properties": {
        "narrative": {
          "title": "Narrative",
          "type": "string"
        },
        "overall_confidence": {
          "title": "Overall Confidence",
          "type": "number"
        },
        "summary": {
          "title": "Summary",
          "type": "string"
        },
        "title": {
          "title": "Title",
          "type": "string"
        }
      },
      "required": [
        "title",
        "summary",
        "narrative",
        "overall_confidence"
      ],
      "title": "ExecutiveSummary",
      "type": "object"
    },
    "MarketOverview": {
      "properties": {
        "average_score": {
          "title": "Average Score",
          "type": "number"
        },
        "top_score": {
          "title": "Top Score",
          "type": "number"
        },
        "total_profiles_analyzed": {
          "title": "Total Profiles Analyzed",
          "type": "integer"
        }
      },
      "required": [
        "total_profiles_analyzed",
        "average_score",
        "top_score"
      ],
      "title": "MarketOverview",
      "type": "object"
    },
    "OrgBriefing": {
      "description": "Business plan only: a paragraph on the organization's own watchlist.",
      "properties": {
        "narrative": {
          "title": "Narrative",
          "type": "string"
        },
        "title": {
          "title": "Title",
          "type": "string"
        }
      },
      "required": [
        "title",
        "narrative"
      ],
      "title": "OrgBriefing",
      "type": "object"
    },
    "ReportAnalytics": {
      "description": "Distributions over the talent profiles in the report.",
      "properties": {
        "market_overview": {
          "$ref": "#/$defs/MarketOverview"
        },
        "role_distribution": {
          "additionalProperties": {
            "type": "integer"
          },
          "title": "Role Distribution",
          "type": "object"
        },
        "seniority_distribution": {
          "additionalProperties": {
            "type": "integer"
          },
          "description": "Profiles per score band.",
          "title": "Seniority Distribution",
          "type": "object"
        },
        "seniority_levels": {
          "additionalProperties": {
            "type": "integer"
          },
          "description": "Profiles per seniority label.",
          "title": "Seniority Levels",
          "type": "object"
        },
        "stack_distribution": {
          "additionalProperties": {
            "type": "integer"
          },
          "title": "Stack Distribution",
          "type": "object"
        },
        "strategic_insights": {
          "items": {
            "type": "string"
          },
          "title": "Strategic Insights",
          "type": "array"
        }
      },
      "required": [
        "market_overview",
        "seniority_distribution",
        "seniority_levels",
        "stack_distribution",
        "role_distribution",
        "strategic_insights"
      ],
      "title": "ReportAnalytics",
      "type": "object"
    },
    "ReportCapabilities": {
      "properties": {
        "exports": {
          "description": "Export formats the plan includes.",
          "items": {
            "enum": [
              "csv",
              "pdf"
            ],
            "type": "string"
          },
          "title": "Exports",
          "type": "array"
        },
        "org_briefing": {
          "title": "Org Briefing",
          "type": "boolean"
        },
        "show_confidence": {
          "title": "Show Confidence",
          "type": "boolean"
        },
        "show_evidence": {
          "title": "Show Evidence",
          "type": "boolean"
        }
      },
      "required": [
        "exports",
        "show_evidence",
        "show_confidence",
        "org_briefing"
      ],
      "title": "ReportCapabilities",
      "type": "object"
    },
    "ReportContract": {
      "description": "What the plan entitles the caller to. Schema 1.0, the default, carries\nthe first three fields only; 1.1 and 1.2 add capabilities and limits.",
      "properties": {
        "capabilities": {
          "$ref": "#/$defs/ReportCapabilities"
        },
        "limits": {
          "$ref": "#/$defs/ReportLimits"
        },
        "plan_level": {
          "title": "Plan Level",
          "type": "string"
        },
        "report_type": {
          "title": "Report Type",
          "type": "string"
        },
        "schema_version": {
          "title": "Schema Version",
          "type": "string"
        }
      },
      "required": [
        "schema_version",
        "plan_level",
        "report_type"
      ],
      "title": "ReportContract",
      "type": "object"
    },
    "ReportLimits": {
      "properties": {
        "max_signals": {
          "title": "Max Signals",
          "type": "integer"
        },
        "max_talents": {
          "title": "Max Talents",
          "type": "integer"
        },
        "max_trends": {
          "title": "Max Trends",
          "type": "integer"
        },
        "profile_companies": {
          "title": "Profile Companies",
          "type": "integer"
        },
        "profile_topics": {
          "title": "Profile Topics",
          "type": "integer"
        }
      },
      "required": [
        "max_trends",
        "max_talents",
        "max_signals"
      ],
      "title": "ReportLimits",
      "type": "object"
    },
    "ReportMetadata": {
      "description": "Provenance of the report: when it was built, from what, and how fresh\nthe underlying data is.",
      "properties": {
        "ai_generated": {
          "$ref": "#/$defs/AIGeneratedDeclaration"
        },
        "collection_health": {
          "additionalProperties": true,
          "title": "Collection Health",
          "type": "object"
        },
        "confidentiality": {
          "title": "Confidentiality",
          "type": "string"
        },
        "corroboration_gate": {
          "enum": [
            "active",
            "inactive"
          ],
          "title": "Corroboration Gate",
          "type": "string"
        },
        "data_age_hours": {
          "title": "Data Age Hours",
          "type": "number"
        },
        "data_collected_at": {
          "title": "Data Collected At",
          "type": "string"
        },
        "data_source": {
          "title": "Data Source",
          "type": "string"
        },
        "generated_at": {
          "format": "date-time",
          "title": "Generated At",
          "type": "string"
        },
        "narrative_credits": {
          "additionalProperties": true,
          "title": "Narrative Credits",
          "type": "object"
        },
        "narrative_exhausted": {
          "title": "Narrative Exhausted",
          "type": "boolean"
        },
        "product": {
          "title": "Product",
          "type": "string"
        },
        "quality": {
          "additionalProperties": true,
          "title": "Quality",
          "type": "object"
        },
        "raw_observations_held": {
          "title": "Raw Observations Held",
          "type": "integer"
        },
        "relevance_ranking": {
          "enum": [
            "active",
            "neutral"
          ],
          "title": "Relevance Ranking",
          "type": "string"
        },
        "report_version": {
          "title": "Report Version",
          "type": "string"
        },
        "staleness_warning": {
          "title": "Staleness Warning",
          "type": "string"
        },
        "watermark": {
          "description": "Present on the expired-trial preview only.",
          "title": "Watermark",
          "type": "string"
        }
      },
      "required": [
        "generated_at",
        "product",
        "report_version",
        "confidentiality",
        "ai_generated"
      ],
      "title": "ReportMetadata",
      "type": "object"
    },
    "ReportScore": {
      "description": "Aggregate confidence over the signals in the report.",
      "properties": {
        "categories": {
          "additionalProperties": {
            "type": "number"
          },
          "title": "Categories",
          "type": "object"
        },
        "collection_health": {
          "additionalProperties": true,
          "title": "Collection Health",
          "type": "object"
        },
        "confidence_interval": {
          "additionalProperties": true,
          "title": "Confidence Interval",
          "type": "object"
        },
        "cross_source_signals": {
          "title": "Cross Source Signals",
          "type": "integer"
        },
        "overall_confidence": {
          "maximum": 1.0,
          "minimum": 0.0,
          "title": "Overall Confidence",
          "type": "number"
        },
        "signal_count": {
          "minimum": 0.0,
          "title": "Signal Count",
          "type": "integer"
        },
        "source_diversity": {
          "title": "Source Diversity",
          "type": "integer"
        }
      },
      "required": [
        "overall_confidence",
        "signal_count"
      ],
      "title": "ReportScore",
      "type": "object"
    },
    "ReportSections": {
      "description": "The report body.",
      "properties": {
        "executive_summary": {
          "$ref": "#/$defs/ExecutiveSummary"
        },
        "hiring_signals": {
          "$ref": "#/$defs/SignalSection"
        },
        "market_trends": {
          "$ref": "#/$defs/SignalSection"
        },
        "org_briefing": {
          "$ref": "#/$defs/OrgBriefing"
        },
        "talent_signals": {
          "$ref": "#/$defs/SignalSection"
        }
      },
      "required": [
        "executive_summary",
        "market_trends",
        "talent_signals",
        "hiring_signals"
      ],
      "title": "ReportSections",
      "type": "object"
    },
    "SignalItem": {
      "description": "One signal in a report section.\n\n``confidence`` and ``evidence`` are present on plans that include them\nand absent on the expired-trial preview.",
      "properties": {
        "category": {
          "description": "Signal category, for example market_trend, research_paper, talent or hiring_signal.",
          "title": "Category",
          "type": "string"
        },
        "company": {
          "title": "Company",
          "type": "string"
        },
        "confidence": {
          "title": "Confidence",
          "type": "number"
        },
        "detail": {
          "title": "Detail",
          "type": "string"
        },
        "entity_key": {
          "title": "Entity Key",
          "type": "string"
        },
        "entity_type": {
          "title": "Entity Type",
          "type": "string"
        },
        "evidence": {
          "additionalProperties": true,
          "description": "The source metadata behind the counts, as collected.",
          "title": "Evidence",
          "type": "object"
        },
        "example_headline": {
          "title": "Example Headline",
          "type": "string"
        },
        "hiring_status": {
          "title": "Hiring Status",
          "type": "string"
        },
        "relevance": {
          "title": "Relevance",
          "type": "number"
        },
        "source": {
          "description": "Source ids that observed the signal, comma-separated.",
          "title": "Source",
          "type": "string"
        },
        "timestamp": {
          "format": "date-time",
          "title": "Timestamp",
          "type": "string"
        },
        "title": {
          "title": "Title",
          "type": "string"
        },
        "url": {
          "title": "Url",
          "type": "string"
        },
        "velocity": {
          "additionalProperties": true,
          "description": "Pro and Business. The change in the signal's stars (repositories), mentions (papers) or followers (talent) since the previous collection: previous, current, delta, delta_pct, and period_hours, the hours between the two collections.",
          "title": "Velocity",
          "type": "object"
        }
      },
      "required": [
        "source",
        "title",
        "detail",
        "category",
        "timestamp"
      ],
      "title": "SignalItem",
      "type": "object"
    },
    "SignalSection": {
      "description": "A section of signals, capped by the plan.",
      "properties": {
        "count": {
          "description": "Number of items in data.",
          "minimum": 0.0,
          "title": "Count",
          "type": "integer"
        },
        "data": {
          "items": {
            "$ref": "#/$defs/SignalItem"
          },
          "title": "Data",
          "type": "array"
        },
        "title": {
          "title": "Title",
          "type": "string"
        }
      },
      "required": [
        "title",
        "count",
        "data"
      ],
      "title": "SignalSection",
      "type": "object"
    },
    "TrendAnalysis": {
      "description": "Week-over-week movement across the retained collection history.\n``status`` is ``insufficient_history`` until there is history to compare.",
      "properties": {
        "analysis_timestamp": {
          "title": "Analysis Timestamp",
          "type": "string"
        },
        "declining": {
          "items": {
            "$ref": "#/$defs/TrendMovement"
          },
          "title": "Declining",
          "type": "array"
        },
        "emerging": {
          "items": {
            "$ref": "#/$defs/TrendMovement"
          },
          "title": "Emerging",
          "type": "array"
        },
        "engine": {
          "title": "Engine",
          "type": "string"
        },
        "hot_memory": {
          "description": "Topics seen in at least 8 of the last 12 collections but not in this one; a short trend section is topped up from them.",
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Hot Memory",
          "type": "array"
        },
        "silent_but_rising": {
          "items": {
            "$ref": "#/$defs/TrendMovement"
          },
          "title": "Silent But Rising",
          "type": "array"
        },
        "snapshot_count": {
          "title": "Snapshot Count",
          "type": "integer"
        },
        "spikes": {
          "items": {
            "$ref": "#/$defs/TrendMovement"
          },
          "title": "Spikes",
          "type": "array"
        },
        "status": {
          "description": "ok, or insufficient_history before any history exists.",
          "title": "Status",
          "type": "string"
        },
        "summary": {
          "title": "Summary",
          "type": "string"
        },
        "tracking_stats": {
          "additionalProperties": {
            "type": "integer"
          },
          "title": "Tracking Stats",
          "type": "object"
        },
        "velocity": {
          "items": {
            "$ref": "#/$defs/TrendMovement"
          },
          "title": "Velocity",
          "type": "array"
        },
        "weeks_of_data": {
          "title": "Weeks Of Data",
          "type": "number"
        }
      },
      "required": [
        "status"
      ],
      "title": "TrendAnalysis",
      "type": "object"
    },
    "TrendMovement": {
      "description": "A topic's movement against its own history.",
      "properties": {
        "baseline_is_partial": {
          "title": "Baseline Is Partial",
          "type": "boolean"
        },
        "baseline_metric": {
          "title": "Baseline Metric",
          "type": "number"
        },
        "category": {
          "title": "Category",
          "type": "string"
        },
        "change_pct": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "description": "Null when there is no baseline yet.",
          "title": "Change Pct"
        },
        "current_confidence": {
          "title": "Current Confidence",
          "type": "number"
        },
        "current_mentions": {
          "title": "Current Mentions",
          "type": "integer"
        },
        "current_metric": {
          "title": "Current Metric",
          "type": "number"
        },
        "current_sources": {
          "title": "Current Sources",
          "type": "integer"
        },
        "last_confidence": {
          "title": "Last Confidence",
          "type": "number"
        },
        "last_seen_days_ago": {
          "title": "Last Seen Days Ago",
          "type": "integer"
        },
        "metric_kind": {
          "title": "Metric Kind",
          "type": "string"
        },
        "metric_trend": {
          "title": "Metric Trend",
          "type": "string"
        },
        "presence": {
          "title": "Presence",
          "type": "string"
        },
        "sources_list": {
          "items": {
            "type": "string"
          },
          "title": "Sources List",
          "type": "array"
        },
        "spike_magnitude": {
          "title": "Spike Magnitude",
          "type": "number"
        },
        "status": {
          "title": "Status",
          "type": "string"
        },
        "topic": {
          "title": "Topic",
          "type": "string"
        },
        "tracked_days": {
          "title": "Tracked Days",
          "type": "integer"
        },
        "tracked_days_before": {
          "title": "Tracked Days Before",
          "type": "integer"
        }
      },
      "required": [
        "topic",
        "category"
      ],
      "title": "TrendMovement",
      "type": "object"
    }
  },
  "$id": "https://gatiflow.io/schemas/IntelligenceReport.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "The intelligence report for the calling organization.\n\nThe same shape is served for an archived snapshot, which carries no\n``client_info`` because it was built by the collection cycle rather than\nfor a caller.",
  "properties": {
    "analytics": {
      "$ref": "#/$defs/ReportAnalytics"
    },
    "client_info": {
      "$ref": "#/$defs/ClientInfo"
    },
    "contract": {
      "$ref": "#/$defs/ReportContract"
    },
    "generated_at": {
      "format": "date-time",
      "title": "Generated At",
      "type": "string"
    },
    "metadata": {
      "$ref": "#/$defs/ReportMetadata"
    },
    "org_id": {
      "title": "Org Id",
      "type": "string"
    },
    "plan": {
      "title": "Plan",
      "type": "string"
    },
    "schema_version": {
      "description": "The contract shape this payload follows, 1.0 or 1.2.",
      "title": "Schema Version",
      "type": "string"
    },
    "score": {
      "$ref": "#/$defs/ReportScore"
    },
    "sections": {
      "$ref": "#/$defs/ReportSections"
    },
    "trend_analysis": {
      "$ref": "#/$defs/TrendAnalysis"
    }
  },
  "required": [
    "schema_version",
    "org_id",
    "plan",
    "generated_at",
    "contract",
    "metadata",
    "score",
    "sections",
    "analytics"
  ],
  "title": "IntelligenceReport",
  "type": "object",
  "x-provenance": {
    "generated_from": "https://gatiflow.io/openapi.json",
    "method": "published",
    "publisher": "GatiFlow",
    "source": "https://gatiflow.io/schemas/IntelligenceReport.json"
  }
}
