{
  "collected_on": "2026-09-19",
  "sources": {
    "hn_who_is_hiring": "Hacker News 'Ask HN: Who is hiring?' threads for July, August and September 2026 (one top-level comment = one posting), via the Algolia API",
    "remotive": "Remotive public remote-jobs feed, software-dev and data categories",
    "arbeitnow": "Arbeitnow public job-board API (largely European postings)"
  },
  "postings_total_collected": 2470,
  "postings_ai_ml": 315,
  "ai_ml_by_source": {
    "hn": 186,
    "remotive": 3,
    "arbeitnow": 126
  },
  "ai_ml_by_month": {
    "2026-07": 61,
    "2026-08": 64,
    "2026-09": 190
  },
  "method": "A posting counts as AI/ML when its title names an AI, ML, LLM, NLP, computer-vision, data-science or MLOps role, or its body names such a role explicitly. Each skill is counted once per posting if mentioned at all (case-insensitive, word-boundary). Percentages in the article are of postings_ai_ml.",
  "years_of_experience": {
    "postings_stating_years": 66,
    "median_years": 5,
    "share_asking_3_or_fewer": 0.258,
    "share_asking_5_or_more": 0.576
  },
  "role_titles": {
    "Software engineer (AI/ML product)": 62,
    "AI engineer": 48,
    "Founding engineer": 23,
    "Forward deployed engineer": 16,
    "ML engineer / machine learning engineer": 13,
    "Data scientist": 9,
    "MLOps / ML platform / infra": 9,
    "Applied / research scientist": 2,
    "Data engineer": 2
  },
  "mentions": {
    "languages": {
      "Python": 119,
      "SQL": 32,
      "TypeScript / JavaScript": 60,
      "Go": 2,
      "Rust": 8,
      "Java (not JavaScript)": 14,
      "C++": 12,
      "Scala": 5
    },
    "ml_frameworks": {
      "PyTorch": 16,
      "TensorFlow": 9,
      "scikit-learn": 3,
      "Hugging Face / transformers": 8,
      "JAX": 3,
      "XGBoost / LightGBM": 0
    },
    "llm_stack": {
      "LLMs (any mention)": 108,
      "RAG / retrieval": 34,
      "Agents / agentic": 123,
      "Fine-tuning": 24,
      "Prompt engineering": 17,
      "Embeddings": 11,
      "Vector database": 16,
      "Evals / evaluation": 73,
      "LangChain / LlamaIndex": 27,
      "OpenAI API": 28,
      "Anthropic / Claude": 49,
      "Gemini": 11,
      "Model Context Protocol (MCP)": 28
    },
    "data_infra": {
      "Spark / Databricks": 14,
      "Snowflake / BigQuery / Redshift": 17,
      "dbt": 4,
      "Airflow / Dagster / Prefect": 4,
      "Kafka": 6,
      "Postgres": 32,
      "pandas / NumPy": 3
    },
    "cloud_ops": {
      "AWS": 51,
      "GCP": 20,
      "Azure": 24,
      "Docker / containers": 32,
      "Kubernetes": 24,
      "Terraform / IaC": 21,
      "CI/CD": 31,
      "MLOps / MLflow / SageMaker / Vertex": 26,
      "Monitoring / observability": 54
    },
    "practices": {
      "Production / shipped systems": 124,
      "System design / architecture": 72,
      "Experimentation / A/B testing": 16,
      "Testing": 38,
      "Distributed systems": 10,
      "Security": 51,
      "Data pipelines / ETL": 24
    },
    "working_with_people": {
      "Communication": 68,
      "Stakeholders / cross-functional": 52,
      "Mentoring": 31,
      "Ownership / autonomy": 117,
      "Product sense / customers": 89
    },
    "credentials": {
      "Degree mentioned (BS/MS/PhD)": 37,
      "PhD mentioned": 9,
      "Certification mentioned": 21,
      "Portfolio / GitHub / side projects": 54,
      "'Years of experience' stated": 67
    },
    "workplace": {
      "Remote": 144,
      "Hybrid": 72,
      "On-site": 101,
      "Salary or range stated": 46,
      "Equity": 81,
      "Visa sponsorship": 27
    },
    "regions_named": {
      "United States": 98,
      "United Kingdom": 64,
      "Europe": 137,
      "India": 9,
      "Australia": 3,
      "Canada": 18
    }
  }
}
