Oh where is your imagination Mark....
//Break the individual parts out
var text PartOne=Part([String], 1, "_")&Part([String], 2, "_");
var text PartTwo=Part([String], 3, "_")&Part([String], 4, "_");
var text PartThree=Part([String], 5, "_")&Part([String], 6, "_");
//Conditional to find the first name in the string
var text FirstName=If(Contains($PartOne, "First"), "First Name: "&Part([String], 2, "_"),
If(Contains($PartTwo, "First"), "First Name: "&Part([String], 4, "_"),
If(Contains($PartThree, "First"), "First Name: "&Part([String], 6, "_"),
"No First Name")));
//Conditional to find the last name in the string
var text LastName=If(Contains($PartOne, "Last"), "Last Name: "&Part([String], 2, "_"),
If(Contains($PartTwo, "Last"), "Last Name: "&Part([String], 4, "_"),
If(Contains($PartThree, "Last"), "Last Name: "&Part([String], 6, "_"),
"No Last Name")));
//Conditional to find the job in the string
var text Job=If(Contains($PartOne, "Job"), "Job: "&Part([String], 2, "_"),
If(Contains($PartTwo, "Job"), "Job: "&Part([String], 4, "_"),
If(Contains($PartThree, "Job"), "Job: "&Part([String], 6, "_"),
"No Job")));
//Combine them into the desired list
List("<br>", $FirstName, $LastName, $Job)
It works with any and all combos. Just as long as the string is divided by the "_" and maintains the format you proposed