We've been getting tenant clean out jobs for a while, and we just started doing post construction clean up. The problem with either of these is you NEVER know what kind of state the place is in when you get there, and, often, the realtor/landlord doesn't, either. ("The guy said he cleaned a little when he left, so it shouldn't be too bad." Lies!) Unless you get to see the place and get a good estimate, I would charge hourly. If you're worried about losing the client because of the cost, you can charge a flat rate for x amount of hours and then an hourly rate for any extra time after that. It often takes much more time than you'd think, especially if you're used to "normal" residential cleaning; there's so many details that we never/rarely have to do for our regular clients (washing walls, cleaning out cabinets, removing construction dust, etc)
We actually get all of these jobs through our regular residential customers, which is great because they already know our quality of service and trust us.