Serveur MCP

Open Medici Public Fellowship and Grant Search

com.openmedici/public
Éducation Recherche et exploration Public et accessible MCP 2025-11-25

Ce que fait ce 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.
Lecture seule Idempotent
Schéma d’entrée
{'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}
Schéma de sortie
{'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.
Lecture seule Idempotent
Schéma d’entrée
{'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}
Schéma de sortie
{'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.
Lecture seule Idempotent
Schéma d’entrée
{'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}
Schéma de sortie
{'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}
Ajouté
list_filter_options
17 September 2026 12:36
Ajouté
get_opportunity
17 September 2026 12:36
Ajouté
search_opportunities
17 September 2026 12:36