@smartytalent/mcp-tools 0.1.33-dev.3 → 0.1.33-dev.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/tools.json +702 -6
  2. package/package.json +1 -1
package/dist/tools.json CHANGED
@@ -6931,6 +6931,10 @@
6931
6931
  "type": "string",
6932
6932
  "description": "Denormalised candidate id of the sender for inbound replies from a candidate in an active conversation. Frontend joins this against its local candidate cache to render initials and the candidate name. Null on outbound mail and on anonymous inbound that didn't match a candidate."
6933
6933
  },
6934
+ "isSystemSpam": {
6935
+ "type": "boolean",
6936
+ "description": "System-level spam verdict on this email. Set by the broker (or a future classifier) at inbound time; never reflects a single user's opinion. Distinct from `status=suppressed`, which is SES reporting we cannot deliver on OUTBOUND. Frontend's Spam folder unions (my states where isSpam=true) with (emails where isSystemSpam=true)."
6937
+ },
6934
6938
  "ttl": {
6935
6939
  "type": "string"
6936
6940
  },
@@ -7267,6 +7271,10 @@
7267
7271
  "type": "string",
7268
7272
  "description": "Denormalised candidate id of the sender for inbound replies from a candidate in an active conversation. Frontend joins this against its local candidate cache to render initials and the candidate name. Null on outbound mail and on anonymous inbound that didn't match a candidate."
7269
7273
  },
7274
+ "isSystemSpam": {
7275
+ "type": "boolean",
7276
+ "description": "System-level spam verdict on this email. Set by the broker (or a future classifier) at inbound time; never reflects a single user's opinion. Distinct from `status=suppressed`, which is SES reporting we cannot deliver on OUTBOUND. Frontend's Spam folder unions (my states where isSpam=true) with (emails where isSystemSpam=true)."
7277
+ },
7270
7278
  "ttl": {
7271
7279
  "type": "string"
7272
7280
  },
@@ -12086,6 +12094,594 @@
12086
12094
  "operationId": "noteOptions"
12087
12095
  }
12088
12096
  },
