Cleaning Marketplace

Industry: Home Services

Product: Online Marketplace

The scope of our work: front-end, back-end, QA

Solution: business digitalization

Our Client used to run an offline cleaning service business in Scandinavia. At some point, The Client decided to automate and digitalize it and create an online marketplace – Cleaning Marketplace.

Cleaning Marketplace is an online marketplace that connects customers with professional cleaners in their local area to book cleaning services for their apartments.

client’s goals

The Client wanted to digitalize their offline business and create a B2C & B2B online cleaning platform.

our solutions

Top Challenges

Challenge: Double booking

In the beginning, we used to face the issue of double booking. It used to happen with recurring cleanings (e.g. when customers booked a cleaning twice a week for the next month). The system didn’t check a cleaner’s availability for each cleaning date and time for the whole period; instead, it checked only the first booked cleaning date and time.

Solution: We created an algorithm that checks all the booked dates and time slots – of the cleaners within the recurring cleaning period.

Challenge: Initial lack of management by admins

Though we implemented the calculation of time, there was still an issue with time overspending. 

To indicate the start and finish of the cleaning job, cleaners have to press the “START” and “STOP” buttons accordingly. 

We faced the problem that cleaners tend to forget to click on the “STOP” button, so it’s sometimes not clear whether there was overtime or not.

Solution: To expand admins’ abilities

Currently, admins have the ability to stop the cleaner’s job manually.

Challenge: Changing business goals

Since a marketplace has a lot of business decisions to make, it can sometimes be confusing for startuppers to decide on certain points. This project experienced a few business changes that influenced the technical side of project implementation.

Solution: Introducing our way of solving issues

For each business change, our team of developers has suggested a few technical solutions to choose from.

Challenge: Payment failure

Since the Customer’s business model includes a payment that takes place after the cleaning is completed, issues with conducting the payment used to occur (for example, due to customer’s insufficient funds). Plus, a cleaner’s payout happens in the same time frame as the customer being charged.  

Solution: Notification about a payment failure
Once a payment fails, it triggers an email notification about the unpaid cleaning. This notification invites the customer to log into the dashboard (link in the email redirecting the user to the PTH dashboard) and click on the “PAY NOW” button. 

In the dashboard, the customer can see the reason for the payment error. We used the Stripe system to define the types of payment errors.

project stages

1. MVP:

Migration of the old users’ database to the new one

Registration & authorization (for cleaners & customers)

Creation of one-time cleaning and recurring cleaning options

Sending out invitations

Accepting & denying cleaning jobs

Payment system

Reviews and feedback system

Profile pages

In-built calendar

2. Private Beta:

Automatic invoice generation

Transaction and cash flow page

Calendar edits: the ability to create events and indicate when and how many hours a cleaner works

Money transaction flow

3. Public Beta:

The second alteration of the money flow 

Rescheduling of recurring cleanings  


Support & maintenance

Permanent enriching with new features


Sidekiq + Redis
Tools (hosting, monitoring etc.)


March 2018now


2 back-end developers | 2 front-end developers | QA | PM
Project Results

Our team of developers helped Our Client to digitalize their offline business. A while after the product was released, Our Client got a significant growth in its number of users.

After the launch of Cleaning Marketplace, Our Client attracted an investment group and currently, we are working both on the new features and support.

Contact the team, start like a rocket!