@smartytalent/mcp-tools 0.8.1 → 0.8.3

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 +1477 -64
  2. package/package.json +1 -1
package/dist/tools.json CHANGED
@@ -9582,14 +9582,727 @@
9582
9582
  "type": "string",
9583
9583
  "description": "Returns surveys with the current status.",
9584
9584
  "enum": [
9585
+ "draft",
9586
+ "active",
9587
+ "archived"
9588
+ ]
9589
+ },
9590
+ "filterKind": {
9591
+ "type": "string",
9592
+ "description": "Returns surveys of one kind.",
9593
+ "enum": [
9594
+ "cnps",
9595
+ "general"
9596
+ ]
9597
+ },
9598
+ "filterCreatedFrom": {
9599
+ "type": "string",
9600
+ "description": "Filters results to include only those created from the specified date and time. The value must be in ISO 8601 format."
9601
+ },
9602
+ "filterCreatedTo": {
9603
+ "type": "string",
9604
+ "description": "Filters results to include only those created up to the specified date and time. The value must be in ISO 8601 format."
9605
+ },
9606
+ "filterModifiedFrom": {
9607
+ "type": "string",
9608
+ "description": "Filters results to include only those modified from the specified date and time. The value must be in ISO 8601 format."
9609
+ },
9610
+ "filterModifiedTo": {
9611
+ "type": "string",
9612
+ "description": "Filters results to include only those modified up to the specified date and time. The value must be in ISO 8601 format."
9613
+ },
9614
+ "pageSize": {
9615
+ "type": "integer",
9616
+ "description": "Specifies the number of items to retrieve per page. The maximum value is 100."
9617
+ },
9618
+ "pageNumber": {
9619
+ "type": "integer",
9620
+ "description": "Specifies the page number to retrieve. Used for traditional pagination."
9621
+ },
9622
+ "pageAfter": {
9623
+ "type": "string",
9624
+ "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."
9625
+ },
9626
+ "pageBefore": {
9627
+ "type": "string",
9628
+ "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
9629
+ }
9630
+ }
9631
+ },
9632
+ "_meta": {
9633
+ "method": "GET",
9634
+ "path": "/v1/surveys",
9635
+ "operationId": "listSurveys"
9636
+ }
9637
+ },
9638
+ {
9639
+ "name": "create_survey",
9640
+ "description": "Create Survey",
9641
+ "inputSchema": {
9642
+ "title": "CreateSurveyRequestBody",
9643
+ "type": "object",
9644
+ "required": [
9645
+ "data"
9646
+ ],
9647
+ "properties": {
9648
+ "data": {
9649
+ "title": "CreateSurveyRequestBodyData",
9650
+ "type": "object",
9651
+ "required": [
9652
+ "type",
9653
+ "attributes"
9654
+ ],
9655
+ "properties": {
9656
+ "type": {
9657
+ "type": "string",
9658
+ "enum": [
9659
+ "surveys"
9660
+ ]
9661
+ },
9662
+ "attributes": {
9663
+ "title": "CreateSurveyRequestBodyDataAttributes",
9664
+ "type": "object",
9665
+ "required": [
9666
+ "name"
9667
+ ],
9668
+ "properties": {
9669
+ "name": {
9670
+ "type": "string",
9671
+ "minLength": 5,
9672
+ "maxLength": 255
9673
+ },
9674
+ "kind": {
9675
+ "type": "string",
9676
+ "enum": [
9677
+ "cnps",
9678
+ "general"
9679
+ ]
9680
+ },
9681
+ "content": {
9682
+ "title": "SurveyContentSchema",
9683
+ "type": "object",
9684
+ "description": "The questionnaire: a locale-keyed title plus an ordered question list.",
9685
+ "properties": {
9686
+ "title": {
9687
+ "type": "object",
9688
+ "additionalProperties": {
9689
+ "type": "string"
9690
+ },
9691
+ "description": "Locale map, e.g. {\"en-US\": \"Your application experience\", \"pl-PL\": \"...\"}. en-US is required to publish; clients render by locale prefix with en-US fallback."
9692
+ },
9693
+ "questions": {
9694
+ "type": "array",
9695
+ "minItems": 1,
9696
+ "maxItems": 50,
9697
+ "items": {
9698
+ "title": "SurveyQuestionSchema",
9699
+ "type": "object",
9700
+ "description": "One question. Common fields: questionId (server-assigned when\nomitted; stable forever after - answers key on it), type, text\n(locale map), required. Per-type fields:\n scale - scaleMin/scaleMax (integers, min < max),\n optional scaleLabels {min, max} locale maps,\n optional subtype \"nps\" (pins 0-10, enables\n detractor/passive/promoter classification)\n single-choice / multiple-choice\n - options: 2-20 entries of {value, label};\n value is a stable lowercase slug (a-z, 0-9, -)\n the recipient submits; label is a locale map\n open-text - maxLength (default 2000, max 5000)",
9701
+ "properties": {
9702
+ "questionId": {
9703
+ "type": "string",
9704
+ "maxLength": 64,
9705
+ "description": "Stable identity of the question. Server-assigned uuid hex when omitted at save."
9706
+ },
9707
+ "type": {
9708
+ "type": "string",
9709
+ "enum": [
9710
+ "scale",
9711
+ "single-choice",
9712
+ "multiple-choice",
9713
+ "open-text"
9714
+ ]
9715
+ },
9716
+ "subtype": {
9717
+ "type": "string",
9718
+ "enum": [
9719
+ "nps"
9720
+ ],
9721
+ "description": "scale only. nps pins scaleMin=0/scaleMax=10 and classifies answers detractor/passive/promoter on submit."
9722
+ },
9723
+ "required": {
9724
+ "type": "boolean",
9725
+ "default": false
9726
+ },
9727
+ "text": {
9728
+ "type": "object",
9729
+ "additionalProperties": {
9730
+ "type": "string"
9731
+ },
9732
+ "description": "Locale map of the question text. en-US required to publish."
9733
+ },
9734
+ "scaleMin": {
9735
+ "type": "integer",
9736
+ "minimum": 0,
9737
+ "maximum": 100
9738
+ },
9739
+ "scaleMax": {
9740
+ "type": "integer",
9741
+ "minimum": 0,
9742
+ "maximum": 100
9743
+ },
9744
+ "scaleLabels": {
9745
+ "type": "object",
9746
+ "description": "Optional locale maps for the scale endpoints.",
9747
+ "properties": {
9748
+ "min": {
9749
+ "type": "object",
9750
+ "additionalProperties": {
9751
+ "type": "string"
9752
+ }
9753
+ },
9754
+ "max": {
9755
+ "type": "object",
9756
+ "additionalProperties": {
9757
+ "type": "string"
9758
+ }
9759
+ }
9760
+ }
9761
+ },
9762
+ "options": {
9763
+ "type": "array",
9764
+ "minItems": 2,
9765
+ "maxItems": 20,
9766
+ "items": {
9767
+ "title": "SurveyQuestionOptionSchema",
9768
+ "type": "object",
9769
+ "properties": {
9770
+ "value": {
9771
+ "type": "string",
9772
+ "maxLength": 64,
9773
+ "description": "Stable lowercase slug (a-z, 0-9, -). What the recipient submits - locale-proof, never the label."
9774
+ },
9775
+ "label": {
9776
+ "type": "object",
9777
+ "additionalProperties": {
9778
+ "type": "string"
9779
+ },
9780
+ "description": "Locale map. en-US required to publish."
9781
+ }
9782
+ }
9783
+ }
9784
+ },
9785
+ "maxLength": {
9786
+ "type": "integer",
9787
+ "minimum": 1,
9788
+ "maximum": 5000,
9789
+ "description": "open-text only. Default 2000."
9790
+ }
9791
+ }
9792
+ }
9793
+ }
9794
+ }
9795
+ }
9796
+ }
9797
+ }
9798
+ }
9799
+ }
9800
+ }
9801
+ },
9802
+ "_meta": {
9803
+ "method": "POST",
9804
+ "path": "/v1/surveys",
9805
+ "operationId": "createSurvey"
9806
+ }
9807
+ },
9808
+ {
9809
+ "name": "surveys_options",
9810
+ "description": "Surveys Options",
9811
+ "inputSchema": {
9812
+ "type": "object",
9813
+ "properties": {}
9814
+ },
9815
+ "_meta": {
9816
+ "method": "OPTIONS",
9817
+ "path": "/v1/surveys",
9818
+ "operationId": "surveysOptions"
9819
+ }
9820
+ },
9821
+ {
9822
+ "name": "show_survey",
9823
+ "description": "Show Survey",
9824
+ "inputSchema": {
9825
+ "type": "object",
9826
+ "properties": {
9827
+ "surveyId": {
9828
+ "type": "string",
9829
+ "description": "surveyId parameter"
9830
+ }
9831
+ },
9832
+ "required": [
9833
+ "surveyId"
9834
+ ]
9835
+ },
9836
+ "_meta": {
9837
+ "method": "GET",
9838
+ "path": "/v1/surveys/{surveyId}",
9839
+ "operationId": "showSurvey"
9840
+ }
9841
+ },
9842
+ {
9843
+ "name": "update_survey",
9844
+ "description": "Update Survey",
9845
+ "inputSchema": {
9846
+ "type": "object",
9847
+ "properties": {
9848
+ "surveyId": {
9849
+ "type": "string",
9850
+ "description": "surveyId parameter"
9851
+ },
9852
+ "requestBody": {
9853
+ "title": "UpdateSurveyRequestBody",
9854
+ "type": "object",
9855
+ "required": [
9856
+ "data"
9857
+ ],
9858
+ "properties": {
9859
+ "data": {
9860
+ "title": "UpdateSurveyRequestBodyData",
9861
+ "type": "object",
9862
+ "required": [
9863
+ "type"
9864
+ ],
9865
+ "properties": {
9866
+ "type": {
9867
+ "type": "string",
9868
+ "enum": [
9869
+ "surveys"
9870
+ ]
9871
+ },
9872
+ "id": {
9873
+ "type": "string"
9874
+ },
9875
+ "attributes": {
9876
+ "title": "UpdateSurveyRequestBodyDataAttributes",
9877
+ "type": "object",
9878
+ "properties": {
9879
+ "name": {
9880
+ "type": "string",
9881
+ "minLength": 5,
9882
+ "maxLength": 255
9883
+ },
9884
+ "status": {
9885
+ "type": "string",
9886
+ "enum": [
9887
+ "draft",
9888
+ "active",
9889
+ "archived"
9890
+ ],
9891
+ "description": "active = publish. Allowed transitions: draft->active, draft->archived, active->archived, archived->active; active->active re-publishes the edited draft."
9892
+ },
9893
+ "content": {
9894
+ "title": "SurveyContentSchema",
9895
+ "type": "object",
9896
+ "description": "The questionnaire: a locale-keyed title plus an ordered question list.",
9897
+ "properties": {
9898
+ "title": {
9899
+ "type": "object",
9900
+ "additionalProperties": {
9901
+ "type": "string"
9902
+ },
9903
+ "description": "Locale map, e.g. {\"en-US\": \"Your application experience\", \"pl-PL\": \"...\"}. en-US is required to publish; clients render by locale prefix with en-US fallback."
9904
+ },
9905
+ "questions": {
9906
+ "type": "array",
9907
+ "minItems": 1,
9908
+ "maxItems": 50,
9909
+ "items": {
9910
+ "title": "SurveyQuestionSchema",
9911
+ "type": "object",
9912
+ "description": "One question. Common fields: questionId (server-assigned when\nomitted; stable forever after - answers key on it), type, text\n(locale map), required. Per-type fields:\n scale - scaleMin/scaleMax (integers, min < max),\n optional scaleLabels {min, max} locale maps,\n optional subtype \"nps\" (pins 0-10, enables\n detractor/passive/promoter classification)\n single-choice / multiple-choice\n - options: 2-20 entries of {value, label};\n value is a stable lowercase slug (a-z, 0-9, -)\n the recipient submits; label is a locale map\n open-text - maxLength (default 2000, max 5000)",
9913
+ "properties": {
9914
+ "questionId": {
9915
+ "type": "string",
9916
+ "maxLength": 64,
9917
+ "description": "Stable identity of the question. Server-assigned uuid hex when omitted at save."
9918
+ },
9919
+ "type": {
9920
+ "type": "string",
9921
+ "enum": [
9922
+ "scale",
9923
+ "single-choice",
9924
+ "multiple-choice",
9925
+ "open-text"
9926
+ ]
9927
+ },
9928
+ "subtype": {
9929
+ "type": "string",
9930
+ "enum": [
9931
+ "nps"
9932
+ ],
9933
+ "description": "scale only. nps pins scaleMin=0/scaleMax=10 and classifies answers detractor/passive/promoter on submit."
9934
+ },
9935
+ "required": {
9936
+ "type": "boolean",
9937
+ "default": false
9938
+ },
9939
+ "text": {
9940
+ "type": "object",
9941
+ "additionalProperties": {
9942
+ "type": "string"
9943
+ },
9944
+ "description": "Locale map of the question text. en-US required to publish."
9945
+ },
9946
+ "scaleMin": {
9947
+ "type": "integer",
9948
+ "minimum": 0,
9949
+ "maximum": 100
9950
+ },
9951
+ "scaleMax": {
9952
+ "type": "integer",
9953
+ "minimum": 0,
9954
+ "maximum": 100
9955
+ },
9956
+ "scaleLabels": {
9957
+ "type": "object",
9958
+ "description": "Optional locale maps for the scale endpoints.",
9959
+ "properties": {
9960
+ "min": {
9961
+ "type": "object",
9962
+ "additionalProperties": {
9963
+ "type": "string"
9964
+ }
9965
+ },
9966
+ "max": {
9967
+ "type": "object",
9968
+ "additionalProperties": {
9969
+ "type": "string"
9970
+ }
9971
+ }
9972
+ }
9973
+ },
9974
+ "options": {
9975
+ "type": "array",
9976
+ "minItems": 2,
9977
+ "maxItems": 20,
9978
+ "items": {
9979
+ "title": "SurveyQuestionOptionSchema",
9980
+ "type": "object",
9981
+ "properties": {
9982
+ "value": {
9983
+ "type": "string",
9984
+ "maxLength": 64,
9985
+ "description": "Stable lowercase slug (a-z, 0-9, -). What the recipient submits - locale-proof, never the label."
9986
+ },
9987
+ "label": {
9988
+ "type": "object",
9989
+ "additionalProperties": {
9990
+ "type": "string"
9991
+ },
9992
+ "description": "Locale map. en-US required to publish."
9993
+ }
9994
+ }
9995
+ }
9996
+ },
9997
+ "maxLength": {
9998
+ "type": "integer",
9999
+ "minimum": 1,
10000
+ "maximum": 5000,
10001
+ "description": "open-text only. Default 2000."
10002
+ }
10003
+ }
10004
+ }
10005
+ }
10006
+ }
10007
+ }
10008
+ }
10009
+ }
10010
+ }
10011
+ }
10012
+ }
10013
+ }
10014
+ },
10015
+ "required": [
10016
+ "surveyId",
10017
+ "requestBody"
10018
+ ]
10019
+ },
10020
+ "_meta": {
10021
+ "method": "PATCH",
10022
+ "path": "/v1/surveys/{surveyId}",
10023
+ "operationId": "updateSurvey"
10024
+ }
10025
+ },
10026
+ {
10027
+ "name": "delete_survey",
10028
+ "description": "Delete Survey",
10029
+ "inputSchema": {
10030
+ "type": "object",
10031
+ "properties": {
10032
+ "surveyId": {
10033
+ "type": "string",
10034
+ "description": "surveyId parameter"
10035
+ },
10036
+ "permanentDelete": {
10037
+ "type": "string",
10038
+ "description": "true removes the row instead of archiving it.",
10039
+ "enum": [
10040
+ "true",
10041
+ "false"
10042
+ ]
10043
+ }
10044
+ },
10045
+ "required": [
10046
+ "surveyId"
10047
+ ]
10048
+ },
10049
+ "_meta": {
10050
+ "method": "DELETE",
10051
+ "path": "/v1/surveys/{surveyId}",
10052
+ "operationId": "deleteSurvey"
10053
+ }
10054
+ },
10055
+ {
10056
+ "name": "survey_options",
10057
+ "description": "Survey Options",
10058
+ "inputSchema": {
10059
+ "type": "object",
10060
+ "properties": {}
10061
+ },
10062
+ "_meta": {
10063
+ "method": "OPTIONS",
10064
+ "path": "/v1/surveys/{surveyId}",
10065
+ "operationId": "surveyOptions"
10066
+ }
10067
+ },
10068
+ {
10069
+ "name": "list_responses",
10070
+ "description": "List Responses",
10071
+ "inputSchema": {
10072
+ "type": "object",
10073
+ "properties": {
10074
+ "filterStatus": {
10075
+ "type": "string",
10076
+ "description": "Returns responses with the current status.",
10077
+ "enum": [
10078
+ "pending",
10079
+ "completed",
10080
+ "expired"
10081
+ ]
10082
+ },
10083
+ "filterSurveyId": {
10084
+ "type": "string",
10085
+ "description": "Filter by the survey definition the response belongs to."
10086
+ },
10087
+ "filterCandidateId": {
10088
+ "type": "string",
10089
+ "description": "Filter by the candidate the invitation was sent to."
10090
+ },
10091
+ "filterCreatedFrom": {
10092
+ "type": "string",
10093
+ "description": "Filters results to include only those created from the specified date and time. The value must be in ISO 8601 format."
10094
+ },
10095
+ "filterCreatedTo": {
10096
+ "type": "string",
10097
+ "description": "Filters results to include only those created up to the specified date and time. The value must be in ISO 8601 format."
10098
+ },
10099
+ "filterModifiedFrom": {
10100
+ "type": "string",
10101
+ "description": "Filters results to include only those modified from the specified date and time. The value must be in ISO 8601 format."
10102
+ },
10103
+ "filterModifiedTo": {
10104
+ "type": "string",
10105
+ "description": "Filters results to include only those modified up to the specified date and time. The value must be in ISO 8601 format."
10106
+ },
10107
+ "pageSize": {
10108
+ "type": "integer",
10109
+ "description": "Specifies the number of items to retrieve per page. The maximum value is 100."
10110
+ },
10111
+ "pageNumber": {
10112
+ "type": "integer",
10113
+ "description": "Specifies the page number to retrieve. Used for traditional pagination."
10114
+ },
10115
+ "pageAfter": {
10116
+ "type": "string",
10117
+ "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."
10118
+ },
10119
+ "pageBefore": {
10120
+ "type": "string",
10121
+ "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
10122
+ }
10123
+ }
10124
+ },
10125
+ "_meta": {
10126
+ "method": "GET",
10127
+ "path": "/v1/responses",
10128
+ "operationId": "listResponses"
10129
+ }
10130
+ },
10131
+ {
10132
+ "name": "responses_options",
10133
+ "description": "Responses Options",
10134
+ "inputSchema": {
10135
+ "type": "object",
10136
+ "properties": {}
10137
+ },
10138
+ "_meta": {
10139
+ "method": "OPTIONS",
10140
+ "path": "/v1/responses",
10141
+ "operationId": "responsesOptions"
10142
+ }
10143
+ },
10144
+ {
10145
+ "name": "show_response",
10146
+ "description": "Show Response",
10147
+ "inputSchema": {
10148
+ "type": "object",
10149
+ "properties": {
10150
+ "responseId": {
10151
+ "type": "string",
10152
+ "description": "responseId parameter"
10153
+ }
10154
+ },
10155
+ "required": [
10156
+ "responseId"
10157
+ ]
10158
+ },
10159
+ "_meta": {
10160
+ "method": "GET",
10161
+ "path": "/v1/responses/{responseId}",
10162
+ "operationId": "showResponse"
10163
+ }
10164
+ },
10165
+ {
10166
+ "name": "response_options",
10167
+ "description": "Response Options",
10168
+ "inputSchema": {
10169
+ "type": "object",
10170
+ "properties": {}
10171
+ },
10172
+ "_meta": {
10173
+ "method": "OPTIONS",
10174
+ "path": "/v1/responses/{responseId}",
10175
+ "operationId": "responseOptions"
10176
+ }
10177
+ },
10178
+ {
10179
+ "name": "show_guest_response",
10180
+ "description": "Show Guest Response",
10181
+ "inputSchema": {
10182
+ "type": "object",
10183
+ "properties": {
10184
+ "tenantId": {
10185
+ "type": "string",
10186
+ "description": "Base tenant id from the emailed link. Half of the guest auth pair."
10187
+ },
10188
+ "token": {
10189
+ "type": "string",
10190
+ "description": "Per-response accessToken from the emailed link. Compared with hmac.compare_digest; mismatch returns 404."
10191
+ }
10192
+ },
10193
+ "required": [
10194
+ "tenantId",
10195
+ "token"
10196
+ ]
10197
+ },
10198
+ "_meta": {
10199
+ "method": "GET",
10200
+ "path": "/v1/guest/responses/{responseId}",
10201
+ "operationId": "showGuestResponse"
10202
+ }
10203
+ },
10204
+ {
10205
+ "name": "submit_guest_response",
10206
+ "description": "Submit Guest Response",
10207
+ "inputSchema": {
10208
+ "title": "SubmitGuestResponseRequestBody",
10209
+ "type": "object",
10210
+ "required": [
10211
+ "data",
10212
+ "meta"
10213
+ ],
10214
+ "properties": {
10215
+ "data": {
10216
+ "title": "SubmitGuestResponseRequestBodyData",
10217
+ "type": "object",
10218
+ "required": [
10219
+ "type",
10220
+ "attributes"
10221
+ ],
10222
+ "properties": {
10223
+ "type": {
10224
+ "type": "string",
10225
+ "enum": [
10226
+ "responses"
10227
+ ]
10228
+ },
10229
+ "id": {
10230
+ "type": "string"
10231
+ },
10232
+ "attributes": {
10233
+ "title": "SubmitGuestResponseRequestBodyDataAttributes",
10234
+ "type": "object",
10235
+ "required": [
10236
+ "answers"
10237
+ ],
10238
+ "properties": {
10239
+ "answers": {
10240
+ "type": "object",
10241
+ "description": "Keyed by questionId. Scale values are classified server-side (0-6 detractor, 7-8 passive, 9-10 promoter for nps questions)."
10242
+ }
10243
+ }
10244
+ }
10245
+ }
10246
+ },
10247
+ "meta": {
10248
+ "title": "GuestResponseMetaSchema",
10249
+ "description": "Auth context for the unauthenticated PATCH\n/v1/guest/responses/{id}. Both values come from the emailed link,\nnever from a session - there is no authorizer on the guest path.\ntenantId is the BASE tenant id; accessToken is the per-response\ntoken minted at create and compared with hmac.compare_digest. Any\nmismatch returns 404, intentionally indistinguishable from\n\"response not found\" so existence is never leaked.",
10250
+ "type": "object",
10251
+ "required": [
10252
+ "tenantId",
10253
+ "accessToken"
10254
+ ],
10255
+ "properties": {
10256
+ "tenantId": {
10257
+ "type": "string"
10258
+ },
10259
+ "accessToken": {
10260
+ "type": "string"
10261
+ }
10262
+ }
10263
+ }
10264
+ }
10265
+ },
10266
+ "_meta": {
10267
+ "method": "PATCH",
10268
+ "path": "/v1/guest/responses/{responseId}",
10269
+ "operationId": "submitGuestResponse"
10270
+ }
10271
+ },
10272
+ {
10273
+ "name": "guest_response_options",
10274
+ "description": "Guest Response Options",
10275
+ "inputSchema": {
10276
+ "type": "object",
10277
+ "properties": {}
10278
+ },
10279
+ "_meta": {
10280
+ "method": "OPTIONS",
10281
+ "path": "/v1/guest/responses/{responseId}",
10282
+ "operationId": "guestResponseOptions"
10283
+ }
10284
+ },
10285
+ {
10286
+ "name": "list_documents",
10287
+ "description": "List Documents",
10288
+ "inputSchema": {
10289
+ "type": "object",
10290
+ "properties": {
10291
+ "filterStatus": {
10292
+ "type": "string",
10293
+ "description": "Returns documents with the current status.",
10294
+ "enum": [
10295
+ "draft",
9585
10296
  "pending",
9586
10297
  "completed",
9587
- "expired"
10298
+ "declined",
10299
+ "expired",
10300
+ "withdrawn"
9588
10301
  ]
9589
10302
  },
9590
10303
  "filterCandidateId": {
9591
10304
  "type": "string",
9592
- "description": "Filter by the candidate the survey was sent to."
10305
+ "description": "Filter by the candidate the document belongs to."
9593
10306
  },
9594
10307
  "filterCreatedFrom": {
9595
10308
  "type": "string",
@@ -9626,71 +10339,408 @@
9626
10339
  }
9627
10340
  },
9628
10341
  "_meta": {
9629
- "method": "GET",
9630
- "path": "/v1/surveys",
9631
- "operationId": "listSurveys"
10342
+ "method": "GET",
10343
+ "path": "/v1/documents",
10344
+ "operationId": "listDocuments"
10345
+ }
10346
+ },
10347
+ {
10348
+ "name": "create_document",
10349
+ "description": "Create Document",
10350
+ "inputSchema": {
10351
+ "title": "CreateDocumentRequestBody",
10352
+ "type": "object",
10353
+ "required": [
10354
+ "data"
10355
+ ],
10356
+ "properties": {
10357
+ "data": {
10358
+ "title": "CreateDocumentRequestBodyData",
10359
+ "type": "object",
10360
+ "required": [
10361
+ "type",
10362
+ "attributes"
10363
+ ],
10364
+ "properties": {
10365
+ "type": {
10366
+ "type": "string",
10367
+ "enum": [
10368
+ "documents"
10369
+ ]
10370
+ },
10371
+ "attributes": {
10372
+ "title": "CreateDocumentRequestBodyDataAttributes",
10373
+ "type": "object",
10374
+ "required": [
10375
+ "documentType"
10376
+ ],
10377
+ "properties": {
10378
+ "documentType": {
10379
+ "type": "string",
10380
+ "enum": [
10381
+ "employment_offer",
10382
+ "employment_contract",
10383
+ "b2b_contract",
10384
+ "nda",
10385
+ "policy",
10386
+ "consent"
10387
+ ]
10388
+ },
10389
+ "process": {
10390
+ "type": "string",
10391
+ "enum": [
10392
+ "offer",
10393
+ "contract",
10394
+ "document"
10395
+ ]
10396
+ },
10397
+ "title": {
10398
+ "type": "object",
10399
+ "additionalProperties": {
10400
+ "type": "string"
10401
+ }
10402
+ },
10403
+ "languageCode": {
10404
+ "type": "string"
10405
+ },
10406
+ "organizationName": {
10407
+ "type": "string"
10408
+ },
10409
+ "body": {
10410
+ "type": "array",
10411
+ "items": {
10412
+ "type": "object"
10413
+ }
10414
+ },
10415
+ "fields": {
10416
+ "type": "array",
10417
+ "items": {
10418
+ "type": "object"
10419
+ }
10420
+ },
10421
+ "participants": {
10422
+ "type": "array",
10423
+ "items": {
10424
+ "type": "object"
10425
+ }
10426
+ },
10427
+ "expiresAt": {
10428
+ "type": "string",
10429
+ "format": "date-time"
10430
+ }
10431
+ }
10432
+ },
10433
+ "relationships": {
10434
+ "title": "DocumentRelationshipsSchema",
10435
+ "type": "object",
10436
+ "properties": {
10437
+ "candidate": {
10438
+ "title": "DocumentRelationshipsCandidateSchema",
10439
+ "type": "object",
10440
+ "properties": {
10441
+ "data": {
10442
+ "type": "object",
10443
+ "properties": {
10444
+ "type": {
10445
+ "type": "string"
10446
+ },
10447
+ "id": {
10448
+ "type": "string"
10449
+ }
10450
+ }
10451
+ }
10452
+ }
10453
+ },
10454
+ "job": {
10455
+ "title": "DocumentRelationshipsJobSchema",
10456
+ "type": "object",
10457
+ "properties": {
10458
+ "data": {
10459
+ "type": "object",
10460
+ "properties": {
10461
+ "type": {
10462
+ "type": "string"
10463
+ },
10464
+ "id": {
10465
+ "type": "string"
10466
+ }
10467
+ }
10468
+ }
10469
+ }
10470
+ },
10471
+ "conversation": {
10472
+ "title": "DocumentRelationshipsConversationSchema",
10473
+ "type": "object",
10474
+ "properties": {
10475
+ "data": {
10476
+ "type": "object",
10477
+ "properties": {
10478
+ "type": {
10479
+ "type": "string"
10480
+ },
10481
+ "id": {
10482
+ "type": "string"
10483
+ }
10484
+ }
10485
+ }
10486
+ }
10487
+ }
10488
+ }
10489
+ }
10490
+ }
10491
+ }
10492
+ }
10493
+ },
10494
+ "_meta": {
10495
+ "method": "POST",
10496
+ "path": "/v1/documents",
10497
+ "operationId": "createDocument"
9632
10498
  }
9633
10499
  },
9634
10500
  {
9635
- "name": "surveys_options",
9636
- "description": "Surveys Options",
10501
+ "name": "documents_options",
10502
+ "description": "Documents Options",
9637
10503
  "inputSchema": {
9638
10504
  "type": "object",
9639
10505
  "properties": {}
9640
10506
  },
9641
10507
  "_meta": {
9642
10508
  "method": "OPTIONS",
9643
- "path": "/v1/surveys",
9644
- "operationId": "surveysOptions"
10509
+ "path": "/v1/documents",
10510
+ "operationId": "documentsOptions"
9645
10511
  }
9646
10512
  },
9647
10513
  {
9648
- "name": "show_survey",
9649
- "description": "Show Survey",
10514
+ "name": "show_document",
10515
+ "description": "Show Document",
9650
10516
  "inputSchema": {
9651
10517
  "type": "object",
9652
10518
  "properties": {
9653
- "surveyId": {
10519
+ "documentId": {
9654
10520
  "type": "string",
9655
- "description": "surveyId parameter"
10521
+ "description": "documentId parameter"
9656
10522
  }
9657
10523
  },
9658
10524
  "required": [
9659
- "surveyId"
10525
+ "documentId"
9660
10526
  ]
9661
10527
  },
9662
10528
  "_meta": {
9663
10529
  "method": "GET",
9664
- "path": "/v1/surveys/{surveyId}",
9665
- "operationId": "showSurvey"
10530
+ "path": "/v1/documents/{documentId}",
10531
+ "operationId": "showDocument"
9666
10532
  }
9667
10533
  },
9668
10534
  {
9669
- "name": "survey_options",
9670
- "description": "Survey Options",
10535
+ "name": "update_document",
10536
+ "description": "Update Document",
10537
+ "inputSchema": {
10538
+ "type": "object",
10539
+ "properties": {
10540
+ "documentId": {
10541
+ "type": "string",
10542
+ "description": "documentId parameter"
10543
+ },
10544
+ "requestBody": {
10545
+ "title": "UpdateDocumentRequestBody",
10546
+ "type": "object",
10547
+ "required": [
10548
+ "data"
10549
+ ],
10550
+ "properties": {
10551
+ "data": {
10552
+ "title": "UpdateDocumentRequestBodyData",
10553
+ "type": "object",
10554
+ "required": [
10555
+ "type"
10556
+ ],
10557
+ "properties": {
10558
+ "type": {
10559
+ "type": "string",
10560
+ "enum": [
10561
+ "documents"
10562
+ ]
10563
+ },
10564
+ "id": {
10565
+ "type": "string"
10566
+ },
10567
+ "attributes": {
10568
+ "title": "UpdateDocumentRequestBodyDataAttributes",
10569
+ "type": "object",
10570
+ "properties": {
10571
+ "status": {
10572
+ "type": "string",
10573
+ "enum": [
10574
+ "pending",
10575
+ "withdrawn"
10576
+ ],
10577
+ "description": "pending = the SEND door (draft only); withdrawn = withdraw a sent document."
10578
+ },
10579
+ "title": {
10580
+ "type": "object",
10581
+ "additionalProperties": {
10582
+ "type": "string"
10583
+ }
10584
+ },
10585
+ "languageCode": {
10586
+ "type": "string"
10587
+ },
10588
+ "organizationName": {
10589
+ "type": "string"
10590
+ },
10591
+ "body": {
10592
+ "type": "array",
10593
+ "items": {
10594
+ "type": "object"
10595
+ }
10596
+ },
10597
+ "fields": {
10598
+ "type": "array",
10599
+ "items": {
10600
+ "type": "object"
10601
+ }
10602
+ },
10603
+ "participants": {
10604
+ "type": "array",
10605
+ "items": {
10606
+ "type": "object"
10607
+ }
10608
+ },
10609
+ "expiresAt": {
10610
+ "type": "string",
10611
+ "format": "date-time"
10612
+ }
10613
+ }
10614
+ },
10615
+ "relationships": {
10616
+ "title": "DocumentRelationshipsSchema",
10617
+ "type": "object",
10618
+ "properties": {
10619
+ "candidate": {
10620
+ "title": "DocumentRelationshipsCandidateSchema",
10621
+ "type": "object",
10622
+ "properties": {
10623
+ "data": {
10624
+ "type": "object",
10625
+ "properties": {
10626
+ "type": {
10627
+ "type": "string"
10628
+ },
10629
+ "id": {
10630
+ "type": "string"
10631
+ }
10632
+ }
10633
+ }
10634
+ }
10635
+ },
10636
+ "job": {
10637
+ "title": "DocumentRelationshipsJobSchema",
10638
+ "type": "object",
10639
+ "properties": {
10640
+ "data": {
10641
+ "type": "object",
10642
+ "properties": {
10643
+ "type": {
10644
+ "type": "string"
10645
+ },
10646
+ "id": {
10647
+ "type": "string"
10648
+ }
10649
+ }
10650
+ }
10651
+ }
10652
+ },
10653
+ "conversation": {
10654
+ "title": "DocumentRelationshipsConversationSchema",
10655
+ "type": "object",
10656
+ "properties": {
10657
+ "data": {
10658
+ "type": "object",
10659
+ "properties": {
10660
+ "type": {
10661
+ "type": "string"
10662
+ },
10663
+ "id": {
10664
+ "type": "string"
10665
+ }
10666
+ }
10667
+ }
10668
+ }
10669
+ }
10670
+ }
10671
+ }
10672
+ }
10673
+ }
10674
+ }
10675
+ }
10676
+ },
10677
+ "required": [
10678
+ "documentId",
10679
+ "requestBody"
10680
+ ]
10681
+ },
10682
+ "_meta": {
10683
+ "method": "PATCH",
10684
+ "path": "/v1/documents/{documentId}",
10685
+ "operationId": "updateDocument"
10686
+ }
10687
+ },
10688
+ {
10689
+ "name": "delete_document",
10690
+ "description": "Delete Document",
10691
+ "inputSchema": {
10692
+ "type": "object",
10693
+ "properties": {
10694
+ "documentId": {
10695
+ "type": "string",
10696
+ "description": "documentId parameter"
10697
+ }
10698
+ },
10699
+ "required": [
10700
+ "documentId"
10701
+ ]
10702
+ },
10703
+ "_meta": {
10704
+ "method": "DELETE",
10705
+ "path": "/v1/documents/{documentId}",
10706
+ "operationId": "deleteDocument"
10707
+ }
10708
+ },
10709
+ {
10710
+ "name": "document_options",
10711
+ "description": "Document Options",
9671
10712
  "inputSchema": {
9672
10713
  "type": "object",
9673
10714
  "properties": {}
9674
10715
  },
9675
10716
  "_meta": {
9676
10717
  "method": "OPTIONS",
9677
- "path": "/v1/surveys/{surveyId}",
9678
- "operationId": "surveyOptions"
10718
+ "path": "/v1/documents/{documentId}",
10719
+ "operationId": "documentOptions"
9679
10720
  }
9680
10721
  },
9681
10722
  {
9682
- "name": "show_guest_survey",
9683
- "description": "Show Guest Survey",
10723
+ "name": "show_guest_document",
10724
+ "description": "Show Guest Document",
9684
10725
  "inputSchema": {
9685
10726
  "type": "object",
9686
10727
  "properties": {
9687
10728
  "tenantId": {
9688
10729
  "type": "string",
9689
- "description": "Base tenant id from the emailed link. Half of the guest auth pair."
10730
+ "description": "Base tenant id from the emailed link. Part of the guest auth."
9690
10731
  },
9691
10732
  "token": {
9692
10733
  "type": "string",
9693
- "description": "Per-survey accessToken from the emailed link. Compared with hmac.compare_digest; mismatch returns 404."
10734
+ "description": "Per-participant accessToken from the emailed link. Compared with hmac.compare_digest; mismatch returns 404."
10735
+ },
10736
+ "process": {
10737
+ "type": "string",
10738
+ "description": "The link's {process} path segment (offer | contract | document). Mismatch with the row returns 404.",
10739
+ "enum": [
10740
+ "offer",
10741
+ "contract",
10742
+ "document"
10743
+ ]
9694
10744
  }
9695
10745
  },
9696
10746
  "required": [
@@ -9700,15 +10750,15 @@
9700
10750
  },
9701
10751
  "_meta": {
9702
10752
  "method": "GET",
9703
- "path": "/v1/guest/surveys/{surveyId}",
9704
- "operationId": "showGuestSurvey"
10753
+ "path": "/v1/guest/documents/{documentId}",
10754
+ "operationId": "showGuestDocument"
9705
10755
  }
9706
10756
  },
9707
10757
  {
9708
- "name": "submit_guest_survey",
9709
- "description": "Submit Guest Survey",
10758
+ "name": "submit_guest_document",
10759
+ "description": "Submit Guest Document",
9710
10760
  "inputSchema": {
9711
- "title": "SubmitGuestSurveyRequestBody",
10761
+ "title": "SubmitGuestDocumentRequestBody",
9712
10762
  "type": "object",
9713
10763
  "required": [
9714
10764
  "data",
@@ -9716,7 +10766,7 @@
9716
10766
  ],
9717
10767
  "properties": {
9718
10768
  "data": {
9719
- "title": "SubmitGuestSurveyRequestBodyData",
10769
+ "title": "SubmitGuestDocumentRequestBodyData",
9720
10770
  "type": "object",
9721
10771
  "required": [
9722
10772
  "type",
@@ -9726,37 +10776,40 @@
9726
10776
  "type": {
9727
10777
  "type": "string",
9728
10778
  "enum": [
9729
- "surveys"
10779
+ "documents"
9730
10780
  ]
9731
10781
  },
9732
10782
  "id": {
9733
10783
  "type": "string"
9734
10784
  },
9735
10785
  "attributes": {
9736
- "title": "SubmitGuestSurveyRequestBodyDataAttributes",
10786
+ "title": "SubmitGuestDocumentRequestBodyDataAttributes",
9737
10787
  "type": "object",
9738
10788
  "required": [
9739
- "score"
10789
+ "action"
9740
10790
  ],
9741
10791
  "properties": {
9742
- "score": {
9743
- "type": "integer",
9744
- "minimum": 0,
9745
- "maximum": 10,
9746
- "description": "The NPS answer. 0-6 buckets to detractor, 7-8 passive, 9-10 promoter - the bucketing happens server-side."
9747
- },
9748
- "comment": {
10792
+ "action": {
9749
10793
  "type": "string",
9750
- "maxLength": 2000,
9751
- "description": "Optional free text. Trimmed server-side; an empty string is stored as absent."
10794
+ "enum": [
10795
+ "VIEW",
10796
+ "ACCEPT",
10797
+ "DECLINE"
10798
+ ]
10799
+ },
10800
+ "confirmations": {
10801
+ "type": "array",
10802
+ "items": {
10803
+ "type": "string"
10804
+ }
9752
10805
  }
9753
10806
  }
9754
10807
  }
9755
10808
  }
9756
10809
  },
9757
10810
  "meta": {
9758
- "title": "GuestSurveyMetaSchema",
9759
- "description": "Auth context for the unauthenticated PATCH /v1/guest/surveys/{id}.\nBoth values come from the emailed link, never from a session -\nthere is no authorizer on the guest path. tenantId is the BASE\ntenant id; accessToken is the per-survey token minted at create and\ncompared with hmac.compare_digest. Any mismatch returns 404,\nintentionally indistinguishable from \"survey not found\" so survey\nexistence is never leaked.",
10811
+ "title": "GuestDocumentMetaSchema",
10812
+ "description": "Auth context for the unauthenticated PATCH\n/v1/guest/documents/{id}. Both values come from the emailed link,\nnever from a session. tenantId is the BASE tenant id; accessToken\nis the per-participant token minted at send and compared with\nhmac.compare_digest. Any mismatch returns 404, intentionally\nindistinguishable from \"document not found\".",
9760
10813
  "type": "object",
9761
10814
  "required": [
9762
10815
  "tenantId",
@@ -9775,21 +10828,21 @@
9775
10828
  },
9776
10829
  "_meta": {
9777
10830
  "method": "PATCH",
9778
- "path": "/v1/guest/surveys/{surveyId}",
9779
- "operationId": "submitGuestSurvey"
10831
+ "path": "/v1/guest/documents/{documentId}",
10832
+ "operationId": "submitGuestDocument"
9780
10833
  }
9781
10834
  },
9782
10835
  {
9783
- "name": "guest_survey_options",
9784
- "description": "Guest Survey Options",
10836
+ "name": "guest_document_options",
10837
+ "description": "Guest Document Options",
9785
10838
  "inputSchema": {
9786
10839
  "type": "object",
9787
10840
  "properties": {}
9788
10841
  },
9789
10842
  "_meta": {
9790
10843
  "method": "OPTIONS",
9791
- "path": "/v1/guest/surveys/{surveyId}",
9792
- "operationId": "guestSurveyOptions"
10844
+ "path": "/v1/guest/documents/{documentId}",
10845
+ "operationId": "guestDocumentOptions"
9793
10846
  }
9794
10847
  },
9795
10848
  {
@@ -14303,6 +15356,10 @@
14303
15356
  "archived"
14304
15357
  ]
14305
15358
  },
15359
+ "filterScopeKey": {
15360
+ "type": "string",
15361
+ "description": "Returns the persona for one position family in one market.\nFormat `{positionFamily}#{scope}`, where scope is\n`city:<slug>`, `voivodeship:<slug>`, `country:<code>` or\n`remote` - for example\n`regional-sales-representative#city:krakow`. Slugs are folded\n(lowercase, no diacritics), so Krakow and Kraków are one key."
15362
+ },
14306
15363
  "filterCreatedFrom": {
14307
15364
  "type": "string",
14308
15365
  "description": "Filters results to include only those created from the specified date and time. The value must be in ISO 8601 format."
@@ -14370,16 +15427,74 @@
14370
15427
  "attributes": {
14371
15428
  "title": "PersonaAttributesSchema",
14372
15429
  "type": "object",
14373
- "required": [
14374
- "name",
14375
- "email"
14376
- ],
15430
+ "description": "A persona is a REGIONAL COHORT profile, not a person: it is\nsynthesized from the talents this tenant actually hired for one\nposition family in one market. Nothing here describes an individual,\nand `name` / `profilePictureUrl` are an invented label for the\ncohort, never a real person.",
14377
15431
  "properties": {
14378
- "name": {
15432
+ "status": {
15433
+ "type": "string",
15434
+ "description": "Only `active` personas may be shown as a benchmark - see\n`memberCount`. Everything else is a work in progress.",
15435
+ "enum": [
15436
+ "active",
15437
+ "inactive",
15438
+ "draft",
15439
+ "pending",
15440
+ "archived",
15441
+ "failed"
15442
+ ]
15443
+ },
15444
+ "source": {
14379
15445
  "type": "string"
14380
15446
  },
14381
- "status": {
14382
- "type": "string"
15447
+ "name": {
15448
+ "type": "object",
15449
+ "description": "Language-keyed invented name for the archetype. Written once, then stable across rebuilds.",
15450
+ "additionalProperties": true
15451
+ },
15452
+ "profilePictureUrl": {
15453
+ "type": "string",
15454
+ "description": "Illustration for the archetype. Not a photograph of anyone."
15455
+ },
15456
+ "gender": {
15457
+ "type": "object",
15458
+ "description": "Language-keyed, cohort-derived. Locale value unconstrained (Any).",
15459
+ "additionalProperties": true
15460
+ },
15461
+ "ageRange": {
15462
+ "type": "object",
15463
+ "description": "Language-keyed, cohort-derived. Locale value unconstrained (Any).",
15464
+ "additionalProperties": true
15465
+ },
15466
+ "scope": {
15467
+ "type": "object",
15468
+ "description": "Which market this persona describes: `{level: city|voivodeship|\ncountry|remote, city?, voivodeship?, country?}`. A hire feeds\nthree personas (city, voivodeship, country), and consumers take\nthe most specific USABLE one.",
15469
+ "additionalProperties": true
15470
+ },
15471
+ "scopeKey": {
15472
+ "type": "string",
15473
+ "description": "`{positionFamily}#{scope}` - the list filter (`filterScopeKey`) and the index key."
15474
+ },
15475
+ "positionFamily": {
15476
+ "type": "string",
15477
+ "description": "Slug of the role the cohort was hired for, e.g. `regional-sales-representative`."
15478
+ },
15479
+ "memberCount": {
15480
+ "type": "integer",
15481
+ "description": "How many hired talents the cohort holds. Below 3 the profile is\nthose few people in disguise, so it is never published and never\nconsumed - k-anonymity, not a display preference."
15482
+ },
15483
+ "cohortRead": {
15484
+ "type": "integer",
15485
+ "description": "How many members actually fed the profile on this row (diagnostic; can be lower than memberCount)."
15486
+ },
15487
+ "talentCount": {
15488
+ "type": "integer",
15489
+ "description": "Legacy mirror of memberCount."
15490
+ },
15491
+ "version": {
15492
+ "type": "integer",
15493
+ "description": "Bumped by every rebuild that wrote something."
15494
+ },
15495
+ "publishedAt": {
15496
+ "type": "string",
15497
+ "description": "When this persona last became consumable."
14383
15498
  },
14384
15499
  "timestamps": {
14385
15500
  "title": "ResourceTimestampsSchema",
@@ -14394,6 +15509,126 @@
14394
15509
  "format": "date-time"
14395
15510
  }
14396
15511
  }
15512
+ },
15513
+ "availability": {
15514
+ "type": "object",
15515
+ "description": "Language-keyed availability pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15516
+ "additionalProperties": true
15517
+ },
15518
+ "certifications": {
15519
+ "type": "object",
15520
+ "description": "Language-keyed certifications pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15521
+ "additionalProperties": true
15522
+ },
15523
+ "companyTypeExperience": {
15524
+ "type": "object",
15525
+ "description": "Language-keyed companyTypeExperience pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15526
+ "additionalProperties": true
15527
+ },
15528
+ "education": {
15529
+ "type": "object",
15530
+ "description": "Language-keyed education pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15531
+ "additionalProperties": true
15532
+ },
15533
+ "experienceAndSeniority": {
15534
+ "type": "object",
15535
+ "description": "Language-keyed experienceAndSeniority pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15536
+ "additionalProperties": true
15537
+ },
15538
+ "industryExperience": {
15539
+ "type": "object",
15540
+ "description": "Language-keyed industryExperience pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15541
+ "additionalProperties": true
15542
+ },
15543
+ "jobPositions": {
15544
+ "type": "object",
15545
+ "description": "Language-keyed jobPositions pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15546
+ "additionalProperties": true
15547
+ },
15548
+ "jobTendencies": {
15549
+ "type": "object",
15550
+ "description": "Language-keyed jobTendencies pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15551
+ "additionalProperties": true
15552
+ },
15553
+ "languagesSpoken": {
15554
+ "type": "object",
15555
+ "description": "Language-keyed languagesSpoken pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15556
+ "additionalProperties": true
15557
+ },
15558
+ "licenses": {
15559
+ "type": "object",
15560
+ "description": "Language-keyed licenses pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15561
+ "additionalProperties": true
15562
+ },
15563
+ "locationPreferences": {
15564
+ "type": "object",
15565
+ "description": "Language-keyed locationPreferences pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15566
+ "additionalProperties": true
15567
+ },
15568
+ "personalityAndSoftSkills": {
15569
+ "type": "object",
15570
+ "description": "Language-keyed personalityAndSoftSkills pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15571
+ "additionalProperties": true
15572
+ },
15573
+ "salaryExpectation": {
15574
+ "type": "object",
15575
+ "description": "Language-keyed salaryExpectation pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15576
+ "additionalProperties": true
15577
+ },
15578
+ "skillsAndExpertise": {
15579
+ "type": "object",
15580
+ "description": "Language-keyed skillsAndExpertise pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15581
+ "additionalProperties": true
15582
+ },
15583
+ "workAuthorization": {
15584
+ "type": "object",
15585
+ "description": "Language-keyed workAuthorization pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15586
+ "additionalProperties": true
15587
+ },
15588
+ "workPreferences": {
15589
+ "type": "object",
15590
+ "description": "Language-keyed workPreferences pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15591
+ "additionalProperties": true
15592
+ },
15593
+ "responsibilities": {
15594
+ "type": "object",
15595
+ "description": "Language-keyed responsibilities pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15596
+ "additionalProperties": true
15597
+ },
15598
+ "hobbiesAndInterests": {
15599
+ "type": "object",
15600
+ "description": "Language-keyed narrative synthesis. Locale value unconstrained (Any) - see the candidate schema note.",
15601
+ "additionalProperties": true
15602
+ },
15603
+ "personalTraits": {
15604
+ "type": "object",
15605
+ "description": "Language-keyed narrative synthesis. Locale value unconstrained (Any) - see the candidate schema note.",
15606
+ "additionalProperties": true
15607
+ },
15608
+ "goalsAndAspirations": {
15609
+ "type": "object",
15610
+ "description": "Language-keyed narrative synthesis. Locale value unconstrained (Any) - see the candidate schema note.",
15611
+ "additionalProperties": true
15612
+ },
15613
+ "mainFrustrations": {
15614
+ "type": "object",
15615
+ "description": "Language-keyed narrative synthesis. Locale value unconstrained (Any) - see the candidate schema note.",
15616
+ "additionalProperties": true
15617
+ },
15618
+ "keyCompetenciesAndStrengths": {
15619
+ "type": "object",
15620
+ "description": "Language-keyed narrative synthesis. Locale value unconstrained (Any) - see the candidate schema note.",
15621
+ "additionalProperties": true
15622
+ },
15623
+ "quickInsights": {
15624
+ "type": "object",
15625
+ "description": "Language-keyed narrative synthesis. Locale value unconstrained (Any) - see the candidate schema note.",
15626
+ "additionalProperties": true
15627
+ },
15628
+ "keywords": {
15629
+ "type": "object",
15630
+ "description": "Language-keyed narrative synthesis. Locale value unconstrained (Any) - see the candidate schema note.",
15631
+ "additionalProperties": true
14397
15632
  }
14398
15633
  }
14399
15634
  },
@@ -14533,17 +15768,75 @@
14533
15768
  "attributes": {
14534
15769
  "title": "PersonaAttributesSchema",
14535
15770
  "type": "object",
14536
- "required": [
14537
- "name",
14538
- "email"
14539
- ],
15771
+ "description": "A persona is a REGIONAL COHORT profile, not a person: it is\nsynthesized from the talents this tenant actually hired for one\nposition family in one market. Nothing here describes an individual,\nand `name` / `profilePictureUrl` are an invented label for the\ncohort, never a real person.",
14540
15772
  "properties": {
14541
- "name": {
14542
- "type": "string"
14543
- },
14544
15773
  "status": {
15774
+ "type": "string",
15775
+ "description": "Only `active` personas may be shown as a benchmark - see\n`memberCount`. Everything else is a work in progress.",
15776
+ "enum": [
15777
+ "active",
15778
+ "inactive",
15779
+ "draft",
15780
+ "pending",
15781
+ "archived",
15782
+ "failed"
15783
+ ]
15784
+ },
15785
+ "source": {
14545
15786
  "type": "string"
14546
15787
  },
15788
+ "name": {
15789
+ "type": "object",
15790
+ "description": "Language-keyed invented name for the archetype. Written once, then stable across rebuilds.",
15791
+ "additionalProperties": true
15792
+ },
15793
+ "profilePictureUrl": {
15794
+ "type": "string",
15795
+ "description": "Illustration for the archetype. Not a photograph of anyone."
15796
+ },
15797
+ "gender": {
15798
+ "type": "object",
15799
+ "description": "Language-keyed, cohort-derived. Locale value unconstrained (Any).",
15800
+ "additionalProperties": true
15801
+ },
15802
+ "ageRange": {
15803
+ "type": "object",
15804
+ "description": "Language-keyed, cohort-derived. Locale value unconstrained (Any).",
15805
+ "additionalProperties": true
15806
+ },
15807
+ "scope": {
15808
+ "type": "object",
15809
+ "description": "Which market this persona describes: `{level: city|voivodeship|\ncountry|remote, city?, voivodeship?, country?}`. A hire feeds\nthree personas (city, voivodeship, country), and consumers take\nthe most specific USABLE one.",
15810
+ "additionalProperties": true
15811
+ },
15812
+ "scopeKey": {
15813
+ "type": "string",
15814
+ "description": "`{positionFamily}#{scope}` - the list filter (`filterScopeKey`) and the index key."
15815
+ },
15816
+ "positionFamily": {
15817
+ "type": "string",
15818
+ "description": "Slug of the role the cohort was hired for, e.g. `regional-sales-representative`."
15819
+ },
15820
+ "memberCount": {
15821
+ "type": "integer",
15822
+ "description": "How many hired talents the cohort holds. Below 3 the profile is\nthose few people in disguise, so it is never published and never\nconsumed - k-anonymity, not a display preference."
15823
+ },
15824
+ "cohortRead": {
15825
+ "type": "integer",
15826
+ "description": "How many members actually fed the profile on this row (diagnostic; can be lower than memberCount)."
15827
+ },
15828
+ "talentCount": {
15829
+ "type": "integer",
15830
+ "description": "Legacy mirror of memberCount."
15831
+ },
15832
+ "version": {
15833
+ "type": "integer",
15834
+ "description": "Bumped by every rebuild that wrote something."
15835
+ },
15836
+ "publishedAt": {
15837
+ "type": "string",
15838
+ "description": "When this persona last became consumable."
15839
+ },
14547
15840
  "timestamps": {
14548
15841
  "title": "ResourceTimestampsSchema",
14549
15842
  "type": "object",
@@ -14557,6 +15850,126 @@
14557
15850
  "format": "date-time"
14558
15851
  }
14559
15852
  }
15853
+ },
15854
+ "availability": {
15855
+ "type": "object",
15856
+ "description": "Language-keyed availability pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15857
+ "additionalProperties": true
15858
+ },
15859
+ "certifications": {
15860
+ "type": "object",
15861
+ "description": "Language-keyed certifications pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15862
+ "additionalProperties": true
15863
+ },
15864
+ "companyTypeExperience": {
15865
+ "type": "object",
15866
+ "description": "Language-keyed companyTypeExperience pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15867
+ "additionalProperties": true
15868
+ },
15869
+ "education": {
15870
+ "type": "object",
15871
+ "description": "Language-keyed education pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15872
+ "additionalProperties": true
15873
+ },
15874
+ "experienceAndSeniority": {
15875
+ "type": "object",
15876
+ "description": "Language-keyed experienceAndSeniority pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15877
+ "additionalProperties": true
15878
+ },
15879
+ "industryExperience": {
15880
+ "type": "object",
15881
+ "description": "Language-keyed industryExperience pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15882
+ "additionalProperties": true
15883
+ },
15884
+ "jobPositions": {
15885
+ "type": "object",
15886
+ "description": "Language-keyed jobPositions pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15887
+ "additionalProperties": true
15888
+ },
15889
+ "jobTendencies": {
15890
+ "type": "object",
15891
+ "description": "Language-keyed jobTendencies pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15892
+ "additionalProperties": true
15893
+ },
15894
+ "languagesSpoken": {
15895
+ "type": "object",
15896
+ "description": "Language-keyed languagesSpoken pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15897
+ "additionalProperties": true
15898
+ },
15899
+ "licenses": {
15900
+ "type": "object",
15901
+ "description": "Language-keyed licenses pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15902
+ "additionalProperties": true
15903
+ },
15904
+ "locationPreferences": {
15905
+ "type": "object",
15906
+ "description": "Language-keyed locationPreferences pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15907
+ "additionalProperties": true
15908
+ },
15909
+ "personalityAndSoftSkills": {
15910
+ "type": "object",
15911
+ "description": "Language-keyed personalityAndSoftSkills pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15912
+ "additionalProperties": true
15913
+ },
15914
+ "salaryExpectation": {
15915
+ "type": "object",
15916
+ "description": "Language-keyed salaryExpectation pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15917
+ "additionalProperties": true
15918
+ },
15919
+ "skillsAndExpertise": {
15920
+ "type": "object",
15921
+ "description": "Language-keyed skillsAndExpertise pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15922
+ "additionalProperties": true
15923
+ },
15924
+ "workAuthorization": {
15925
+ "type": "object",
15926
+ "description": "Language-keyed workAuthorization pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15927
+ "additionalProperties": true
15928
+ },
15929
+ "workPreferences": {
15930
+ "type": "object",
15931
+ "description": "Language-keyed workPreferences pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15932
+ "additionalProperties": true
15933
+ },
15934
+ "responsibilities": {
15935
+ "type": "object",
15936
+ "description": "Language-keyed responsibilities pattern across the cohort. Each entry carries its own prevalence (\"N of M hired talents\").",
15937
+ "additionalProperties": true
15938
+ },
15939
+ "hobbiesAndInterests": {
15940
+ "type": "object",
15941
+ "description": "Language-keyed narrative synthesis. Locale value unconstrained (Any) - see the candidate schema note.",
15942
+ "additionalProperties": true
15943
+ },
15944
+ "personalTraits": {
15945
+ "type": "object",
15946
+ "description": "Language-keyed narrative synthesis. Locale value unconstrained (Any) - see the candidate schema note.",
15947
+ "additionalProperties": true
15948
+ },
15949
+ "goalsAndAspirations": {
15950
+ "type": "object",
15951
+ "description": "Language-keyed narrative synthesis. Locale value unconstrained (Any) - see the candidate schema note.",
15952
+ "additionalProperties": true
15953
+ },
15954
+ "mainFrustrations": {
15955
+ "type": "object",
15956
+ "description": "Language-keyed narrative synthesis. Locale value unconstrained (Any) - see the candidate schema note.",
15957
+ "additionalProperties": true
15958
+ },
15959
+ "keyCompetenciesAndStrengths": {
15960
+ "type": "object",
15961
+ "description": "Language-keyed narrative synthesis. Locale value unconstrained (Any) - see the candidate schema note.",
15962
+ "additionalProperties": true
15963
+ },
15964
+ "quickInsights": {
15965
+ "type": "object",
15966
+ "description": "Language-keyed narrative synthesis. Locale value unconstrained (Any) - see the candidate schema note.",
15967
+ "additionalProperties": true
15968
+ },
15969
+ "keywords": {
15970
+ "type": "object",
15971
+ "description": "Language-keyed narrative synthesis. Locale value unconstrained (Any) - see the candidate schema note.",
15972
+ "additionalProperties": true
14560
15973
  }
14561
15974
  }
14562
15975
  }