This guest post was written by Patrick Murphy, founder of Qualified Hires and owner of a cleaning business generating $100,000 a month.
My cleaning company does $100,000 a month in revenue. When other owners ask how, they probably expect a marketing answer. The honest answer is hiring. The business grows when I put another great cleaner on payroll, and it stalls when I cannot. Marketing was a bottleneck from $0 to $50K/mo. Then, good cleaners became the bottleneck.
Quick background so you know where this comes from. I spent 10 years in corporate America, first as a CPA at a Big 4 firm that hires more than 10,000 entry level people a year, then as a product manager at Amazon. While at Amazon, I started (and grew) my home service business with 1099, then W2 employees from zero. I am in year 5 of the cleaning business. What I did was take the recruiting process from the massive companies which hire at scale and tailor it to my local cleaning company.
The whole system rests on one idea: talent acquisition is sales. Full stop.
Business is just two things: demand and supply. Both require funnels to grow and scale.
Here is the process, step by step.
Step 1
Fix your offer before you touch a job ad
People leave jobs for three reasons: the pay is lower than they could get elsewhere, the management is bad, or the location makes their life hard. If you cannot beat at least one of those three, no funnel can save you. I tell owners this on every call: I will build you the best funnel and the best way to hire, but if you pay the bottom of the market, there is nothing I can do about that. That is on you.
So before you write a single word of a job ad, look up what your competitors pay and write down why anyone would work for you. If your pay is above market, that number headlines the ad. There are reasons that your existing crew started working for you. Maybe they used to work long, terrible hours at another job. If your crews are home by dinner because you keep a tight service area, say that. Maybe they used to be paid every two weeks. If you pay every week, say that.
Step 2
Write a job ad that sells, and run it every single month
A job ad is a sales letter, followed by job description as an afterthought. We need to sell ourselves to these candidates now. Bad ads all read the same way: a wall of requirements written like a corporate robot drafted it (or worse, like ChatGPT drafted it). Instead... open with a hook about their life getting better. Tell them what you give them before you tell them what you require. Put responsibilities last.
Then get it seen.
If you want more people in the door, you have to get more applicants.
To get more applicants, you have to get more eyeballs on the job post.
To get more eyeballs, you have to post it in the right place and then sponsor it.
For active job seekers, Indeed is the 80/20 channel, so post there and sponsor it. Then add the free channels:
Facebook community group post:
"Hey, does anyone know someone looking for a house cleaning job? I run one of the top cleaning companies in the area and we're hiring."
And put a referral bonus on the table for your current team. I pay my crew $250, paid once the new hire lasts 90 days. People will not refer their friends just based on money. They have career-risk at stake for a referral. If your employee Susie refers another gal, Tracy, and then Tracy absolutely cannot show up on time or clean - what happens? Susie probably thinks you will be mad at her and it will ruin her reputation. Tell your team that the people they bring in are not a reflection on them. Susie needs to know you will not be mad when Tracy fails to be a good cleaner.
Most important: post every month, even when you are fully staffed. I call this evergreen recruiting.
Step 3
Send every applicant to a page you own, and skip the resume
Job board inboxes are where applicants go to die. Every channel, Indeed included, should push people to a careers page you control. When they apply there, you own the data. You have their name, their email, their phone number. Not Indeed.
Keep the application short: contact info, experience, and your deal breakers. About two minutes to complete, and built for a phone. Through the data I have, from my company plus many other companies, 90% of applicants are looking at your job on their mobile phone.
Do not ask for a resume. Most people will send you an AI generated resume anyway. Cast a very wide net and let people disqualify themselves against your deal breakers instead: years of experience, willing to pass a background check, reliable transportation, legally able to work. Miss a deal breaker, and they get a polite automatic no the next day. You still keep their contact info for later.
Here is the move that surprises people. On Indeed, set up an automatic reply that asks serious applicants to come apply one more time on your page. That one step kills about 75% of applicants, and the ones who jump are the real ones. I like friction in the process. If someone is not willing to do at least one thing, are they going to be a good employee?
Step 4
Text back fast
A cleaner looking for work applies to multiple jobs in one sitting. If you cannot reply quickly, you are not going to hire quickly. And if you can't hire quickly, that person will be hired by your competitor who is faster to hire.
You do not have to sit by your phone to do it. My follow up text goes out a few minutes after the application, written the way I would actually write it:
Auto text, sent minutes after they apply:
"I'm tied up in the field right now, but I happened to see your application come through, and I wanted to get on the phone with you. Could you please schedule a call here?"
I have a seven minute text delay on purpose. A text that arrives the instant they hit submit reads like a robot. A text a few minutes later reads like a busy owner who noticed them.
Step 5
Make them book the call themselves, at least a day out
That text links to a Calendly booking page, and the booking page does not allow same day times. That is deliberate. In this step, I am not just testing whether someone can clean. I am testing reliability. Can you make an appointment for yourself, put it on your own calendar, and show up the following day at the right time? You would be surprised how many people cannot do that. And if they cannot show up for a scheduled phone call, they are not going to show up for an 8am clean.
The call itself is a 10-15 minute phone screen, and you should not be the one doing it. Hand your remote assistant / office manager a script: confirm the deal breakers by voice, confirm they can actually get to your service area on time, answer their questions about the job. Pass means they get a link to book the real interview. Fail means a polite no. Block one hour a day for these calls so interviews never shred your schedule.
Step 6
Run two interviews: sell on the first, test on the second
That first interview is really a sales call, and you are the one selling why your company is a great choice for them in their personal and professional life. A good cleaner is taking a flyer on you as much as you are taking a flyer on her. Ask why she is leaving her current job, and listen. Unhappy with pay? Sell your pay. Unhappy with management? Ask what happened, then sell how you run things.
The second interview is where you test technical competency. Getting someone to show up once is good. Showing up twice, on time, is a second reliability data point. Then you can ask the more skill-based questions. Ask questions only a real cleaner can answer: walk me through how you would handle a kitchen that has not been deep cleaned in a year. What products do you use on stainless steel? You are listening for specifics that only come from having done the work.
Keep track of every applicant. I once had a cleaner no-show a second interview, then reapply a year later. We had notes on the whole situation from the first pass, so that reapplication took ninety seconds to handle instead of restarting a funnel we had already run. Your notes are an asset with compound interest.
Step 7
Check the background, recruit the references, then do a paid test clean
Run a background check on everyone and announce it early in the process. The fact that you run one is itself a filter.
Then call the references, because a reference call is two things at once. First, it corroborates your candidate's skills, and second it is a hidden sourcing channel. Every reference is a former co-worker your candidate trusts. At the end of the call, I say: "by the way, we're hiring. All the time. So if you know anyone."
That plants a little earworm, and sometimes the reference thinks, "maybe me". Then one more question:
Last question of every reference call:
"Would you ever be open to hearing about what we pay?"
Most cleaners are not reading job boards. They are working, and this is a way to get them into your current pipeline.
Finish with a paid test clean alongside your best cleaner (or supervisor/manager), then debrief with the team. Your best people are your best hiring bar.
If inclined to hire, make the offer verbally with every detail. I do a quick phone call with the candidate. I am listening to if they hesitate at all. If I say "$22/hr", and they aren't excited, then I address that right then and there. "It doesn't sound like you're thrilled about the pay. Tell me more." If they want $22.50/hr and I can make that happen, I will do it immediately.
Once I have them excited and verbally accepted the offer, follow with the formal offer letter. Once that is signed, they are mentally locked into starting.
At this point, the only risk is that the gap between "verbal yes" and "signed offer" will lose you a good cleaner.
Why this is the growth lever
What got you to $10K a month and then got you to $50K is not necessarily going to get you to $100K. At some point you stop being the person who cleans, sells, and hires in spurts, and you start running systems. Hiring is the second system to build (after marketing/sales), because it is the supply side of your business.
One full time cleaner, billed out at $60 an hour for 2,000 hours a year, is $120,000 of new annual revenue. At healthy cleaning gross margin (50%), that is $60,000 a year of gross margin, per hire.
Wow, you could have $60,000 of additional money IN YOUR POCKET with a great cleaner.
So, how much time and money is it worth to reliably add one of those whenever you want?
That is why I never turn off the hiring funnel at my company. When someone quits (and someone always eventually quits), I am not starting from zero. My hiring funnel is still going, people are still coming in the door, and I have candidates we have already vetted through a first or second interview. When a great cleaner comes through and I have no seat, I still run her to the end and tell her the truth: I don't have a seat today, but the next time I do - your number is on my speed dial and I am going to get you to join my team.
Always be hiring. Treat it like sales, run it as a system, and the revenue takes care of itself.
Patrick Murphy runs a cleaning company doing $100K a month and is the founder of Qualified Hires, hiring software for home service businesses. He built this system for his own company first and still uses it every day. Find him at linkedin.com/in/pmmurph.
Run your cleaning business like the owner you already are.
Book a Demo

See more practical cleaning advice in Google
Add Allison as a preferred source so our guides are more likely to appear in your Google results.