How to get list of skills like Linkedin?

Viewed 1015

I am working on an android app, where people will share somethings like their skills but now the thing is that i want a list of skills so users can easily search and pick a skill from suggestions of an AutoCompleteTextView like linkedin.

But for autoCompleteTextView we need an array of strings to show in the autoComplete list. But i did not able to find any api for this. And i also can't make an array of strings in app in stings.xml because it will increase the size of the apk upto 5 to 6 MB.

enter image description here

I need a solution for this.

2 Answers

I didn't know any popular API for skills listing but you can try either this Open API or this one. The first one is very old and I don't think it has been updated and well-formatted(skill-names). The second one is more like a profiler, but maybe they provide API for skills too. Also, there is one site called "EMSI Skills API ", though I don't know if it really provides Skills API or not.

Just to add more on above answer,You can explore EMSI Skills API to get a master list of skills (around 30k) and all you have to do is to register and get the necessary access keys. Below is the sample Python code to fetch the skills data from EMSI SKILLS API

import requests
import json
import numpy as np
from pandas.io.json import json_normalize

auth_endpoint = "https://auth.emsicloud.com/connect/token" # auth endpoint

client_id = "ajhdjhaDJqwjjskfjksdjfklj" # replace 'your_client_id' with your client id from your api invite email
client_secret = "asjsajf" # replace 'your_client_secret' with your client secret from your api invite email
scope = "emsi_open" # ok to leave as is, this is the scope we will used

payload = "client_id=" + client_id + "&client_secret=" + client_secret + "&grant_type=client_credentials&scope=" + scope # set credentials and scope
headers = {'content-type': 'application/x-www-form-urlencoded'} # headers for the response
access_token = json.loads((requests.request("POST", auth_endpoint, data=payload, headers=headers)).text)['access_token'] # grabs request's text and loads as JSON, then pulls the access token from that

def extract_skills_list():
  all_skills_endpoint = "https://emsiservices.com/skills/versions/latest/skills" # List of all skills endpoint
  auth = "Authorization: Bearer " + access_token # Auth string including access token from above
  headers = {'authorization': auth} # headers
  response = requests.request("GET", all_skills_endpoint, headers=headers) # response
  response = response.json()['data'] # the data

  all_skills_df = pd.DataFrame(json_normalize(response)) # Where response is a JSON object drilled down to the level of 'data' key
  all_skills_df.to_excel('all_skills_emsi.xlsx')

extract_skills_list()
Related