(Converting my comment into an answer.) The argument needs to be expanded before being parsed. This can be done in the definition of \parsevars:
\def\parsevars#1{\expandafter\parsehelper\expandafter(#1)}
\parsevars{\myvar}
\parsevars{\jobname}
or just when using \parsevars:
\expandafter\parsevars\expandafter{\myvar}
\expandafter\parsevars\expandafter{\jobname}
More information on \expandafter.
Edit: regarding your comment about xstring, I'm guessing you've tried to parse \jobname and then used something like \IfStrEq. (If I'm wrong, you'll need to edit your question so that it has a minimal working example.)
The problem is most likely due to the fact that all the characters a, b, etc in \jobname are given a category code of 12 ("other") instead of their usual 11 ("letter"). We can simulate a command that replicates this behaviour using:
\edef\testjobname{\detokenize{Jake-Jane-Jerry}}
This is just for testing purposes to illustrate the difference:
\documentclass{article}
\usepackage{xstring}
% simulate \jobname:
\edef\testjobname{\detokenize{Jake-Jane-Jerry}}
\newcommand{\myvar}{Jake-Jane-Jerry}
\def\parsevars#1{\expandafter\parsehelper\expandafter(#1)}
\def\parsehelper(#1-#2-#3){\def\varone{#1}\def\vartwo{#2}\def\varthree{#3}}
\begin{document}
\parsevars{\myvar}
Testing \varone: \IfStrEq{\varone}{Jake}{True}{False}.
\parsevars{\testjobname}
Testing \varone: \IfStrEq{\varone}{Jake}{True}{False}.
\end{document}
This produces:

In both cases \varone has the definition Jake, but in the first case these four letters have category code 11 (which matches the string Jake) whereas in the second case they have category code 12 (which doesn't match).
In this case you're better off using etoolbox instead:
\documentclass{article}
\usepackage{etoolbox}
% simulate \jobname:
\edef\testjobname{\detokenize{Jake-Jane-Jerry}}
\newcommand{\myvar}{Jake-Jane-Jerry}
\def\parsevars#1{\expandafter\parsehelper\expandafter(#1)}
\def\parsehelper(#1-#2-#3){\def\varone{#1}\def\vartwo{#2}\def\varthree{#3}}
\begin{document}
\parsevars{\myvar}
Testing \varone: \ifdefstring{\varone}{Jake}{True}{False}.
\parsevars{\testjobname}
Testing \varone: \ifdefstring{\varone}{Jake}{True}{False}.
\end{document}
This produces:

If you want some other comparison, you'll need to add some example code.
\expandafterThis could go inside the definition of\def\parsevars#1{\expandafter\parsehelper\expandafter(#1)}. – Nicola Talbot Nov 22 '16 at 15:20\parsehelperbefore the brace:) {should be){. – Manuel Nov 22 '16 at 18:25\jobname-expansions likeCategoryA-CategoryB-CategoryC(SubCategoryC)SomeMoreCharactersare possible with nowadays' file-systems.\parsevar/\parsehelperwould split this to\varone->CategoryAand\vartwo->CategoryBand\varthree->CategoryC(SubCategoryCand a remainderSomeMoreCharacters`. – Ulrich Diez Nov 22 '16 at 23:01