MCP 서버

Open Medici Public Fellowship and Grant Search

com.openmedici/public
교육 검색 및 리서치 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

Searches and retrieves public fellowships, grants, scholarships, prizes, and funded residencies with eligibility and funding details.

get_opportunity
Get opportunity
Get one published public opportunity, its current cycles, source records, and any approved eligibility or funding facts before ranking or citing it. Missing facts remain unknown. Open Medici ranking is a catalog signal, not personalized fit, eligibility, or acceptance likelihood.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'pattern': '^[a-z0-9]+(?:-[a-z0-9]+)*$', 'maxLength': 200, 'minLength': 1}, 'locale': {'enum': ['en', 'es'], 'type': 'string', 'default': 'en'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['opportunity'], 'properties': {'opportunity': {'type': 'object', 'required': ['id', 'slug', 'name', 'organization', 'type', 'summary', 'fields', 'eligibleCountries', 'destinationCountries', 'careerStages', 'fundingMinUsd', 'fundingMaxUsd', 'nextDeadline', 'lifecycle', 'recordUrl', 'officialUrl', 'sourceCheckedAt', 'ranking', 'description', 'cycles', 'sources', 'opportunityFacts'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'type': {'type': 'string'}, 'cycles': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'opensOn', 'deadlineOn', 'applicationUrl', 'status'], 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}, 'status': {'type': 'string'}, 'opensOn': {'type': ['string', 'null']}, 'deadlineOn': {'type': ['string', 'null']}, 'applicationUrl': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'fields': {'type': 'array', 'items': {'type': 'string'}}, 'ranking': {'type': 'object', 'required': ['position', 'tier', 'score', 'badge', 'reason'], 'properties': {'tier': {'enum': ['S', 'A', 'B', 'Unscored'], 'type': 'string'}, 'badge': {'type': ['string', 'null']}, 'score': {'anyOf': [{'type': 'number', 'maximum': 100, 'minimum': 0}, {'type': 'null'}]}, 'reason': {'type': ['string', 'null']}, 'position': {'type': 'integer', 'exclusiveMinimum': 0}}, 'additionalProperties': False}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'title', 'publisher', 'publishedOn', 'retrievedAt', 'sourceCheckedAt'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'title': {'type': ['string', 'null']}, 'publisher': {'type': ['string', 'null']}, 'publishedOn': {'type': ['string', 'null']}, 'retrievedAt': {'type': 'string'}, 'sourceCheckedAt': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'summary': {'type': ['string', 'null']}, 'lifecycle': {'type': 'string'}, 'recordUrl': {'type': 'string', 'format': 'uri'}, 'description': {'type': ['string', 'null']}, 'officialUrl': {'type': 'string', 'format': 'uri'}, 'careerStages': {'type': 'array', 'items': {'type': 'string'}}, 'nextDeadline': {'type': ['string', 'null']}, 'organization': {'type': 'object', 'required': ['id', 'slug', 'name', 'pageAvailable'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'pageAvailable': {'type': 'boolean'}}, 'additionalProperties': False}, 'fundingMaxUsd': {'type': ['number', 'null']}, 'fundingMinUsd': {'type': ['number', 'null']}, 'sourceCheckedAt': {'type': ['string', 'null']}, 'opportunityFacts': {'type': 'array', 'items': {'anyOf': [{'type': 'object', 'required': ['key', 'precision', 'validity', 'checkedAt', 'freshThrough', 'evidence', 'kind', 'value'], 'properties': {'key': {'type': 'string'}, 'kind': {'type': 'string', 'const': 'funding'}, 'value': {'type': 'object', 'properties': {'scope': {'enum': ['per_recipient', 'per_project', 'cohort', 'total_pool'], 'type': 'string'}, 'amount': {'type': 'string', 'pattern': '^-?\\d+(?:\\.\\d+)?$', 'description': 'A base-10 decimal serialized as a string to preserve precision.'}, 'amountMax': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/value/properties/amount', 'description': 'A base-10 decimal serialized as a string to preserve precision.'}, 'amountMin': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/value/properties/amount', 'description': 'A base-10 decimal serialized as a string to preserve precision.'}, 'usdAmount': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/value/properties/amount', 'description': 'A base-10 decimal serialized as a string to preserve precision.'}, 'amountShape': {'enum': ['exact', 'minimum', 'maximum', 'range', 'estimated'], 'type': 'string'}, 'currencyCode': {'type': 'string'}, 'usdAmountMax': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/value/properties/amount', 'description': 'A base-10 decimal serialized as a string to preserve precision.'}, 'usdAmountMin': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/value/properties/amount', 'description': 'A base-10 decimal serialized as a string to preserve precision.'}, 'usdConvertedOn': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/validity/properties/from/anyOf/0'}, 'usdConversionRate': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/value/properties/amount', 'description': 'A base-10 decimal serialized as a string to preserve precision.'}}, 'additionalProperties': False}, 'evidence': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'locator', 'lastCheckedAt'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'locator': {'type': 'string'}, 'lastCheckedAt': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/checkedAt'}}, 'additionalProperties': False}, 'minItems': 1}, 'validity': {'type': 'object', 'required': ['from', 'through'], 'properties': {'from': {'anyOf': [{'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, {'type': 'null'}]}, 'through': {'anyOf': [{'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/validity/properties/from/anyOf/0'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'checkedAt': {'type': 'string', 'format': 'date-time'}, 'precision': {'enum': ['exact', 'estimated', 'derived'], 'type': 'string'}, 'freshThrough': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/checkedAt'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['key', 'precision', 'validity', 'checkedAt', 'freshThrough', 'evidence', 'kind', 'value'], 'properties': {'key': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/key'}, 'kind': {'type': 'string', 'const': 'benefit'}, 'value': {'type': 'object', 'properties': {'text': {'type': 'string'}, 'benefitKind': {'enum': ['stipend', 'salary', 'tuition', 'travel', 'housing', 'insurance', 'research_budget', 'in_kind'], 'type': 'string'}}, 'additionalProperties': False}, 'evidence': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/evidence'}, 'validity': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/validity'}, 'checkedAt': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/checkedAt'}, 'precision': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/precision'}, 'freshThrough': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/checkedAt'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['key', 'precision', 'validity', 'checkedAt', 'freshThrough', 'evidence', 'kind', 'value'], 'properties': {'key': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/key'}, 'kind': {'type': 'string', 'const': 'duration'}, 'value': {'type': 'object', 'properties': {'unit': {'enum': ['days', 'weeks', 'months', 'years', 'people', 'applications', 'percent'], 'type': 'string'}, 'number': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/value/properties/amount', 'description': 'A base-10 decimal serialized as a string to preserve precision.'}, 'maximum': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/value/properties/amount', 'description': 'A base-10 decimal serialized as a string to preserve precision.'}, 'minimum': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/value/properties/amount', 'description': 'A base-10 decimal serialized as a string to preserve precision.'}}, 'additionalProperties': False}, 'evidence': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/evidence'}, 'validity': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/validity'}, 'checkedAt': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/checkedAt'}, 'precision': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/precision'}, 'freshThrough': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/checkedAt'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['key', 'precision', 'validity', 'checkedAt', 'freshThrough', 'evidence', 'kind', 'value'], 'properties': {'key': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/key'}, 'kind': {'type': 'string', 'const': 'milestone'}, 'value': {'type': 'object', 'properties': {'date': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/validity/properties/from/anyOf/0'}}, 'additionalProperties': False}, 'evidence': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/evidence'}, 'validity': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/validity'}, 'checkedAt': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/checkedAt'}, 'precision': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/precision'}, 'freshThrough': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/checkedAt'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['key', 'precision', 'validity', 'checkedAt', 'freshThrough', 'evidence', 'kind', 'value'], 'properties': {'key': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/key'}, 'kind': {'type': 'string', 'const': 'statistic'}, 'value': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/2/properties/value'}, 'evidence': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/evidence'}, 'validity': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/validity'}, 'checkedAt': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/checkedAt'}, 'precision': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/precision'}, 'freshThrough': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/checkedAt'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['key', 'precision', 'validity', 'checkedAt', 'freshThrough', 'evidence', 'kind', 'value'], 'properties': {'key': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/key'}, 'kind': {'type': 'string', 'const': 'eligibility'}, 'value': {'anyOf': [{'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/2/properties/value'}, {'type': 'object', 'properties': {'text': {'type': 'string'}, 'codes': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}]}, 'evidence': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/evidence'}, 'validity': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/validity'}, 'checkedAt': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/checkedAt'}, 'precision': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/precision'}, 'freshThrough': {'$ref': '#/properties/opportunity/properties/opportunityFacts/items/anyOf/0/properties/checkedAt'}}, 'additionalProperties': False}]}}, 'eligibleCountries': {'type': 'array', 'items': {'type': 'string'}}, 'destinationCountries': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'additionalProperties': False}
list_filter_options
List filter options
List current database-backed values for one public search facet. Use this before search_opportunities instead of guessing taxonomy terms. An empty facet or absent user value means public coverage is missing; it is not evidence that the user is ineligible, so do not turn it into a hard exclusion. Map filters to facets as follows: type→types, topic→topics, applicant→applicants, career→careers, audience→audiences, education→education, enrollment→enrollments, citizenship→citizenships, residence→residences, country→countries, destination→destinations, benefit→benefits, fundingShape→fundingShapes, durationUnit→durationUnits, openState→openStates, lifecycle→lifecycles.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['facet'], 'properties': {'q': {'type': 'string', 'maxLength': 100}, 'facet': {'enum': ['types', 'lifecycles', 'fields', 'countries', 'destinations', 'careers', 'topics', 'applicants', 'audiences', 'benefits', 'citizenships', 'residences', 'education', 'enrollments', 'fundingShapes', 'durationUnits', 'openStates'], 'type': 'string', 'description': "Plural facet catalog name corresponding to a search filter; see this tool's description for the exact mapping."}, 'limit': {'type': 'integer', 'default': 50, 'maximum': 100, 'minimum': 1}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 10000, 'minimum': 0}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['data', 'meta'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['value', 'label', 'count'], 'properties': {'count': {'type': 'integer'}, 'label': {'type': 'string'}, 'value': {'type': 'string'}}, 'additionalProperties': False}}, 'meta': {'type': 'object', 'required': ['facet', 'q', 'limit', 'offset', 'count', 'total'], 'properties': {'q': {'type': 'string'}, 'count': {'type': 'integer'}, 'facet': {'enum': ['types', 'lifecycles', 'fields', 'countries', 'destinations', 'careers', 'topics', 'applicants', 'audiences', 'benefits', 'citizenships', 'residences', 'education', 'enrollments', 'fundingShapes', 'durationUnits', 'openStates'], 'type': 'string'}, 'limit': {'type': 'integer'}, 'total': {'type': 'integer'}, 'offset': {'type': 'integer'}}, 'additionalProperties': False}}, 'additionalProperties': False}
search_opportunities
Search opportunities
Search published public fellowships, grants, scholarships, prizes, and funded residencies. For matching, start with separate broad calls for the exact topic, synonyms, broader fields, and type-only grants and fellowships. Do not stack sparse topic, career, and location filters during initial discovery. Array values are OR alternatives within one filter; separate filter fields are combined with AND. Search results are candidates only: call get_opportunity before ranking or citing each one.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'default': 1, 'maximum': 10000, 'minimum': 1}, 'sort': {'enum': ['rank', 'deadline', 'name', 'recent'], 'type': 'string', 'default': 'rank'}, 'type': {'type': 'array', 'items': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'maxItems': 20, 'description': 'Use exact values returned by list_filter_options with facet="types". Multiple values are OR alternatives within this filter; different filter fields are combined with AND.'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 20, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Short topic, program, or funder query. Use separate calls for useful synonyms and broader fields.'}, 'topic': {'type': 'array', 'items': {'$ref': '#/properties/type/items'}, 'maxItems': 20, 'description': 'Use exact values returned by list_filter_options with facet="topics". Multiple values are OR alternatives within this filter; different filter fields are combined with AND.'}, 'ageMax': {'type': 'number', 'maximum': 150, 'minimum': 0}, 'ageMin': {'type': 'number', 'maximum': 150, 'minimum': 0}, 'career': {'type': 'array', 'items': {'$ref': '#/properties/type/items'}, 'maxItems': 20, 'description': 'Use exact values returned by list_filter_options with facet="careers". Multiple values are OR alternatives within this filter; different filter fields are combined with AND.'}, 'locale': {'enum': ['en', 'es'], 'type': 'string', 'default': 'en'}, 'benefit': {'type': 'array', 'items': {'$ref': '#/properties/type/items'}, 'maxItems': 20, 'description': 'Use exact values returned by list_filter_options with facet="benefits". Multiple values are OR alternatives within this filter; different filter fields are combined with AND.'}, 'country': {'type': 'array', 'items': {'$ref': '#/properties/type/items'}, 'maxItems': 20, 'description': 'Use exact values returned by list_filter_options with facet="countries". Multiple values are OR alternatives within this filter; different filter fields are combined with AND.'}, 'audience': {'type': 'array', 'items': {'$ref': '#/properties/type/items'}, 'maxItems': 20, 'description': 'Use exact values returned by list_filter_options with facet="audiences". Multiple values are OR alternatives within this filter; different filter fields are combined with AND.'}, 'openOnly': {'type': 'boolean'}, 'applicant': {'type': 'array', 'items': {'$ref': '#/properties/type/items'}, 'maxItems': 20, 'description': 'Use exact values returned by list_filter_options with facet="applicants". Multiple values are OR alternatives within this filter; different filter fields are combined with AND.'}, 'education': {'type': 'array', 'items': {'$ref': '#/properties/type/items'}, 'maxItems': 20, 'description': 'Use exact values returned by list_filter_options with facet="education". Multiple values are OR alternatives within this filter; different filter fields are combined with AND.'}, 'lifecycle': {'type': 'array', 'items': {'enum': ['active_accepting', 'active_between_cycles', 'active_no_applications', 'paused', 'ended', 'renamed_or_moved', 'inaccessible', 'unclear'], 'type': 'string'}, 'maxItems': 8, 'description': 'Use exact values returned by list_filter_options with facet="lifecycles". Multiple values are OR alternatives; different filter fields are combined with AND.'}, 'openState': {'type': 'array', 'items': {'$ref': '#/properties/type/items'}, 'maxItems': 20, 'description': 'Use exact values returned by list_filter_options with facet="openStates". Multiple values are OR alternatives within this filter; different filter fields are combined with AND.'}, 'residence': {'type': 'array', 'items': {'$ref': '#/properties/type/items'}, 'maxItems': 20, 'description': 'Use exact values returned by list_filter_options with facet="residences". Multiple values are OR alternatives within this filter; different filter fields are combined with AND.'}, 'deadlineTo': {'$ref': '#/properties/deadlineFrom'}, 'enrollment': {'type': 'array', 'items': {'$ref': '#/properties/type/items'}, 'maxItems': 20, 'description': 'Use exact values returned by list_filter_options with facet="enrollments". Multiple values are OR alternatives within this filter; different filter fields are combined with AND.'}, 'fundedOnly': {'type': 'boolean'}, 'fundingMax': {'type': 'number', 'maximum': 1000000000, 'minimum': 0}, 'fundingMin': {'type': 'number', 'maximum': 1000000000, 'minimum': 0}, 'citizenship': {'type': 'array', 'items': {'$ref': '#/properties/type/items'}, 'maxItems': 20, 'description': 'Use exact values returned by list_filter_options with facet="citizenships". Multiple values are OR alternatives within this filter; different filter fields are combined with AND.'}, 'destination': {'type': 'array', 'items': {'$ref': '#/properties/type/items'}, 'maxItems': 20, 'description': 'Use exact values returned by list_filter_options with facet="destinations". Multiple values are OR alternatives within this filter; different filter fields are combined with AND.'}, 'durationMax': {'type': 'number', 'maximum': 100000, 'minimum': 0, 'description': 'Maximum opportunity duration in days.'}, 'durationMin': {'type': 'number', 'maximum': 100000, 'minimum': 0, 'description': 'Minimum opportunity duration in days.'}, 'rollingOnly': {'type': 'boolean'}, 'deadlineFrom': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'durationUnit': {'type': 'array', 'items': {'$ref': '#/properties/type/items'}, 'maxItems': 20, 'description': 'Filter by the unit stored on duration facts; this does not change the day-based durationMin and durationMax fields.'}, 'fundingShape': {'type': 'array', 'items': {'$ref': '#/properties/type/items'}, 'maxItems': 20, 'description': 'Use exact values returned by list_filter_options with facet="fundingShapes". Multiple values are OR alternatives within this filter; different filter fields are combined with AND.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['opportunities', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['limit', 'offset', 'count', 'total', 'page', 'pages', 'sort'], 'properties': {'page': {'type': 'integer'}, 'sort': {'enum': ['rank', 'deadline', 'name', 'recent'], 'type': 'string'}, 'count': {'type': 'integer'}, 'limit': {'type': 'integer'}, 'pages': {'type': 'integer'}, 'total': {'type': 'integer'}, 'offset': {'type': 'integer'}}, 'additionalProperties': False}, 'opportunities': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'slug', 'name', 'organization', 'type', 'summary', 'fields', 'eligibleCountries', 'destinationCountries', 'careerStages', 'fundingMinUsd', 'fundingMaxUsd', 'nextDeadline', 'lifecycle', 'recordUrl', 'officialUrl', 'sourceCheckedAt', 'ranking'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'type': {'type': 'string'}, 'fields': {'type': 'array', 'items': {'type': 'string'}}, 'ranking': {'type': 'object', 'required': ['position', 'tier', 'score', 'badge', 'reason'], 'properties': {'tier': {'enum': ['S', 'A', 'B', 'Unscored'], 'type': 'string'}, 'badge': {'type': ['string', 'null']}, 'score': {'anyOf': [{'type': 'number', 'maximum': 100, 'minimum': 0}, {'type': 'null'}]}, 'reason': {'type': ['string', 'null']}, 'position': {'type': 'integer', 'exclusiveMinimum': 0}}, 'additionalProperties': False}, 'summary': {'type': ['string', 'null']}, 'lifecycle': {'type': 'string'}, 'recordUrl': {'type': 'string', 'format': 'uri'}, 'officialUrl': {'type': 'string', 'format': 'uri'}, 'careerStages': {'type': 'array', 'items': {'type': 'string'}}, 'nextDeadline': {'type': ['string', 'null']}, 'organization': {'type': 'object', 'required': ['id', 'slug', 'name', 'pageAvailable'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'pageAvailable': {'type': 'boolean'}}, 'additionalProperties': False}, 'fundingMaxUsd': {'type': ['number', 'null']}, 'fundingMinUsd': {'type': ['number', 'null']}, 'sourceCheckedAt': {'type': ['string', 'null']}, 'eligibleCountries': {'type': 'array', 'items': {'type': 'string'}}, 'destinationCountries': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}}, 'additionalProperties': False}
추가됨
list_filter_options
2026년 9월 17일 12:36 PM
추가됨
get_opportunity
2026년 9월 17일 12:36 PM
추가됨
search_opportunities
2026년 9월 17일 12:36 PM