Start with proven experience, not the length of the client list. Ask for a couple of projects that sit close to your technology stack, custom automation software development and then find out whether those engineers are still with the software development company in eastern europe. A serious vendor top python development companies is happy to connect you with the people who would work on your project. Evasive answers at this stage generally mean you are talking to a reseller.
The paperwork deserves a slower read than the pitch. A few clauses carry most of the weight: assignment of intellectual property, confidentiality, and exit terms and handover. Every artifact has to transfer to you on payment, including source code, designs and infrastructure as code. Watch for any clause that keeps framework code in the vendor's hands, as it is usually exactly the piece that locks you in.
Ask how they estimate. An honest estimate is accompanied by a written set of assumptions, a breakdown per feature and a range rather than a single number. A fixed price only makes sense when the specification is complete; in any other case the supplier adds a risk premium and you fund the buffer regardless. Hourly billing shifts that risk to you, so it demands a cap, regular demos and transparent reporting.
The delivery process matters as much as team size. Find out what happens when the scope changes, who signs off on a feature and what the QA setup looks like. A mature team will be able to show you a working build every one or two weeks. Written acceptance criteria are the practical protection against endless rounds of rework.
Before signing, plan for the end of the engagement before it becomes urgent. Ask that the code repository stays on infrastructure you own from the first commit, and that documentation is updated as part of the work. A provider confident in its own work says yes immediately; resistance at this point says most of what you need to know.