{
  "id": "contextdev.people.enrich",
  "object": "tool",
  "name": "Enrich Person",
  "summary": "Enrich a person from identity clues into one scored, normalized profile.",
  "description": "Turn additive identity clues — social profile URLs, a name plus company, a work email, education, or location — into the best person candidate with an identity match score from 0 to 100. Returns name, current role with organization and dates, full experience and education history, skills, bio, avatar, location, and social and website URLs, or a clean not_found result to branch on. All supplied clues are considered together, so more clues mean a stronger match. Suited for CRM enrichment, lead qualification, signup intelligence, and candidate research.\n\nRaw contextdev#people/enrich endpoint: input is { body, queryParams, pathParams } as the provider documents them (https://docs.context.dev/api-reference/people/enrich).",
  "category": "lookup",
  "hosted_by": "Context.dev",
  "runtime": "partner",
  "side_effects": false,
  "status": "live",
  "credits": 0,
  "price": null,
  "providers": [
    {
      "id": "contextdev",
      "name": "Context.dev",
      "price": null,
      "own_key_only": true
    }
  ],
  "mcp_name": "contextdev_people_enrich",
  "input_schema": {
    "type": "object",
    "properties": {
      "body": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "social_urls": {
                "minItems": 1,
                "maxItems": 20,
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^https?:\\/\\/\\S+$"
                },
                "description": "Person-profile URLs (LinkedIn, GitHub, X, personal site) — the strongest clue. Up to 20."
              },
              "name": {
                "type": "object",
                "properties": {
                  "first": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "description": "Given name."
                  },
                  "last": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "description": "Family name."
                  }
                },
                "required": [
                  "first",
                  "last"
                ],
                "additionalProperties": false,
                "description": "The person's name. On its own it is not enough — pair it with company, education, or location."
              },
              "email": {
                "type": "string",
                "maxLength": 320,
                "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$",
                "description": "WORK email address. Free-provider (gmail.com, yahoo.com) and disposable addresses are rejected upstream with a 422 at no charge."
              },
              "company": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200,
                    "description": "Organization name."
                  },
                  "domain": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 253,
                    "description": "Organization website domain."
                  }
                },
                "additionalProperties": false,
                "description": "Current or recent employer."
              },
              "education": {
                "minItems": 1,
                "maxItems": 10,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "institution": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200,
                          "description": "Organization name."
                        },
                        "domain": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 253,
                          "description": "Organization website domain."
                        }
                      },
                      "additionalProperties": false,
                      "description": "School or university."
                    },
                    "degree": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200,
                      "description": "Degree earned, e.g. 'BSc'."
                    },
                    "field_of_study": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200,
                      "description": "Field of study, e.g. 'Computer Science'."
                    },
                    "graduation_year": {
                      "type": "integer",
                      "minimum": 1900,
                      "maximum": 2200,
                      "description": "Graduation year."
                    }
                  },
                  "additionalProperties": false
                },
                "description": "Education history clues. Up to 10 entries."
              },
              "location": {
                "type": "object",
                "properties": {
                  "city": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "region": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "country": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  }
                },
                "additionalProperties": false,
                "description": "Where the person lives or works."
              },
              "timeoutOpts": {
                "type": "object",
                "properties": {
                  "milliseconds": {
                    "type": "integer",
                    "minimum": 1000,
                    "maximum": 300000,
                    "description": "Request deadline in milliseconds (1000-300000)."
                  },
                  "behavior": {
                    "type": "string",
                    "enum": [
                      "fail",
                      "return-partial"
                    ],
                    "description": "What to do at the deadline: 'fail' returns 408 at no charge (default); 'return-partial' returns the usable results collected so far and bills them."
                  }
                },
                "required": [
                  "milliseconds"
                ],
                "additionalProperties": false,
                "description": "Request deadline and behavior on timeout."
              }
            },
            "required": [
              "email"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "social_urls": {
                "minItems": 1,
                "maxItems": 20,
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^https?:\\/\\/\\S+$"
                },
                "description": "Person-profile URLs (LinkedIn, GitHub, X, personal site) — the strongest clue. Up to 20."
              },
              "name": {
                "type": "object",
                "properties": {
                  "first": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "description": "Given name."
                  },
                  "last": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "description": "Family name."
                  }
                },
                "required": [
                  "first",
                  "last"
                ],
                "additionalProperties": false,
                "description": "The person's name. On its own it is not enough — pair it with company, education, or location."
              },
              "email": {
                "type": "string",
                "maxLength": 320,
                "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$",
                "description": "WORK email address. Free-provider (gmail.com, yahoo.com) and disposable addresses are rejected upstream with a 422 at no charge."
              },
              "company": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200,
                    "description": "Organization name."
                  },
                  "domain": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 253,
                    "description": "Organization website domain."
                  }
                },
                "additionalProperties": false,
                "description": "Current or recent employer."
              },
              "education": {
                "minItems": 1,
                "maxItems": 10,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "institution": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200,
                          "description": "Organization name."
                        },
                        "domain": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 253,
                          "description": "Organization website domain."
                        }
                      },
                      "additionalProperties": false,
                      "description": "School or university."
                    },
                    "degree": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200,
                      "description": "Degree earned, e.g. 'BSc'."
                    },
                    "field_of_study": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200,
                      "description": "Field of study, e.g. 'Computer Science'."
                    },
                    "graduation_year": {
                      "type": "integer",
                      "minimum": 1900,
                      "maximum": 2200,
                      "description": "Graduation year."
                    }
                  },
                  "additionalProperties": false
                },
                "description": "Education history clues. Up to 10 entries."
              },
              "location": {
                "type": "object",
                "properties": {
                  "city": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "region": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "country": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  }
                },
                "additionalProperties": false,
                "description": "Where the person lives or works."
              },
              "timeoutOpts": {
                "type": "object",
                "properties": {
                  "milliseconds": {
                    "type": "integer",
                    "minimum": 1000,
                    "maximum": 300000,
                    "description": "Request deadline in milliseconds (1000-300000)."
                  },
                  "behavior": {
                    "type": "string",
                    "enum": [
                      "fail",
                      "return-partial"
                    ],
                    "description": "What to do at the deadline: 'fail' returns 408 at no charge (default); 'return-partial' returns the usable results collected so far and bills them."
                  }
                },
                "required": [
                  "milliseconds"
                ],
                "additionalProperties": false,
                "description": "Request deadline and behavior on timeout."
              }
            },
            "required": [
              "social_urls"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "social_urls": {
                "minItems": 1,
                "maxItems": 20,
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^https?:\\/\\/\\S+$"
                },
                "description": "Person-profile URLs (LinkedIn, GitHub, X, personal site) — the strongest clue. Up to 20."
              },
              "name": {
                "type": "object",
                "properties": {
                  "first": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "description": "Given name."
                  },
                  "last": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "description": "Family name."
                  }
                },
                "required": [
                  "first",
                  "last"
                ],
                "additionalProperties": false,
                "description": "The person's name. On its own it is not enough — pair it with company, education, or location."
              },
              "email": {
                "type": "string",
                "maxLength": 320,
                "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$",
                "description": "WORK email address. Free-provider (gmail.com, yahoo.com) and disposable addresses are rejected upstream with a 422 at no charge."
              },
              "company": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200,
                    "description": "Organization name."
                  },
                  "domain": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 253,
                    "description": "Organization website domain."
                  }
                },
                "additionalProperties": false,
                "description": "Current or recent employer."
              },
              "education": {
                "minItems": 1,
                "maxItems": 10,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "institution": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200,
                          "description": "Organization name."
                        },
                        "domain": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 253,
                          "description": "Organization website domain."
                        }
                      },
                      "additionalProperties": false,
                      "description": "School or university."
                    },
                    "degree": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200,
                      "description": "Degree earned, e.g. 'BSc'."
                    },
                    "field_of_study": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200,
                      "description": "Field of study, e.g. 'Computer Science'."
                    },
                    "graduation_year": {
                      "type": "integer",
                      "minimum": 1900,
                      "maximum": 2200,
                      "description": "Graduation year."
                    }
                  },
                  "additionalProperties": false
                },
                "description": "Education history clues. Up to 10 entries."
              },
              "location": {
                "type": "object",
                "properties": {
                  "city": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "region": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "country": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  }
                },
                "additionalProperties": false,
                "description": "Where the person lives or works."
              },
              "timeoutOpts": {
                "type": "object",
                "properties": {
                  "milliseconds": {
                    "type": "integer",
                    "minimum": 1000,
                    "maximum": 300000,
                    "description": "Request deadline in milliseconds (1000-300000)."
                  },
                  "behavior": {
                    "type": "string",
                    "enum": [
                      "fail",
                      "return-partial"
                    ],
                    "description": "What to do at the deadline: 'fail' returns 408 at no charge (default); 'return-partial' returns the usable results collected so far and bills them."
                  }
                },
                "required": [
                  "milliseconds"
                ],
                "additionalProperties": false,
                "description": "Request deadline and behavior on timeout."
              }
            },
            "required": [
              "name",
              "company"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "social_urls": {
                "minItems": 1,
                "maxItems": 20,
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^https?:\\/\\/\\S+$"
                },
                "description": "Person-profile URLs (LinkedIn, GitHub, X, personal site) — the strongest clue. Up to 20."
              },
              "name": {
                "type": "object",
                "properties": {
                  "first": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "description": "Given name."
                  },
                  "last": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "description": "Family name."
                  }
                },
                "required": [
                  "first",
                  "last"
                ],
                "additionalProperties": false,
                "description": "The person's name. On its own it is not enough — pair it with company, education, or location."
              },
              "email": {
                "type": "string",
                "maxLength": 320,
                "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$",
                "description": "WORK email address. Free-provider (gmail.com, yahoo.com) and disposable addresses are rejected upstream with a 422 at no charge."
              },
              "company": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200,
                    "description": "Organization name."
                  },
                  "domain": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 253,
                    "description": "Organization website domain."
                  }
                },
                "additionalProperties": false,
                "description": "Current or recent employer."
              },
              "education": {
                "minItems": 1,
                "maxItems": 10,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "institution": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200,
                          "description": "Organization name."
                        },
                        "domain": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 253,
                          "description": "Organization website domain."
                        }
                      },
                      "additionalProperties": false,
                      "description": "School or university."
                    },
                    "degree": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200,
                      "description": "Degree earned, e.g. 'BSc'."
                    },
                    "field_of_study": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200,
                      "description": "Field of study, e.g. 'Computer Science'."
                    },
                    "graduation_year": {
                      "type": "integer",
                      "minimum": 1900,
                      "maximum": 2200,
                      "description": "Graduation year."
                    }
                  },
                  "additionalProperties": false
                },
                "description": "Education history clues. Up to 10 entries."
              },
              "location": {
                "type": "object",
                "properties": {
                  "city": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "region": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "country": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  }
                },
                "additionalProperties": false,
                "description": "Where the person lives or works."
              },
              "timeoutOpts": {
                "type": "object",
                "properties": {
                  "milliseconds": {
                    "type": "integer",
                    "minimum": 1000,
                    "maximum": 300000,
                    "description": "Request deadline in milliseconds (1000-300000)."
                  },
                  "behavior": {
                    "type": "string",
                    "enum": [
                      "fail",
                      "return-partial"
                    ],
                    "description": "What to do at the deadline: 'fail' returns 408 at no charge (default); 'return-partial' returns the usable results collected so far and bills them."
                  }
                },
                "required": [
                  "milliseconds"
                ],
                "additionalProperties": false,
                "description": "Request deadline and behavior on timeout."
              }
            },
            "required": [
              "name",
              "education"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "social_urls": {
                "minItems": 1,
                "maxItems": 20,
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^https?:\\/\\/\\S+$"
                },
                "description": "Person-profile URLs (LinkedIn, GitHub, X, personal site) — the strongest clue. Up to 20."
              },
              "name": {
                "type": "object",
                "properties": {
                  "first": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "description": "Given name."
                  },
                  "last": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "description": "Family name."
                  }
                },
                "required": [
                  "first",
                  "last"
                ],
                "additionalProperties": false,
                "description": "The person's name. On its own it is not enough — pair it with company, education, or location."
              },
              "email": {
                "type": "string",
                "maxLength": 320,
                "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$",
                "description": "WORK email address. Free-provider (gmail.com, yahoo.com) and disposable addresses are rejected upstream with a 422 at no charge."
              },
              "company": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200,
                    "description": "Organization name."
                  },
                  "domain": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 253,
                    "description": "Organization website domain."
                  }
                },
                "additionalProperties": false,
                "description": "Current or recent employer."
              },
              "education": {
                "minItems": 1,
                "maxItems": 10,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "institution": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200,
                          "description": "Organization name."
                        },
                        "domain": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 253,
                          "description": "Organization website domain."
                        }
                      },
                      "additionalProperties": false,
                      "description": "School or university."
                    },
                    "degree": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200,
                      "description": "Degree earned, e.g. 'BSc'."
                    },
                    "field_of_study": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200,
                      "description": "Field of study, e.g. 'Computer Science'."
                    },
                    "graduation_year": {
                      "type": "integer",
                      "minimum": 1900,
                      "maximum": 2200,
                      "description": "Graduation year."
                    }
                  },
                  "additionalProperties": false
                },
                "description": "Education history clues. Up to 10 entries."
              },
              "location": {
                "type": "object",
                "properties": {
                  "city": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "region": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "country": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  }
                },
                "additionalProperties": false,
                "description": "Where the person lives or works."
              },
              "timeoutOpts": {
                "type": "object",
                "properties": {
                  "milliseconds": {
                    "type": "integer",
                    "minimum": 1000,
                    "maximum": 300000,
                    "description": "Request deadline in milliseconds (1000-300000)."
                  },
                  "behavior": {
                    "type": "string",
                    "enum": [
                      "fail",
                      "return-partial"
                    ],
                    "description": "What to do at the deadline: 'fail' returns 408 at no charge (default); 'return-partial' returns the usable results collected so far and bills them."
                  }
                },
                "required": [
                  "milliseconds"
                ],
                "additionalProperties": false,
                "description": "Request deadline and behavior on timeout."
              }
            },
            "required": [
              "name",
              "location"
            ],
            "additionalProperties": false
          }
        ],
        "description": "Provide an email, a social profile URL, or a name plus company, education, or location."
      }
    },
    "required": [],
    "additionalProperties": false
  },
  "kind": "endpoint"
}