12097
+ {
12098
+ "name": "list_states",
12099
+ "description": "List States",
12100
+ "inputSchema": {
12101
+ "type": "object",
12102
+ "properties": {
12103
+ "filterResourceType": {
12104
+ "type": "string",
12105
+ "description": "Only return states for this resource type.",
12106
+ "enum": [
12107
+ "emails",
12108
+ "candidates",
12109
+ "conversations",
12110
+ "jobs",
12111
+ "talents",
12112
+ "personas",
12113
+ "reports",
12114
+ "tasks"
12115
+ ]
12116
+ },
12117
+ "filterResourceIds": {
12118
+ "type": "string",
12119
+ "description": "Comma-separated list of resource ids to batch-fetch. Requires `filterResourceType`."
12120
+ },
12121
+ "folder": {
12122
+ "type": "string",
12123
+ "description": "Folder-style filter. Exactly one value at a time (tagged-union\nsemantics - the SDK enforces this at compile time via string\nliteral union). Orthogonal to filterResourceType and\nfilterResourceIds, which scope the query but don't pick a folder.\n `all` - default, no folder filter\n `unseen` - only unread rows (sparse UnseenIndex)\n `starred` - only starred rows (sparse StarredIndex)\n `spam` - only user-spam-marked rows (sparse SpamIndex)\n `label:<labelId>` - rows whose flags.labels contains the labelId"
12124
+ },
12125
+ "pageSize": {
12126
+ "type": "integer",
12127
+ "description": "Specifies the number of items to retrieve per page. The maximum value is 100."
12128
+ },
12129
+ "pageAfter": {
12130
+ "type": "string",
12131
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
12132
+ },
12133
+ "pageBefore": {
12134
+ "type": "string",
12135
+ "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
12136
+ }
12137
+ }
12138
+ },
12139
+ "_meta": {
12140
+ "method": "GET",
12141
+ "path": "/v1/states",
12142
+ "operationId": "listStates"
12143
+ }
12144
+ },
12145
+ {
12146
+ "name": "create_state",
12147
+ "description": "Upsert State",
12148
+ "inputSchema": {
12149
+ "title": "CreateStateRequestBody",
12150
+ "type": "object",
12151
+ "required": [
12152
+ "data"
12153
+ ],
12154
+ "properties": {
12155
+ "data": {
12156
+ "title": "CreateStateRequestBodyData",
12157
+ "type": "object",
12158
+ "required": [
12159
+ "type",
12160
+ "attributes"
12161
+ ],
12162
+ "properties": {
12163
+ "type": {
12164
+ "type": "string",
12165
+ "enum": [
12166
+ "states"
12167
+ ]
12168
+ },
12169
+ "attributes": {
12170
+ "title": "StateAttributesSchema",
12171
+ "type": "object",
12172
+ "properties": {
12173
+ "userId": {
12174
+ "type": "string",
12175
+ "description": "Owner of this state row. Always the authenticated user; never set by the client."
12176
+ },
12177
+ "resourceType": {
12178
+ "type": "string",
12179
+ "enum": [
12180
+ "emails",
12181
+ "candidates",
12182
+ "conversations",
12183
+ "jobs",
12184
+ "talents",
12185
+ "personas",
12186
+ "reports",
12187
+ "tasks"
12188
+ ],
12189
+ "description": "The kind of resource this state describes. Lives in the composite id as `{resourceType}:{resourceId}`."
12190
+ },
12191
+ "resourceId": {
12192
+ "type": "string",
12193
+ "description": "Id of the resource this state describes (e.g. an emailId, candidateId)."
12194
+ },
12195
+ "isSeen": {
12196
+ "type": "boolean",
12197
+ "description": "True if the user has opened the resource at least once. Derived from the presence of `seenAt`; clients can write either `isSeen` or `seenAt` on upsert."
12198
+ },
12199
+ "isStarred": {
12200
+ "type": "boolean",
12201
+ "description": "True if the user has starred/favourited the resource."
12202
+ },
12203
+ "isSpam": {
12204
+ "type": "boolean",
12205
+ "description": "True if the user marked this resource as spam. Distinct from the email service's `suppressed` status, which is SES-driven on outbound delivery; this is an inbound, per-user action."
12206
+ },
12207
+ "seenAt": {
12208
+ "type": "string",
12209
+ "description": "ISO 8601 timestamp of the user's most recent open. Absent means never seen."
12210
+ },
12211
+ "starredAt": {
12212
+ "type": "string",
12213
+ "description": "ISO 8601 timestamp of when the user starred the resource. Absent means not starred; used as the sort key for the `Starred` folder."
12214
+ },
12215
+ "spamAt": {
12216
+ "type": "string",
12217
+ "description": "ISO 8601 timestamp of when the user marked the resource as spam. Absent means not spam; used as the sort key for the `Spam` folder."
12218
+ },
12219
+ "resourceCreatedAt": {
12220
+ "type": "string",
12221
+ "description": "Denormalised copy of the underlying resource's own `created` timestamp. Used as the sparse unread-index sort key so the unread feed surfaces oldest resources first, not oldest state rows."
12222
+ },
12223
+ "flags": {
12224
+ "type": "object",
12225
+ "additionalProperties": true,
12226
+ "description": "Open-ended per-resource flags (e.g. `{muted: true}` on conversations, `{pinned: true}` on candidates). First-class state goes on the top-level attributes; ad-hoc state lives here."
12227
+ },
12228
+ "timestamps": {
12229
+ "title": "ResourceTimestampsSchema",
12230
+ "type": "object",
12231
+ "properties": {
12232
+ "created": {
12233
+ "type": "string",
12234
+ "format": "date-time"
12235
+ },
12236
+ "modified": {
12237
+ "type": "string",
12238
+ "format": "date-time"
12239
+ }
12240
+ }
12241
+ }
12242
+ }
12243
+ }
12244
+ }
12245
+ }
12246
+ }
12247
+ },
12248
+ "_meta": {
12249
+ "method": "POST",
12250
+ "path": "/v1/states",
12251
+ "operationId": "createState"
12252
+ }
12253
+ },
12254
+ {
12255
+ "name": "states_options",
12256
+ "description": "States Options",
12257
+ "inputSchema": {
12258
+ "type": "object",
12259
+ "properties": {}
12260
+ },
12261
+ "_meta": {
12262
+ "method": "OPTIONS",
12263
+ "path": "/v1/states",
12264
+ "operationId": "statesOptions"
12265
+ }
12266
+ },
12267
+ {
12268
+ "name": "show_state",
12269
+ "description": "Show State",
12270
+ "inputSchema": {
12271
+ "type": "object",
12272
+ "properties": {}
12273
+ },
12274
+ "_meta": {
12275
+ "method": "GET",
12276
+ "path": "/v1/states/{stateId}",
12277
+ "operationId": "showState"
12278
+ }
12279
+ },
12280
+ {
12281
+ "name": "update_state",
12282
+ "description": "Update State",
12283
+ "inputSchema": {
12284
+ "title": "UpdateStateRequestBody",
12285
+ "type": "object",
12286
+ "required": [
12287
+ "data"
12288
+ ],
12289
+ "properties": {
12290
+ "data": {
12291
+ "title": "UpdateStateRequestBodyData",
12292
+ "type": "object",
12293
+ "required": [
12294
+ "type",
12295
+ "id",
12296
+ "attributes"
12297
+ ],
12298
+ "properties": {
12299
+ "type": {
12300
+ "type": "string",
12301
+ "enum": [
12302
+ "states"
12303
+ ]
12304
+ },
12305
+ "id": {
12306
+ "type": "string"
12307
+ },
12308
+ "attributes": {
12309
+ "title": "StateAttributesSchema",
12310
+ "type": "object",
12311
+ "properties": {
12312
+ "userId": {
12313
+ "type": "string",
12314
+ "description": "Owner of this state row. Always the authenticated user; never set by the client."
12315
+ },
12316
+ "resourceType": {
12317
+ "type": "string",
12318
+ "enum": [
12319
+ "emails",
12320
+ "candidates",
12321
+ "conversations",
12322
+ "jobs",
12323
+ "talents",
12324
+ "personas",
12325
+ "reports",
12326
+ "tasks"
12327
+ ],
12328
+ "description": "The kind of resource this state describes. Lives in the composite id as `{resourceType}:{resourceId}`."
12329
+ },
12330
+ "resourceId": {
12331
+ "type": "string",
12332
+ "description": "Id of the resource this state describes (e.g. an emailId, candidateId)."
12333
+ },
12334
+ "isSeen": {
12335
+ "type": "boolean",
12336
+ "description": "True if the user has opened the resource at least once. Derived from the presence of `seenAt`; clients can write either `isSeen` or `seenAt` on upsert."
12337
+ },
12338
+ "isStarred": {
12339
+ "type": "boolean",
12340
+ "description": "True if the user has starred/favourited the resource."
12341
+ },
12342
+ "isSpam": {
12343
+ "type": "boolean",
12344
+ "description": "True if the user marked this resource as spam. Distinct from the email service's `suppressed` status, which is SES-driven on outbound delivery; this is an inbound, per-user action."
12345
+ },
12346
+ "seenAt": {
12347
+ "type": "string",
12348
+ "description": "ISO 8601 timestamp of the user's most recent open. Absent means never seen."
12349
+ },
12350
+ "starredAt": {
12351
+ "type": "string",
12352
+ "description": "ISO 8601 timestamp of when the user starred the resource. Absent means not starred; used as the sort key for the `Starred` folder."
12353
+ },
12354
+ "spamAt": {
12355
+ "type": "string",
12356
+ "description": "ISO 8601 timestamp of when the user marked the resource as spam. Absent means not spam; used as the sort key for the `Spam` folder."
12357
+ },
12358
+ "resourceCreatedAt": {
12359
+ "type": "string",
12360
+ "description": "Denormalised copy of the underlying resource's own `created` timestamp. Used as the sparse unread-index sort key so the unread feed surfaces oldest resources first, not oldest state rows."
12361
+ },
12362
+ "flags": {
12363
+ "type": "object",
12364
+ "additionalProperties": true,
12365
+ "description": "Open-ended per-resource flags (e.g. `{muted: true}` on conversations, `{pinned: true}` on candidates). First-class state goes on the top-level attributes; ad-hoc state lives here."
12366
+ },
12367
+ "timestamps": {
12368
+ "title": "ResourceTimestampsSchema",
12369
+ "type": "object",
12370
+ "properties": {
12371
+ "created": {
12372
+ "type": "string",
12373
+ "format": "date-time"
12374
+ },
12375
+ "modified": {
12376
+ "type": "string",
12377
+ "format": "date-time"
12378
+ }
12379
+ }
12380
+ }
12381
+ }
12382
+ }
12383
+ }
12384
+ }
12385
+ }
12386
+ },
12387
+ "_meta": {
12388
+ "method": "PATCH",
12389
+ "path": "/v1/states/{stateId}",
12390
+ "operationId": "updateState"
12391
+ }
12392
+ },
12393
+ {
12394
+ "name": "delete_state",
12395
+ "description": "Delete State",
12396
+ "inputSchema": {
12397
+ "type": "object",
12398
+ "properties": {}
12399
+ },
12400
+ "_meta": {
12401
+ "method": "DELETE",
12402
+ "path": "/v1/states/{stateId}",
12403
+ "operationId": "deleteState"
12404
+ }
12405
+ },
12406
+ {
12407
+ "name": "state_options",
12408
+ "description": "State Options",
12409
+ "inputSchema": {
12410
+ "type": "object",
12411
+ "properties": {}
12412
+ },
12413
+ "_meta": {
12414
+ "method": "OPTIONS",
12415
+ "path": "/v1/states/{stateId}",
12416
+ "operationId": "stateOptions"
12417
+ }
12418
+ },
12419
+ {
12420
+ "name": "list_labels",
12421
+ "description": "List Labels",
12422
+ "inputSchema": {
12423
+ "type": "object",
12424
+ "properties": {
12425
+ "filterStatus": {
12426
+ "type": "string",
12427
+ "description": "filterStatus parameter",
12428
+ "enum": [
12429
+ "active",
12430
+ "archived"
12431
+ ]
12432
+ },
12433
+ "pageSize": {
12434
+ "type": "integer",
12435
+ "description": "Specifies the number of items to retrieve per page. The maximum value is 100."
12436
+ }
12437
+ }
12438
+ },
12439
+ "_meta": {
12440
+ "method": "GET",
12441
+ "path": "/v1/labels",
12442
+ "operationId": "listLabels"
12443
+ }
12444
+ },
12445
+ {
12446
+ "name": "create_label",
12447
+ "description": "Create Label",
12448
+ "inputSchema": {
12449
+ "title": "CreateLabelRequestBody",
12450
+ "type": "object",
12451
+ "required": [
12452
+ "data"
12453
+ ],
12454
+ "properties": {
12455
+ "data": {
12456
+ "title": "CreateLabelRequestBodyData",
12457
+ "type": "object",
12458
+ "required": [
12459
+ "type",
12460
+ "attributes"
12461
+ ],
12462
+ "properties": {
12463
+ "type": {
12464
+ "type": "string",
12465
+ "enum": [
12466
+ "labels"
12467
+ ]
12468
+ },
12469
+ "attributes": {
12470
+ "title": "LabelAttributesSchema",
12471
+ "type": "object",
12472
+ "properties": {
12473
+ "name": {
12474
+ "type": "string",
12475
+ "description": "Display name. Unique within a scope by convention but not enforced."
12476
+ },
12477
+ "color": {
12478
+ "type": "string",
12479
+ "description": "Hex or CSS-named color the UI uses to render the label pill."
12480
+ },
12481
+ "description": {
12482
+ "type": "string"
12483
+ },
12484
+ "scope": {
12485
+ "type": "string",
12486
+ "enum": [
12487
+ "tenant",
12488
+ "user"
12489
+ ],
12490
+ "description": "tenant = visible to every user in the tenant; user = visible only to the owner."
12491
+ },
12492
+ "ownerId": {
12493
+ "type": "string",
12494
+ "description": "Set server-side from the caller. Tenant-scope: tenantId. User-scope: the authenticated user's full userId."
12495
+ },
12496
+ "resourceTypes": {
12497
+ "type": "array",
12498
+ "items": {
12499
+ "type": "string"
12500
+ },
12501
+ "description": "Optional UI hint: if set, the frontend only exposes this label in the picker for these resource types (emails, candidates, ...). Not enforced server-side."
12502
+ },
12503
+ "status": {
12504
+ "type": "string",
12505
+ "enum": [
12506
+ "active",
12507
+ "archived"
12508
+ ],
12509
+ "description": "Archived labels stay readable (for historical assignments) but disappear from the default list."
12510
+ },
12511
+ "timestamps": {
12512
+ "title": "ResourceTimestampsSchema",
12513
+ "type": "object",
12514
+ "properties": {
12515
+ "created": {
12516
+ "type": "string",
12517
+ "format": "date-time"
12518
+ },
12519
+ "modified": {
12520
+ "type": "string",
12521
+ "format": "date-time"
12522
+ }
12523
+ }
12524
+ }
12525
+ }
12526
+ }
12527
+ }
12528
+ }
12529
+ }
12530
+ },
12531
+ "_meta": {
12532
+ "method": "POST",
12533
+ "path": "/v1/labels",
12534
+ "operationId": "createLabel"
12535
+ }
12536
+ },
12537
+ {
12538
+ "name": "labels_options",
12539
+ "description": "Labels Options",
12540
+ "inputSchema": {
12541
+ "type": "object",
12542
+ "properties": {}
12543
+ },
12544
+ "_meta": {
12545
+ "method": "OPTIONS",
12546
+ "path": "/v1/labels",
12547
+ "operationId": "labelsOptions"
12548
+ }
12549
+ },
12550
+ {
12551
+ "name": "show_label",
12552
+ "description": "Show Label",
12553
+ "inputSchema": {
12554
+ "type": "object",
12555
+ "properties": {}
12556
+ },
12557
+ "_meta": {
12558
+ "method": "GET",
12559
+ "path": "/v1/labels/{labelId}",
12560
+ "operationId": "showLabel"
12561
+ }
12562
+ },
12563
+ {
12564
+ "name": "update_label",
12565
+ "description": "Update Label",
12566
+ "inputSchema": {
12567
+ "title": "UpdateLabelRequestBody",
12568
+ "type": "object",
12569
+ "required": [
12570
+ "data"
12571
+ ],
12572
+ "properties": {
12573
+ "data": {
12574
+ "title": "UpdateLabelRequestBodyData",
12575
+ "type": "object",
12576
+ "required": [
12577
+ "type",
12578
+ "id",
12579
+ "attributes"
12580
+ ],
12581
+ "properties": {
12582
+ "type": {
12583
+ "type": "string",
12584
+ "enum": [
12585
+ "labels"
12586
+ ]
12587
+ },
12588
+ "id": {
12589
+ "type": "string"
12590
+ },
12591
+ "attributes": {
12592
+ "title": "LabelAttributesSchema",
12593
+ "type": "object",
12594
+ "properties": {
12595
+ "name": {
12596
+ "type": "string",
12597
+ "description": "Display name. Unique within a scope by convention but not enforced."
12598
+ },
12599
+ "color": {
12600
+ "type": "string",
12601
+ "description": "Hex or CSS-named color the UI uses to render the label pill."
12602
+ },
12603
+ "description": {
12604
+ "type": "string"
12605
+ },
12606
+ "scope": {
12607
+ "type": "string",
12608
+ "enum": [
12609
+ "tenant",
12610
+ "user"
12611
+ ],
12612
+ "description": "tenant = visible to every user in the tenant; user = visible only to the owner."
12613
+ },
12614
+ "ownerId": {
12615
+ "type": "string",
12616
+ "description": "Set server-side from the caller. Tenant-scope: tenantId. User-scope: the authenticated user's full userId."
12617
+ },
12618
+ "resourceTypes": {
12619
+ "type": "array",
12620
+ "items": {
12621
+ "type": "string"
12622
+ },
12623
+ "description": "Optional UI hint: if set, the frontend only exposes this label in the picker for these resource types (emails, candidates, ...). Not enforced server-side."
12624
+ },
12625
+ "status": {
12626
+ "type": "string",
12627
+ "enum": [
12628
+ "active",
12629
+ "archived"
12630
+ ],
12631
+ "description": "Archived labels stay readable (for historical assignments) but disappear from the default list."
12632
+ },
12633
+ "timestamps": {
12634
+ "title": "ResourceTimestampsSchema",
12635
+ "type": "object",
12636
+ "properties": {
12637
+ "created": {
12638
+ "type": "string",
12639
+ "format": "date-time"
12640
+ },
12641
+ "modified": {
12642
+ "type": "string",
12643
+ "format": "date-time"
12644
+ }
12645
+ }
12646
+ }
12647
+ }
12648
+ }
12649
+ }
12650
+ }
12651
+ }
12652
+ },
12653
+ "_meta": {
12654
+ "method": "PATCH",
12655
+ "path": "/v1/labels/{labelId}",
12656
+ "operationId": "updateLabel"
12657
+ }
12658
+ },
12659
+ {
12660
+ "name": "delete_label",
12661
+ "description": "Delete Label",
12662
+ "inputSchema": {
12663
+ "type": "object",
12664
+ "properties": {}
12665
+ },
12666
+ "_meta": {
12667
+ "method": "DELETE",
12668
+ "path": "/v1/labels/{labelId}",
12669
+ "operationId": "deleteLabel"
12670
+ }
12671
+ },
12672
+ {
12673
+ "name": "label_options",
12674
+ "description": "Label Options",
12675
+ "inputSchema": {
12676
+ "type": "object",
12677
+ "properties": {}
12678
+ },
12679
+ "_meta": {
12680
+ "method": "OPTIONS",
12681
+ "path": "/v1/labels/{labelId}",
12682
+ "operationId": "labelOptions"
12683
+ }
12684
+ },
12089
12685
  {
12090
12686
  "name": "list_meetings",
12091
12687
  "description": "List Meetings",
@@ -15128,12 +15724,62 @@
15128
15724
  "description": "The type of search to perform"
15129
15725
  },
