Step 1: Name the unknown.
Let the number of candidates be $n$. Then the number of seats is $n-1$, one fewer than the candidates.
Step 2: Understand a single vote.
A voter may vote for one or more candidates, but cannot vote for more than the number of seats, which is $n-1$. So a voter picks any group of size $1$ up to $n-1$.
Step 3: Count the voting groups.
The number of ways is $\binom{n}{1} + \binom{n}{2} + \cdots + \binom{n}{n-1}$.
Step 4: Use the full-subset total.
We know $\binom{n}{0} + \binom{n}{1} + \cdots + \binom{n}{n} = 2^n$. Removing the two end terms $\binom{n}{0} = 1$ (vote for nobody) and $\binom{n}{n} = 1$ (vote for everyone, too many) leaves $2^n - 2$.
Step 5: Set it equal to 30.
So $2^n - 2 = 30$, giving $2^n = 32$, hence $n = 5$.
Step 6: State the answer.
The number of candidates is $5$. (As a check, with $5$ candidates the voter chooses groups of size $1$ to $4$, totalling $5 + 10 + 10 + 5 = 30$.) \[ \boxed{5} \]