Know-How tags

Users can configure (add or remove) tags shown on their know-how. This is in contrast to the users' expertise, which is not configurable but determined by the AI.

Get Know-How

GET /users/:id/tag-labels/know-how

Get the know-how of a user.

Example request

GET /users/123/tag-labels/know-how

Response

HTTP 200 OK with payload:

{
  "tags": [
      {
          "label": "Data",
          "score": 1.0,
          "confirmed": true
      },
      {
          "label": "Software",
          "score": 0.78,
          "confirmed": true
      },
      {
          "label": "Software Architecture",
          "score": 0.3,
          "confirmed": true
      }
  ],
  "total": 3,
  "user_defined": true
}

If the Set Know-How endpoint was never called for this user, then

  • The tags that are returned are based on the user's expertise profile that is automatically generated by Starmind's AI (see also GET /users/:id/expertise).
  • Each tag will have the flag confirmed set to true.
  • The flag user_defined will be false.

If on the other hand the Set Know-How endpoint was called at some point for this user, then

  • The tags that are returned are those tags that were submitted with the most recent "Set Know-How" request for the user.
  • The flag confirmed of a tag is only set to true if the Starmind's AI also considered this user to be an expert on this tag.
  • The flag user_defined will be true.

Set Know-How

PUT /users/:id/tag-labels/know-how

Set the know-how of a user.

Example request

PUT /users/123/tag-labels/know-how
{
  "tags": [
    "Data",
    "Software"
  ],
  "remove_tags": [
    "IT Support"
  ]
}

Tags that don't yet exist will be created.

tags are the tags that the user wants to have shown on their know-how profile. Whatever tags the user had set before will be replaced with the ones specified here.

remove_tags are the tags that the user does not want to have shown. These are accumulated, so there's no need to pass all the tags to remove, but only those that weren't removed before. If a tag needs to be restored, it can be specified in tags with another call.

If a tag appears in both tags and remove_tags, its presence in remove_tags will be ignored.

Response

HTTP 200 OK with payload:

{
  "tags": [
      {
          "label": "Data",
          "score": 1.0,
          "confirmed": true
      },
      {
          "label": "Software",
          "score": 0.78,
          "confirmed": true
      }
  ],
  "total": 2,
  "user_defined": true
}

HTTP 400 BAD REQUEST if the number of tags exceeds the maximum number of tags to be set.