I modified it a tad bit when you're downloading the html job files, (If that's what you're doing):
e.g.
m = re.match("\s(?P<company>[^|]+?)\s\|\s(?P<title>[^|]+?)\s\|\s(?P<locations>[^|]+?)\s\|\s*(?P<attrs>[^|]+?)$)?", "spencertechconsulting.com | web developer | New York | REMOTE, INTERNS")
EDIT:
You missed the last \| pipe symbol for separating the location group from the attribute group
e.g.
m = re.match("\s(?P<company>[^|]+?)\s\|\s(?P<title>[^|]+?)\s\|\s(?P<locations>[^|]+?)\s\|\s*(?P<attrs>[^|]+?)$)?", "spencertechconsulting.com | web developer | New York | REMOTE, INTERNS")
EDIT:
You missed the last \| pipe symbol for separating the location group from the attribute group