100Hires · Schema

Job

RecruitingArtificial IntelligenceHuman ResourcesSoftware-as-a-ServiceSmall Business

Properties

Name Type Description
id integer Unique identifier
alias stringnull Short alphanumeric alias used in UI URLs. Use this to build job links — `https://app.100hires.com/job/{alias}/candidates/pipeline`. Also accepted as `{id}` in API requests.
company_id integer ID of the company this job belongs to
title string Public job title shown to candidates
internal_title stringnull Internal job title visible only to the hiring team
internal_job_id stringnull Company's internal job identifier (e.g. requisition number)
description string Job description (HTML). Present only when `view=full` (default); omitted entirely when `view=summary` to keep list responses inside the agent context budget. Use `GET /jobs/{id}` or `view=full` to ret
resume_field_status stringnull Whether resume upload is required, optional, or hidden on the application form
location object Job location details
url string Public URL of the job posting page
url_backoffice string Backoffice URL — opens the job's pipeline view inside the recruiter app (`https://app.100hires.com/job/{alias}/candidates/pipeline`). Use this to link agent widgets / UI to the in-app job page rather
is_remote boolean Whether this is a remote position
is_hybrid boolean Whether this is a hybrid position: office days plus remote days at the job address. Never true together with is_remote.
job_board_remote_scope stringnull How a remote job is listed on Indeed: city, statewide or nationwide. Null when the job is not remote.
status string Job status: open, closed, draft, or archived
department object Department this job belongs to
category object Job category (e.g. Engineering, Marketing)
employment_type object Employment type (e.g. Full-time, Part-time, Contract)
education_level object Required education level
experience_level object Required experience level (e.g. Entry, Mid, Senior)
workflow_id integernull ID of the hiring workflow (pipeline) assigned to this job
workflow object Hiring workflow (pipeline) assigned to this job. Embedded via `include=workflow`. Suppressed when `view=summary` even if the include was requested.
form_id integernull ID of the application form candidates fill in for this job — the form attached to the job, or the company default form when the job has none attached yet (the same rule the public apply page follows).
pipeline_stages object Pipeline stages for this job's workflow. Only included when `include=pipeline_stages` is specified. Suppressed when `view=summary` even if the include was requested.
salary_min numbernull Minimum salary
salary_max numbernull Maximum salary
salary_currency stringnull Salary currency code (e.g. USD, EUR)
salary_period stringnull Salary period
hours_per_week_min integernull Minimum hours per week
hours_per_week_max integernull Maximum hours per week
indeed_posting_data object Indeed job board posting metadata. Present only when `view=full` (default); omitted entirely when `view=summary`.
hiring_team array Team members assigned to this job. Embedded via `include=hiring_team`. Suppressed when `view=summary` even if the include was requested.
is_satellite boolean Whether this job is a satellite (child) of a canonical job. Satellite jobs share the candidate pipeline of their parent.
parent_job_id integernull ID of the canonical (parent) job. Null for canonical jobs. Recruiting operations should target the canonical job.
language stringnull Locale this job's public page renders in, overriding the career site language. Null means the page follows the career site language (`GET /companies/career-site-settings`), which in turn falls back to
created_at integer Unix timestamp (seconds)
updated_at integer Unix timestamp (seconds)
ai_scoring_criteria array AI scoring criteria configured for this job, ordered by `position` ASC. Returned as an empty array when none are configured. Present only when `view=full` (default); omitted entirely when `view=summar
View JSON Schema on GitHub

JSON Schema

100hires-com-job-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/100hires-com/json-schema/100hires-com-job-schema.json",
  "title": "Job",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/100hires-com-openapi.json#/components/schemas/Job",
  "type": "object",
  "required": [
    "id",
    "company_id",
    "title",
    "status",
    "url",
    "is_remote",
    "is_hybrid",
    "created_at",
    "updated_at"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "description": "Unique identifier"
    },
    "alias": {
      "type": [
        "string",
        "null"
      ],
      "description": "Short alphanumeric alias used in UI URLs. Use this to build job links — `https://app.100hires.com/job/{alias}/candidates/pipeline`. Also accepted as `{id}` in API requests."
    },
    "company_id": {
      "type": "integer",
      "description": "ID of the company this job belongs to"
    },
    "title": {
      "type": "string",
      "description": "Public job title shown to candidates"
    },
    "internal_title": {
      "type": [
        "string",
        "null"
      ],
      "description": "Internal job title visible only to the hiring team"
    },
    "internal_job_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "Company's internal job identifier (e.g. requisition number)"
    },
    "description": {
      "type": "string",
      "description": "Job description (HTML). Present only when `view=full` (default); omitted entirely when `view=summary` to keep list responses inside the agent context budget. Use `GET /jobs/{id}` or `view=full` to retrieve."
    },
    "resume_field_status": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "required",
        "optional",
        "hidden"
      ],
      "description": "Whether resume upload is required, optional, or hidden on the application form"
    },
    "location": {
      "oneOf": [
        {
          "$ref": "#/$defs/JobLocation"
        },
        {
          "type": "null"
        }
      ],
      "description": "Job location details"
    },
    "url": {
      "type": "string",
      "description": "Public URL of the job posting page"
    },
    "url_backoffice": {
      "type": "string",
      "description": "Backoffice URL — opens the job's pipeline view inside the recruiter app (`https://app.100hires.com/job/{alias}/candidates/pipeline`). Use this to link agent widgets / UI to the in-app job page rather than the public career page."
    },
    "is_remote": {
      "type": "boolean",
      "description": "Whether this is a remote position"
    },
    "is_hybrid": {
      "type": "boolean",
      "description": "Whether this is a hybrid position: office days plus remote days at the job address. Never true together with is_remote."
    },
    "job_board_remote_scope": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "city",
        "statewide",
        "nationwide"
      ],
      "description": "How a remote job is listed on Indeed: city, statewide or nationwide. Null when the job is not remote."
    },
    "status": {
      "type": "string",
      "description": "Job status: open, closed, draft, or archived"
    },
    "department": {
      "oneOf": [
        {
          "$ref": "#/$defs/IdName"
        },
        {
          "type": "null"
        }
      ],
      "description": "Department this job belongs to"
    },
    "category": {
      "oneOf": [
        {
          "$ref": "#/$defs/IdName"
        },
        {
          "type": "null"
        }
      ],
      "description": "Job category (e.g. Engineering, Marketing)"
    },
    "employment_type": {
      "oneOf": [
        {
          "$ref": "#/$defs/IdName"
        },
        {
          "type": "null"
        }
      ],
      "description": "Employment type (e.g. Full-time, Part-time, Contract)"
    },
    "education_level": {
      "oneOf": [
        {
          "$ref": "#/$defs/IdName"
        },
        {
          "type": "null"
        }
      ],
      "description": "Required education level"
    },
    "experience_level": {
      "oneOf": [
        {
          "$ref": "#/$defs/IdName"
        },
        {
          "type": "null"
        }
      ],
      "description": "Required experience level (e.g. Entry, Mid, Senior)"
    },
    "workflow_id": {
      "type": [
        "integer",
        "null"
      ],
      "description": "ID of the hiring workflow (pipeline) assigned to this job"
    },
    "workflow": {
      "oneOf": [
        {
          "$ref": "#/$defs/IdName"
        },
        {
          "type": "null"
        }
      ],
      "description": "Hiring workflow (pipeline) assigned to this job. Embedded via `include=workflow`. Suppressed when `view=summary` even if the include was requested."
    },
    "form_id": {
      "type": [
        "integer",
        "null"
      ],
      "description": "ID of the application form candidates fill in for this job — the form attached to the job, or the company default form when the job has none attached yet (the same rule the public apply page follows). `null` only when the company has no forms. Fetch the questions with `GET /forms/{id}`. Present in both `view=full` and `view=summary`."
    },
    "pipeline_stages": {
      "oneOf": [
        {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "name": {
                "type": "string"
              }
            }
          }
        },
        {
          "type": "null"
        }
      ],
      "description": "Pipeline stages for this job's workflow. Only included when `include=pipeline_stages` is specified. Suppressed when `view=summary` even if the include was requested."
    },
    "salary_min": {
      "type": [
        "number",
        "null"
      ],
      "description": "Minimum salary"
    },
    "salary_max": {
      "type": [
        "number",
        "null"
      ],
      "description": "Maximum salary"
    },
    "salary_currency": {
      "type": [
        "string",
        "null"
      ],
      "description": "Salary currency code (e.g. USD, EUR)"
    },
    "salary_period": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "annually",
        "monthly",
        "daily",
        "hourly"
      ],
      "description": "Salary period"
    },
    "hours_per_week_min": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Minimum hours per week"
    },
    "hours_per_week_max": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Maximum hours per week"
    },
    "indeed_posting_data": {
      "type": "object",
      "additionalProperties": true,
      "description": "Indeed job board posting metadata. Present only when `view=full` (default); omitted entirely when `view=summary`."
    },
    "hiring_team": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/JobHiringTeamMember"
      },
      "description": "Team members assigned to this job. Embedded via `include=hiring_team`. Suppressed when `view=summary` even if the include was requested."
    },
    "is_satellite": {
      "type": "boolean",
      "description": "Whether this job is a satellite (child) of a canonical job. Satellite jobs share the candidate pipeline of their parent."
    },
    "parent_job_id": {
      "type": [
        "integer",
        "null"
      ],
      "description": "ID of the canonical (parent) job. Null for canonical jobs. Recruiting operations should target the canonical job."
    },
    "language": {
      "type": [
        "string",
        "null"
      ],
      "description": "Locale this job's public page renders in, overriding the career site language. Null means the page follows the career site language (`GET /companies/career-site-settings`), which in turn falls back to en-US. This is the override, not the effective language. Present in both `view=full` and `view=summary`."
    },
    "created_at": {
      "type": "integer",
      "format": "int64",
      "description": "Unix timestamp (seconds)"
    },
    "updated_at": {
      "type": "integer",
      "format": "int64",
      "description": "Unix timestamp (seconds)"
    },
    "ai_scoring_criteria": {
      "type": "array",
      "description": "AI scoring criteria configured for this job, ordered by `position` ASC. Returned as an empty array when none are configured. Present only when `view=full` (default); omitted entirely when `view=summary`.",
      "items": {
        "$ref": "#/$defs/AiScoringCriterion"
      }
    }
  },
  "$defs": {
    "AiScoringCriterion": {
      "type": "object",
      "required": [
        "id",
        "text",
        "weight",
        "position"
      ],
      "properties": {
        "id": {
          "type": "integer",
          "description": "Unique identifier of the criterion."
        },
        "title": {
          "type": [
            "string",
            "null"
          ],
          "description": "Optional short label for the criterion."
        },
        "text": {
          "type": "string",
          "description": "Prompt text describing what to evaluate."
        },
        "weight": {
          "type": "integer",
          "minimum": 1,
          "maximum": 10,
          "description": "Relative importance of this criterion in the total score (1–10)."
        },
        "position": {
          "type": "integer",
          "description": "0-based ordinal of the criterion in the job's list."
        }
      }
    },
    "IdName": {
      "type": "object",
      "required": [
        "id",
        "name"
      ],
      "properties": {
        "id": {
          "type": "integer",
          "description": "Unique identifier."
        },
        "name": {
          "type": "string",
          "description": "Display name."
        }
      }
    },
    "JobHiringTeamMember": {
      "type": "object",
      "required": [
        "id",
        "full_name"
      ],
      "properties": {
        "id": {
          "type": "integer",
          "description": "User ID."
        },
        "full_name": {
          "type": "string",
          "description": "User full name."
        },
        "email": {
          "type": [
            "string",
            "null"
          ],
          "description": "User email."
        },
        "role": {
          "type": [
            "string",
            "null"
          ],
          "description": "Role on hiring team (e.g. hiring_manager, recruiter)."
        }
      }
    },
    "JobLocation": {
      "type": "object",
      "properties": {
        "country": {
          "type": "string",
          "description": "Country."
        },
        "city": {
          "type": "string",
          "description": "City."
        },
        "state": {
          "type": "string",
          "description": "State or region."
        },
        "postal_code": {
          "type": "string",
          "description": "Postal code."
        },
        "street_address": {
          "type": "string",
          "description": "Street address."
        },
        "full_address": {
          "type": "string",
          "description": "Full formatted address."
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/100hires-com-job"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.