I wrote a python program that boots with pi, do it's job, and shutdown pi when finished working. It works fine, and when I'm connecting an lcd to the pi, I can know whether the pi finished shutting down or not, but the problem is that the screen shouldn't be connected. So how could the user know when the pi completed shutting down to safely unplug it from power?
Let's examine this problem a bit:
The user cannot tell using a screen, because no screen is attached.
The user cannot tell by the green act flashing briefly and then going off, because the pi "would be inside a box so the green led wouldn't be visible".
In other words, the pi might as well be in another room or on another planet, from the user's perspective. It is completely concealed in an impenetrable container with no interface.
Is there any kind of computer system or electronic device which you would expect to be able to demonstrate anything about state while sealed in an impenetrable box, in another room, or on another planet? Logically enough of course not.
This is a design flaw -- your design flaw -- if your intention is to communicate state to the user. The device itself comes with LEDs for this purpose, but you have intentionally concealed them.
So you need to implement something of your own. One thing I think is possible is to use a form of light conductive plastic fiber from the LEDs to the outside of the case; there are I think cases exploiting this for the pi already on the market. The material is probably pretty cheap but I could not find much online; they used to (and may still) sell decorative things with long strands of this in novelty/gift stores (if you search online "fiber optic lamp" you'll find some pictures).
That would be ideal IMO. Another option is to mount your own power LED on the outside of the box and turn it on using a GPIO, preferably one that by default uses a pull-down as an input. I am pretty sure when the system halts the GPIOs are reset to those defaults, in which case you won't have to do anything else; when the system stops it will go off (even without the pull-down, it should dim). If not, you will have to arrange something late in the shutdown cycle (this is controlled by the init system, on current versions of Raspbian, systemd) to turn it off (or try Milliway's suggestion about device tree configuration).
Another point to consider is it probably takes no more than 2-5 seconds to shutdown (the green blinking is subsequent to that and irrelevant; you can pull the plug once it starts, but beware the irregular green flashing before that is not irrelevant), so if the user knows this it is not hard to just count to 3 or 5 or whatever.