All work

Rebuilding our cleaner hiring pipeline

Operations at MaidThis, 2 min read

Lower cost per onboarded team
70%
The problem
Too many cleaning applicants were getting lost between the job ad and the interview, and the team spent hours scheduling and chasing paperwork by text.
My role
I redesigned the pipeline in GoHighLevel, wrote the screening questions and set up the recruiting bot.
Result
Cost per onboarded team dropped from $40.91 to $12.50, about 70% lower, on less than half the ad spend.

Skills Hiring and onboarding, process design, AI agents

Context

Recruiting is the biggest ongoing job at MaidThis. Most new cleaning teams don’t last, so we always need applicants coming in. In the summer I ran a three-week hiring sprint with the team and tracked every stage. It showed two problems. Only about a third of Indeed applicants were reaching our system, and the team was spending hours each week scheduling interviews and collecting paperwork.

What I changed

The recruiting pipeline in GoHighLevel, with columns from New Lead through Hired
The new pipeline in GoHighLevel.
  • Two-step application. Name, phone and email come first, then the longer form. If someone stops partway, we still have their contact info.
  • Routing on screening questions. A candidate’s answers decide where they go next, so the team only spends time on people who meet the basics.
  • A recruiting bot. It books interviews, sends reminders and collects paperwork. The team only steps in for the interview and the onboarding call.
  • Apply-by-link on Indeed. Indeed applicants now land in our system instead of getting stuck on Indeed’s side.

Results

Same Indeed ads and same market, tracked stage by stage.

Old pipeline (3-week sprint, summer)New pipeline (first 5 weeks, fall)
Ad spend$450$200
Applicants reaching our system276 of 807 (about a third)124 of 127
Reached the interview stage65 invited33 booked by the bot
Reached onboarding1116
Cost per onboarded team$40.91$12.50

Fall is usually our harder season to hire, so the improvement didn’t come from easier timing.

What broke and how I fixed it

  • The bot booked 30-minute slots for 20-minute interviews. That pushed candidates about a week out and led to more no-shows. I shortened the slots.
  • Rescheduling still had to be done by hand. I added a manual trigger so the team can restart the booking flow in one click.

What I’d do differently

  • Track the hiring funnel by stage from the first day, instead of waiting until something looks wrong.