githunt-ai · Schema

UserResponse

CompanyAITalentRecruitmentDeveloper

Properties

Name Type Description
success boolean
data object
View JSON Schema on GitHub

JSON Schema

githunt-ai-user-response-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/githunt-ai/json-schema/githunt-ai-user-response-schema.json",
  "title": "UserResponse",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/githunt-ai-openapi.yaml#/components/schemas/UserResponse",
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean",
      "const": true
    },
    "data": {
      "type": "object",
      "properties": {
        "username": {
          "type": "string"
        },
        "score": {
          "type": "number"
        },
        "profile_score": {
          "type": "number"
        },
        "tech_stack_score": {
          "type": "number"
        },
        "activity_score": {
          "type": "number"
        },
        "github_experience": {
          "type": "number"
        },
        "matching_keywords": {
          "type": "string",
          "description": "Comma-separated list of matched keywords"
        },
        "bio": {
          "type": [
            "string",
            "null"
          ]
        },
        "profile_url": {
          "type": "string"
        },
        "email": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        },
        "company": {
          "type": [
            "string",
            "null"
          ]
        },
        "location": {
          "type": [
            "string",
            "null"
          ]
        },
        "followers": {
          "type": "integer"
        },
        "blog": {
          "type": [
            "string",
            "null"
          ]
        },
        "twitter_username": {
          "type": [
            "string",
            "null"
          ]
        },
        "created_at": {
          "type": "string",
          "format": "date-time"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time"
        },
        "hireable": {
          "type": "string",
          "enum": [
            "Yes",
            "No"
          ]
        },
        "avatar_url": {
          "type": "string"
        },
        "last_active_date": {
          "type": [
            "string",
            "null"
          ],
          "description": "Date of the candidate's most recent GitHub activity. Usually a date (YYYY-MM-DD); may be a full ISO date-time when derived from fallback sources."
        },
        "commits_per_month": {
          "type": [
            "number",
            "null"
          ],
          "description": "Average commits per month over recent history"
        },
        "commit_frequency_label": {
          "type": [
            "string",
            "null"
          ],
          "description": "Human label for commit activity (e.g. Very Active, Active, Unknown)"
        },
        "semantic_commit_percentage": {
          "type": [
            "number",
            "null"
          ],
          "description": "Percentage of analyzed commits with semantic/descriptive messages"
        },
        "commit_message_quality_label": {
          "type": [
            "string",
            "null"
          ],
          "description": "Human label for commit message quality (e.g. Excellent, Good, Insufficient Data)"
        },
        "top_repositories": {
          "$ref": "#/$defs/TopRepositories"
        },
        "top_oss_contributions": {
          "$ref": "#/$defs/TopOssContributions"
        },
        "evidence": {
          "$ref": "#/$defs/Evidence"
        },
        "inferred_utc_offset": {
          "$ref": "#/$defs/InferredUtcOffset"
        },
        "skill_timeline": {
          "type": "object",
          "description": "Per-language commit history, keyed by GitHub Linguist language name (e.g. \"Scala\", \"TypeScript\"). Always present; independent of the `skills` query parameter.",
          "additionalProperties": {
            "$ref": "#/$defs/SkillTimelineEntry"
          }
        },
        "skill_checks": {
          "type": "array",
          "description": "Present only when the `skills` query parameter was given.",
          "items": {
            "$ref": "#/$defs/SkillCheck"
          }
        },
        "commercial_context": {
          "$ref": "#/$defs/CommercialContext"
        }
      }
    }
  },
  "$defs": {
    "CommercialAssessment": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "supported",
            "unknown"
          ]
        },
        "supported_months": {
          "type": "integer",
          "description": "Months covered by merged dated work-history intervals. Contribution years never count towards it, so it is 0 while the profile carries no work-history evidence."
        },
        "required_months": {
          "type": "integer",
          "description": "Months the criterion requires (36 for commercial skill duration, 60 for engineering experience, 0 for the recency question, which is an overlap test rather than a duration one)."
        },
        "intervals": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "from": {
                "type": "string"
              },
              "to": {
                "type": "string"
              }
            }
          }
        },
        "evidence_ids": {
          "type": "array",
          "description": "Ids of the dated work-history records the assessment counted. Empty when the status is `unknown`; the corroborating contribution and self-report records are still listed under `records`.",
          "items": {
            "type": "string"
          }
        },
        "reason": {
          "type": "string"
        },
        "window": {
          "type": "object",
          "description": "Present on the recency assessment.",
          "properties": {
            "from": {
              "type": "string"
            },
            "to": {
              "type": "string"
            }
          }
        },
        "hints": {
          "type": "object",
          "description": "Discovery hints on the engineering-experience assessment only. Account age and first public activity never satisfy an experience requirement.",
          "properties": {
            "account_created_at": {
              "type": [
                "string",
                "null"
              ]
            },
            "first_public_activity_year": {
              "type": [
                "integer",
                "null"
              ]
            },
            "discovery_hint": {
              "type": "boolean"
            }
          }
        }
      }
    },
    "CommercialContext": {
      "type": [
        "object",
        "null"
      ],
      "description": "Typed, dated evidence about commercial work, plus explicitly reasoned assessments. Null when derivation failed. Nothing here is ever `contradicted`: absent public evidence cannot disprove private or commercial work, so the only statuses are `supported` and `unknown`. `supported` requires dated work-history evidence explicitly connecting the person, the paid work, and the dates it covers. Public GitHub data carries no such evidence, so the tenure and recency assessments are `unknown` on every profile served here. Contribution years and self-reported employers are context, never duration.",
      "properties": {
        "schema_version": {
          "type": "integer"
        },
        "evaluated_at": {
          "type": "string",
          "format": "date-time"
        },
        "window_years": {
          "type": "integer",
          "description": "Rolling recency window used by the recency assessment."
        },
        "records": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/CommercialContextRecord"
          }
        },
        "records_truncated": {
          "type": "boolean",
          "description": "True when more records existed than the server-controlled cap. Records are ordered strongest-evidence-first, so a truncated list still contains the ones the assessments cite."
        },
        "assessments": {
          "type": "object",
          "properties": {
            "commercial_scala_duration": {
              "$ref": "#/$defs/CommercialAssessment"
            },
            "recent_commercial_scala": {
              "$ref": "#/$defs/CommercialAssessment"
            },
            "engineering_experience": {
              "$ref": "#/$defs/CommercialAssessment"
            }
          }
        },
        "limitations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "CommercialContextRecord": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "kind": {
          "type": "string",
          "enum": [
            "public_org_contribution",
            "self_reported_employment",
            "commit_email_domain"
          ],
          "description": "`public_org_contribution` - the candidate authored commits in a repository owned by a company organization; contribution dates are contribution dates, never tenure. `self_reported_employment` - the profile company field or bio says so; always undated and unverified. `commit_email_domain` - commits were authored from a non-consumer mail domain; a hint only, and the address itself is never exposed."
        },
        "source_url": {
          "type": [
            "string",
            "null"
          ]
        },
        "repository": {
          "type": [
            "string",
            "null"
          ]
        },
        "commit_sha": {
          "type": [
            "string",
            "null"
          ]
        },
        "observed_at": {
          "type": [
            "string",
            "null"
          ]
        },
        "activity_at": {
          "type": [
            "string",
            "null"
          ]
        },
        "interval": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "from": {
              "type": "string"
            },
            "to": {
              "type": "string"
            },
            "precision": {
              "type": "string",
              "enum": [
                "year",
                "day"
              ]
            }
          }
        },
        "claim": {
          "type": "string"
        },
        "attribution": {
          "type": "string"
        },
        "limitations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "company": {
          "type": [
            "string",
            "null"
          ]
        },
        "organization": {
          "type": [
            "string",
            "null"
          ]
        },
        "languages": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "commits": {
          "type": "integer"
        },
        "active_years": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        }
      }
    },
    "Evidence": {
      "type": "array",
      "description": "Where each matched skill/keyword was found on the candidate.",
      "items": {
        "type": "object",
        "properties": {
          "keyword": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "enum": [
              "repo_name",
              "repo_description",
              "repo_language",
              "bio",
              "company",
              "skill_fallback"
            ]
          },
          "repo": {
            "type": "string",
            "description": "Bare repository name (no owner), present when the match came from a repository. Use `top_repositories` or the evidence report for owner-qualified names."
          },
          "snippet": {
            "type": "string",
            "description": "Short surrounding text for bio/company matches"
          }
        }
      }
    },
    "InferredUtcOffset": {
      "type": [
        "object",
        "null"
      ],
      "description": "UTC offset inferred from the candidate's own commit author timestamps, used when GitHub's `location` field is empty or unresolvable. Null when no signal is available.",
      "properties": {
        "offset": {
          "type": "number"
        },
        "confidence": {
          "type": "string",
          "enum": [
            "none",
            "low",
            "medium",
            "high"
          ]
        },
        "sample_size": {
          "type": "integer",
          "description": "Number of commits the inference was based on"
        },
        "share": {
          "type": "number",
          "description": "Fraction of sampled commits at the dominant offset"
        },
        "latest_commit": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "SkillCheck": {
      "type": "object",
      "description": "Verification of one requested `skills` entry against `skill_timeline`.",
      "properties": {
        "skill": {
          "type": "string",
          "description": "Echoes the requested skill name (alias-resolved for matching, e.g. \"ts\" -> TypeScript)"
        },
        "matched": {
          "type": "boolean"
        },
        "first_year": {
          "type": [
            "integer",
            "null"
          ]
        },
        "last_year": {
          "type": [
            "integer",
            "null"
          ]
        },
        "last_activity_at": {
          "type": [
            "string",
            "null"
          ],
          "description": "Date of the most recent dated activity in this skill, or null when the cached timeline predates dated activity (missing evidence, not evidence of inactivity)."
        },
        "years_active": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        },
        "recent_commits": {
          "type": "integer"
        },
        "total_commits": {
          "type": "integer"
        },
        "top_repos": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name_with_owner": {
                "type": "string"
              },
              "owner_type": {
                "type": "string"
              },
              "commits": {
                "type": "integer"
              }
            }
          }
        }
      }
    },
    "SkillTimelineEntry": {
      "type": "object",
      "properties": {
        "first_year": {
          "type": [
            "integer",
            "null"
          ]
        },
        "last_year": {
          "type": [
            "integer",
            "null"
          ]
        },
        "last_activity_at": {
          "type": [
            "string",
            "null"
          ],
          "description": "Date of the most recent dated activity in this language. Null on timelines cached before dated activity was recorded; a missing date is missing evidence, not evidence of inactivity."
        },
        "years_active": {
          "type": "array",
          "items": {
            "type": "integer"
          },
          "description": "Calendar years with at least a handful of commits in this language"
        },
        "total_commits": {
          "type": "integer"
        },
        "recent_commits": {
          "type": "integer",
          "description": "Commits within the recent window (last few calendar years)"
        },
        "commits_by_year": {
          "type": "object",
          "additionalProperties": {
            "type": "integer"
          }
        },
        "top_repos": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name_with_owner": {
                "type": "string"
              },
              "owner_type": {
                "type": "string"
              },
              "commits": {
                "type": "integer"
              }
            }
          }
        }
      }
    },
    "TopOssContributions": {
      "type": "array",
      "maxItems": 3,
      "description": "Notable open-source projects the candidate contributed to",
      "items": {
        "type": "object",
        "properties": {
          "repository": {
            "type": "string",
            "description": "Full repository name (owner/name)"
          },
          "tier_label": {
            "type": "string",
            "description": "Project prominence tier (e.g. Elite, Popular, Notable)"
          },
          "commits": {
            "type": "integer"
          },
          "language": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      }
    },
    "TopRepositories": {
      "type": "array",
      "maxItems": 3,
      "description": "The candidate's top repositories, as shown on the website candidate card",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "stars": {
            "type": "integer"
          },
          "language": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      }
    }
  }
}

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/githunt-ai-user-response"
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.