CI/CD help - dependencies between tasks with manual execution

I have multiple runners and with the keyword ‘dependencies’ I get the right sequence for multiple envs builds/deploys.
My tasks do not define a specific runner and my runners can pick up untagged jobs.
The “problem” is that, if I define the build and deploy jobs with manual execution, the two jobs run in parallel and the deploy task obviously fails.
I can solve this by defining a specific tag (runner) for both jobs, but then I loose the benefit of having multiple runners.
I tried the new “needs” keyword but it does not solve my problem. What I’d like to have is a fire-and-forget solution, ie: I open the pipeline, I click on build then click on deploy and close the browser. GitLab should run the build task with a random runner and, once completed, run the deploy task with another random runner.
This is exactly the behaviour I get right now with automatic execution and I’d like to have the same with the manual execution.

Thanks, any help is really appreciated!

Are you using separate “stages” for the build and deploy?
No two stages should run at the same time, so you probably have 2 jobs in one stage?