Please be noted that It might as well be a NLP problem, but my solutions are not.
If you are planning to check if members of your list are in the string, it should be pretty straight forward.
[i for i in item_list if i in String_text]
... ['Manpower Outsourcing']
This will keep only the list members that were in the string, but note it will only keep "exact matches".
If this output is not suitable for your purpose, there might be several other ways you can check.
Mark as 1 for members that were in the string, but 0 for others.
[1 if i in String_text else 0 for i in item_list]
... [0, 1, 0, 0, 0, 0, 0, 0]
Or if you would like to check how much for each members were in the string, I recommend splitting them.
item_list2 = [i.split(" ") for i in item_list]
[sum([1 if i in String_text else 0 for i in x])/len(x) for x in item_list2]
... [1.0, 1.0, 0.0, 0.0, 0.25, 0.0, 0.0, 0.6666666666666666]
You will notice the last one have different output from the formers because the first member "Manpower Service" is present seperately in the string as "Manpower" and "Service". You can choose the suitable solution for your purpose.
Again, please be noted that this might be a NLP problem and my solutions are just dumb strings matching.