Yep, there's no API for selecting exactly which construction job to take, so it works by replacing your roboports with reduced range versions and expanding them to include all jobs within the range of available bots.
That's why it's sometimes going back to a smaller range too, the number of available bots go down and the jobs are still unfinished, but there's no way to know that the construction job has been allocated to some bot somewhere.