15130
15726
  "query": {
15131
- "type": "object",
15132
- "description": "Search query parameters sent to OpenSearch. Supported keys for talent search: Semantic (full-text match) - \"search\" (multi-match across all text fields), \"name\", \"quickInsights\", \"skillsAndExpertise\", \"professionalExperience\", \"education\", \"experienceAndSeniority\", \"jobPositions\", \"keywords\", \"certifications\", \"industryExperience\", \"languagesSpoken\", \"locationPreferences\", \"personalityAndSoftSkills\", \"availability\", \"workPreferences\", \"workAuthorization\". Filters (exact match) - \"status\", \"source\", \"email\", \"gender\", \"shortCode\", \"isTalentPool\", \"relocationWillingness\", \"requiresSponsorship\", \"careerBreak\". IDs - \"jobId\", \"talentId\"."
15727
+ "description": "Search query parameters sent to OpenSearch. Shape varies by finder `type`. OpenAPI can't express the full type/query correlation as a strict discriminated union (the discriminator lives on the sibling `type` field, not on `query` itself), so this is encoded as `oneOf` over per-type query schemas. Clients should pick the shape matching the `type` they are posting.",
15728
+ "oneOf": [
15729
+ {
15730
+ "$ref": "#/components/schemas/FinderQueryTalentsSchema"
15731
+ },
15732
+ {
15733
+ "$ref": "#/components/schemas/FinderQueryCandidatesSchema"
15734
+ },
15735
+ {
15736
+ "$ref": "#/components/schemas/FinderQueryJobsSchema"
15737
+ },
15738
+ {
15739
+ "$ref": "#/components/schemas/FinderQueryEmailsSchema"
15740
+ }
15741
+ ]
15133
15742
  },
