Little trick I learned from a contractor, run the AC unit, put in a fresh filter at the return duct. Then once the new filter is in and the AC is running spray about 2 cans of Lysol into the return filter. This will circulate throughout the ducts and interior of the home. I also recommend replacing all the carpet as you can't get it out of the carpet fibers.
For cigarette smoke, use an ozone machine. Hotels do that in non-smoking rooms when one of the guests decides to smoke anyway.
However, the tar from the cigarettes will stick to the walls, ceiling and other areas, too. The ozone machine is very effective at killing the odor, but the tar will still discolor the walls and ceilings. Kilz is great for sealing in/covering over the tar.
Carpeting might have to be replaced, though some specialty carpet cleaning companies may be able to address the problem.
And replace any replaceable fabric, such as drapes, curtains, etc.
Hope that helps.
We contacted a company called Health Home. They came in and said that it was in the air ducts as well. They did what is called an ozone treatment. We were not allowed to open the doors or enter the home for 48 hours. When we were allowed to go back in it smelled like fresh paint and new carpet. It was truly amazing. It was not really that expensive. With the cost of things going down these days I bet it would be cheaper.
Good Luck with getting rid of the smell. I know it worked for pet odor.
If you can't paint or use KILLZ then clean walls with Pine sol, and use the candles then shampoo. if you have curtains wash them and use dryer sheets with the clean linen scent. Lisa used to live in a house with 3 smokers and cleaning the walls and washing the curtains and of course the candles/plugs always worked. She got a few people who had said they didn't smell the smoke.
All the Best
Dave & Lisa
You can also go to e-how and there are some articles with additional information.
I highly recommend replacing ALL the carpeting not shampooing them...the scent still lingers. I agree with David on using KILLZ and then you can get an air purifier and leave it in the home for awhile. Also if there are any curtains, blinds and even furniture they will also retain the odor so I would remove anything fabric and clean the blinds thoroughly or replace them if you can.
All the best.
3 options from cheap, to a little spendy:
1.) The air freshener "Oust" works pretty well to mask it.
2.) Get the carpets cleaned and deoderized, and re paint and wipe down every surface. (repaint walls/cielings). When Painting, use the product calls KILLZ. It is an odor sealant, works really well for pet stains/smells, and pet accidents that have soaked through the carpet pad into the sub floor.
3.) Call a fire restoration company. In Minnesota, we have a company called Service Master. They will have an "Ozone machine" and Air scrubbers. They work, but I dont believe they are cheap.
Personally, I hate paying somebody to do something I can do myself. I would go with #2. You can rent a rug doctor pretty cheaply, and odds are that you're going to re paint anyways. You can get KILLZ colored the same as basically any other brand, and you have the odor blocking with it. Cheap and efficent, have to love it!
If you have any other questions, or need more clarification, feel free to email me direct.