Endorsing skills

This page describes how to create workflows for endorsing skills on the profiles of your 1st-degree connections.

LinkedIn lets you endorse skills only of your 1st-degree connections. Endorsing never removes an endorsement: a skill you have already endorsed is left as it is and reported as a success.

Endorsing a skill

To endorse one skill by its name, you need to include st.endorsePersonSkill action in your workflow. It can also start the workflow on its own, with personUrl and skillName. Here's an example:

Workflow:

{
  "actionType": "st.openPersonPage",
  "personUrl": "https://www.linkedin.com/in/person1",
  "basicInfo": false,
  "then": {
    "actionType": "st.endorsePersonSkill",
    "skillName": "Project Management"
  }
}

Completion:

json
{
  "actionType": "st.openPersonPage",
  "success": true,
  "data": {
    "then": {
      "actionType": "st.endorsePersonSkill",
      "success": true
    }
  }
}

Endorsing skills that match patterns

To endorse every skill whose name matches one or more patterns, you need to include st.doForSkills with st.endorsePersonSkill as a child of st.retrievePersonSkills. Omit skillNamePatterns to endorse every skill. Skill names are in the profile owner's language, so write patterns in that language.

Patterns use RE2 syntax, the dialect of Go regexp and Google Sheets REGEXMATCH. Ordinary patterns read like JavaScript regular expressions, but lookaround ((?=…), (?!…)) and backreferences (\1) are not supported. Matching is case-insensitive and searches anywhere in the name; anchor a pattern with ^…$ to match the whole name. See st.doForSkills for the full rules.

Patterns are JSON strings – in the SDKs, ordinary string literals – so each backslash is written twice: "project\\s*manage" is the regular expression project\s*manage.

Here's an example that endorses only skills related to business and project management:

Workflow:

{
  "actionType": "st.openPersonPage",
  "personUrl": "https://www.linkedin.com/in/person1",
  "basicInfo": false,
  "then": {
    "actionType": "st.retrievePersonSkills",
    "then": {
      "actionType": "st.doForSkills",
      "skillNamePatterns": ["business", "project\\s*manage", "^(agile|scrum)$"],
      "then": {
        "actionType": "st.endorsePersonSkill"
      }
    }
  }
}

Completion:

json
{
  "actionType": "st.openPersonPage",
  "success": true,
  "data": {
    "then": {
      "actionType": "st.retrievePersonSkills",
      "success": true,
      "data": [
        {
          "name": "Business Strategy",
          "then": [
            {
              "actionType": "st.endorsePersonSkill",
              "success": true
            }
          ]
        },
        {
          "name": "Python"
        },
        {
          "name": "Project Management",
          "then": [
            {
              "actionType": "st.endorsePersonSkill",
              "success": true
            }
          ]
        }
      ]
    }
  }
}

Every skill of the person is listed; only the selected ones carry a then array with the endorsement result.

This page provides examples of workflows and their completions. For detailed documentation on constraints, parameters, and possible results of specific actions, always refer to the corresponding action documentation pages.