15134
15743
  "results": {
15744
+ "title": "FinderResultsSchema",
15135
15745
  "type": "object",
15136
- "description": "The search results returned from OpenSearch (auto-populated)"
15746
+ "description": "OpenSearch-shaped results attached to the finder record after the search runs. Hits array items carry whatever subset of the index schema was projected.",
15747
+ "properties": {
15748
+ "total": {
15749
+ "type": "integer",
15750
+ "description": "Count of matching documents before pagination."
15751
+ },
15752
+ "hits": {
15753
+ "type": "array",
15754
+ "items": {
15755
+ "title": "FinderResultHitSchema",
15756
+ "type": "object",
15757
+ "description": "Single hit from the OpenSearch query. The `id` equals the underlying resource id (emailId, talentId, candidateId, jobId, ...) so the frontend can navigate directly to that resource. Additional fields vary by finder `type`.",
15758
+ "properties": {
15759
+ "id": {
15760
+ "type": "string",
15761
+ "description": "The underlying resource id (emailId / talentId / candidateId / jobId)."
15762
+ },
15763
+ "tenantId": {
15764
+ "type": "string"
15765
+ },
15766
+ "status": {
15767
+ "type": "string"
15768
+ },
15769
+ "source": {
15770
+ "type": "string"
15771
+ },
15772
+ "created": {
15773
+ "type": "string"
15774
+ },
15775
+ "shortCode": {
15776
+ "type": "string"
15777
+ }
15778
+ },
15779
+ "additionalProperties": true
15780
+ }
15781
+ }
15782
+ }
15137
15783
  },
