KtoSprząta.pl: an industry platform for cleaning companies
KtoSprząta.pl is a directory of cleaning companies in Poland that I built on data from public registries: the company register (KRS), the VAT white list and the statistics office (GUS). Companies get a free profile and a free Pro panel with tenders, offers with reminders, a CRM and time tracking by QR code. From the first version (18 August 2026) to public launch took 3 days.
Any industry where customers look for contractors and companies need simple tools can have a platform like this. I build platforms for an industry or a partner network from PLN 60,000 excl. VAT. I am based in Kraków and work remotely across Poland.
3 days
from the first version to public launch, 18–21 August 2026 (as of 21 Aug 2026)
- Company
- KtoSprząta.pl, a directory of cleaning companies in Poland
- Period
- August–October 2026
- My role
- Idea, design and build. Today my AI routines handle development and moderation.
- A similar project
- from PLN 60,000excl. VAT
What it looks like on screen
Why the cleaning industry needs a directory like this
Anyone looking for a cleaning company faces listings where it’s hard to check whether a company operates legally, and where. Small companies, in turn, rarely have the time or budget for paid tools for offers, tenders and time tracking.
I wanted a directory built on public registries, where every company’s tax number can be checked, and where owners get, for free, tools they’d pay a subscription for elsewhere. KtoSprząta.pl is also my test bench: I use it to see how fast a platform can be launched and how much of its daily development I can hand to AI agents.
What had to work from day one
- Every company from a registry, its tax number with a valid checksum
- A search that copes with typos and Polish characters
- A company profile that can rank in Google for the company’s name and services
- Reviews that follow the EU Omnibus rules
- Tools that companies get for free
What I built
Data from registries, not forms
Companies come from KRS, the VAT white list and GUS, filtered by activity codes (PKD). After two imports there were 349, and after looking up company websites by tax number, 418. In that round, companies with a confirmed tax number went from 153 to 219, phone numbers from 1 to 66 and websites from 29 to 97. Of 188 candidates I rejected 120: 82 sole traders, 20 not on the VAT white list, 9 duplicates and 9 with the wrong activity code.
Free Pro panel
Public tenders from BZP with a weekly digest by region (a 75-day sample held 148, about 1.6 a day), offers with the company’s logo and three AI-written follow-up emails on days 3, 7 and 14, a CRM with an ICS calendar, time tracking by QR code or NFC, and a moderated job board.
runs on its ownA search that forgives mistakes
It searches in a cascade: by identifier, all words, any word and similarity. It corrects typos, knows 256 query aliases and searches within 10, 25, 50 or 100 km.
runs on its own
Profiles built for search
Every profile has LocalBusiness structured data, and owners can add their own services, FAQ, prices and projects. The goal is simple: the profile ranks high in Google for the company’s name and its niche services.
Sitemap for Google
Google accepted a sitemap of 826 pages. A day later I trimmed it to 608 by taking empty listings out of the index.
Free industry tools
A labour-time calculator, a 2026 salary calculator (60+ test cases), a contract builder that generates the file in the browser without sending any data, a map of legal requirements (17 requirements across 5 segments, every act checked against api.sejm.gov.pl) and more. 14 of them are in the menu.
Open norms dataset
Cleaning time norms under CC BY 4.0, described in the reefa.pl SEO case study.
AI moderation and development
runs on its ownModeration runs 3 times a day, and the development routine ships one backlog item daily, with automatic rollback. Details are in the AI agents case study.
An AI-run blog
runs on its ownA new article every day at 7:07, with a cover image picked by a vision model.
Three languages
Polish, English and Russian. The Pro panel alone has 1,557 translation keys per language.
How it fits together
1. Registries
KRS company register
VAT white list
GUS statistics office
Company sites by tax number
phones, websites, emails
runs on its own
2. Filter and database
Activity-code filter and tax-number checksum
runs on its ownPostgres: full text and trigrams
Polish characters and typos
runs on its own
3. Directory
Profiles with LocalBusiness data
Search within 100 km
runs on its ownAI moderation 3 times a day
disputes come to me
runs on its own
4. Pro panel
Tenders from BZP
weekly digest
runs on its ownOffers with reminders
days 3, 7 and 14
runs on its ownCRM and ICS calendar
Time tracking by QR or NFC
Data from KRS, the VAT white list and GUS passes a filter into a database with full-text search. Profiles and search are built on it, and companies get a Pro panel with tenders, offers, a CRM and time tracking.
Key:runs on its owna person decidesdata, people or a place of work
Numbers from the system
| What I measure | Value | As of |
|---|---|---|
| From first version to launchas of 21 Aug 2026 | 3 days (18–21 August) | |
| Companies in the directorythe directory grows, so today’s number may differas of 24 Aug 2026 | 418 | |
| Geocoded citiesas of 24 Aug 2026 | 149 | |
| Tax-number checksum errors among candidatesas of 24 Aug 2026 | 0 of 188 | |
| Query aliases in the searchas of 19 Aug 2026 | 256 | |
| Pages in the sitemapas of 22 Aug 2026 | 826 accepted, then 608 | |
| Tenders in the BZP sampleas of 8 Sept 2026 | 148 in 75 days, about 1.6 a day | |
| Pro panel translation keysas of 8 Sept 2026 | 1,557 per language | |
| Legal requirements on the mapas of 29 Aug 2026 | 17 across 5 segments | |
| SEO, GEO, AEO audit after launch (out of 10)as of 22 Aug 2026 | SEO 6, after fixes 7; GEO 7; AEO 8 |
The company count is from the last measurement I have on record. The directory keeps growing, so it may differ today.
I don’t publish details of the platform’s operator or its financial results.
What it runs on
- Next.js 16, Vercel
- website and panel
- Supabase: Postgres with RLS
- data, permissions, search (unaccent, pg_trgm)
- KRS API, VAT white list, GUS
- company data sources
- Resend
- offer and reminder emails
- Google OAuth
- company sign-in
- Anthropic Claude
- moderation, reminder emails, blog
What you can take for your company
Public data as the foundation
In many industries, registries such as KRS, the VAT white list and GUS give you a ready-made list of companies. A platform for your industry or partner network doesn’t have to start from an empty list.
A free tool as a reason to sign up
Tenders, offers with reminders, time tracking: a tool a company needs every week is a concrete reason to create an account and keep coming back.
Launch fast, then improve daily
I launched the first version after 3 days, and since 14 October 2026 the platform has grown by one change a day, with automatic rollback. With you, too, we start from a version that works rather than a six-month specification.
SEO built into the structure
Every profile has structured data and its own URL, and empty listings stay out of the index. I plan that structure before the first line of code.
Services where I do this
A panel, CRM, field-team app or production system, built around how your company actually works.
from PLN 60,000excl. VAT- from PLN 7,000/monthexcl. VAT
Other case studies
- 13An operating system for a service companyOne panel for the whole company: schedules and shifts, finances across several entities, petty cash, bank matching, e-signed contracts and client reports.
- 1,100 hA bot for the field teamA shift starts and ends with one button in Telegram, with location and photos. The rebuild removed 55 issues and is covered by 19 scenario tests.
- 11AI agents that run part of the company11 routines and agents: a panel doctor, SEO content, lead growth, moderation, tenders and a morning brief. Five of them log every decision, and releases roll back automatically.
- +30%Organic growth of reefa.plA plan of 33 SEO and GEO changes, 29 free tools, an open norms dataset (460 categories from 2,338 rows of data) and a content routine. Clicks from Google rose from 8.6 to 11.2 a day in July.
Let’s talk about your company
30 minutes, no sales deck. You tell me where time and money leak, and I tell you what I’d do first and roughly what it costs.