Representing endomorphisms via correspondences
$$\begin{aligned} \alpha_C : \ & C \xrightarrow{\ \ AJ\ \ } J \xrightarrow{\ \ \alpha\ \ } J \dashrightarrow \operatorname{Sym}^g(C) \\ & P \mapsto \{Q_1, \ldots, Q_g\} \Longleftrightarrow \alpha([P - P_0]) = \left[ \sum_{i=1}^g Q_i - P_0 \right] \end{aligned}$$
This traces out a divisor on $C \times C$, which determines $\alpha$.
This divisor is a certificate of containment for $\alpha \in \operatorname{End} \overline{J}$.
Theorem (C-Mascot-Sijsling-Voight)
We give an algorithm for nondegenerate $\alpha \in \mathrm{M}_g(\overline{k})$
$$\alpha \mapsto \begin{cases} \texttt{true} & \text{if } \alpha \in \operatorname{End} \overline{J}, \text{ and a certificate} \\ \texttt{false} & \text{if } \alpha \notin \operatorname{End} \overline{J} \end{cases}$$
By interpolation via $\alpha_C$ or by locally solving a differential equation on $C \times C$.