15138
15784
  "status": {
15139
15785
  "type": "string",
@@ -15361,12 +16007,62 @@
15361
16007
  "description": "The type of search to perform"
15362
16008
  },
15363
16009
  "query": {
15364
- "type": "object",
15365
- "description": "Search query parameters sent to OpenSearch. Supported keys for talent search: Semantic (full-text match) - \"search\" (multi-match across all text fields), \"name\", \"quickInsights\", \"skillsAndExpertise\", \"professionalExperience\", \"education\", \"experienceAndSeniority\", \"jobPositions\", \"keywords\", \"certifications\", \"industryExperience\", \"languagesSpoken\", \"locationPreferences\", \"personalityAndSoftSkills\", \"availability\", \"workPreferences\", \"workAuthorization\". Filters (exact match) - \"status\", \"source\", \"email\", \"gender\", \"shortCode\", \"isTalentPool\", \"relocationWillingness\", \"requiresSponsorship\", \"careerBreak\". IDs - \"jobId\", \"talentId\"."
16010
+ "description": "Search query parameters sent to OpenSearch. Shape varies by finder `type`. OpenAPI can't express the full type/query correlation as a strict discriminated union (the discriminator lives on the sibling `type` field, not on `query` itself), so this is encoded as `oneOf` over per-type query schemas. Clients should pick the shape matching the `type` they are posting.",
16011
+ "oneOf": [
16012
+ {
16013
+ "$ref": "#/components/schemas/FinderQueryTalentsSchema"
16014
+ },
16015
+ {
16016
+ "$ref": "#/components/schemas/FinderQueryCandidatesSchema"
16017
+ },
16018
+ {
16019
+ "$ref": "#/components/schemas/FinderQueryJobsSchema"
16020
+ },
16021
+ {
16022
+ "$ref": "#/components/schemas/FinderQueryEmailsSchema"
16023
+ }
16024
+ ]
15366
16025
  },
15367
16026
  "results": {
16027
+ "title": "FinderResultsSchema",
15368
16028
  "type": "object",
15369
- "description": "The search results returned from OpenSearch (auto-populated)"
16029
+ "description": "OpenSearch-shaped results attached to the finder record after the search runs. Hits array items carry whatever subset of the index schema was projected.",
16030
+ "properties": {
16031
+ "total": {
16032
+ "type": "integer",
16033
+ "description": "Count of matching documents before pagination."
16034
+ },
16035
+ "hits": {
16036
+ "type": "array",
16037
+ "items": {
16038
+ "title": "FinderResultHitSchema",
16039
+ "type": "object",
16040
+ "description": "Single hit from the OpenSearch query. The `id` equals the underlying resource id (emailId, talentId, candidateId, jobId, ...) so the frontend can navigate directly to that resource. Additional fields vary by finder `type`.",
16041
+ "properties": {
16042
+ "id": {
16043
+ "type": "string",
16044
+ "description": "The underlying resource id (emailId / talentId / candidateId / jobId)."
16045
+ },
16046
+ "tenantId": {
16047
+ "type": "string"
16048
+ },
16049
+ "status": {
16050
+ "type": "string"
16051
+ },
16052
+ "source": {
16053
+ "type": "string"
16054
+ },
16055
+ "created": {
16056
+ "type": "string"
16057
+ },
16058
+ "shortCode": {
16059
+ "type": "string"
16060
+ }
16061
+ },
16062
+ "additionalProperties": true
16063
+ }
16064
+ }
16065
+ }
15370
16066
  },
15371
16067
  "status": {
15372
16068
  "type": "string",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartytalent/mcp-tools",
3
- "version": "0.1.33-dev.3",
3
+ "version": "0.1.33-dev.5",
4
4
  "description": "MCP tool definitions for SmartyTalent API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",