Parquet Service: Rebrand & Vertical Marketplace

Case study · Parquet Service · Part 2: rebrand & transformation

How we turned a Paris floor contractor into a vertical marketplace built to scale across France

We built Parquet Service’s organic growth engine from zero, then rebuilt the company around it. In this second chapter we rebranded it, designed a pay-per-lead marketplace that connects homeowners in Île-de-France with independent flooring companies, built the product, the legal and trust framework behind it, and restructured SEO around the new model, ready to roll out region by region.

IndustryFlooring & renovation
MarketÎle-de-France → France
ModelTwo-sided, pay-per-lead
Our roleStrategy, brand, product, legal, SEO

TL;DR

Where we started: a Paris floor-restoration brand whose organic demand, which we had built from zero ad budget, had outgrown what any crew could serve. What we did: we rebranded it, redesigned the business as a two-sided pay-per-lead marketplace, built the product, the trust and legal framework, and restructured SEO around it. Result: a scalable model live in Île-de-France, ready to replicate département by département.

Previously, in part 1

We built the engine: organic acquisition from zero

In November 2025 we launched Parquet Service as a Paris floor-restoration business with zero ad budget. We set the domain strategy around an aged domain, built a 228-article topical cluster covering every arrondissement, set up the Google Business Profile and wired an automated lead pipeline. Organic search became the company’s main source of clients within weeks.

Read part 1: going to market with zero ad spend →

Part 2

A year later, we rebuilt the company around it

This second chapter covers what we did next: a full rebrand, the move from executing jobs to running a two-sided marketplace, a product we built from scratch for flooring companies, and the legal and trust framework that makes it safe to scale.

192KGoogle impressions, last 12 months
2.7Korganic clicks, zero ad spend
72local landing pages across Paris & inner suburbs
5companies max per request, by design
Parquet Service Google Search Console, 12 months of organic growth
Google Search Console, last 12 months (Oct 2025 – Oct 2026): impressions and clicks trending up on the organic acquisition site we built, which now feeds the marketplace.

Our scope

What we built and shipped

2products: acquisition site + artisan platform with admin
72local pages rebuilt on the new brand
3legal documents: client terms, artisan terms, privacy policy
10risk scenarios turned into product rules
810keywords mapped to pillar pages
2,773contextual internal links
61URLs consolidated with 301 redirects
0client contacts stored in plain text

The challenge

Demand was no longer the bottleneck. Capacity was.

The SEO engine we built in year one kept bringing requests from all over Île-de-France. In a general-contractor model, every new district means more crews, more scheduling and more margin pressure: growth is capped by the size of the team, not by the market.

The question changed from “how do we win more jobs?” to “how do we turn this demand into a business that scales without a crew in every town?”

The decision

Move from doing the work to owning the demand.

We shifted Parquet Service from a general contractor to a vertical marketplace: homeowners describe their project for free, independent flooring companies in their area buy the contact. The brand keeps what it is best at (search visibility and qualified demand) and the supply side scales with every company that joins.

Vertical beats generic here: one trade, one vocabulary (sanding, vitrification, herringbone, m²), pricing that matches the job, and SEO pages that already rank for those exact intents.

Rebrand

From a local contractor look to a premium category brand

The marketplace needed to earn trust from two audiences at once: homeowners comparing quotes and companies paying for contacts. We rebuilt the identity around the material itself (warm wood tones, sand backgrounds, a confident ink black) and a single modern typeface, Instrument Sans.

  • One design system shared by the public site and the pro platform, so clients and artisans recognise the same brand.
  • We rebuilt every page: home, 6 service pages, pricing, blog and the 72 local pages, with legacy theme styles removed so the system stays consistent.
  • We repositioned the copy from “we sand your floor” to “compare up to 5 flooring companies near you”, without losing the local intent the site already ranked for.

Palette & type

Ink #141210
Contrast and restraint, the way premium interior brands use black.
Gold #B68E5E
The tone of oiled oak: the finish clients actually want.
Sand #F5F2ED
Freshly sanded wood: calm backgrounds that let floor photos breathe.
Stone #E5DED4
Neutral surfaces and dividers that never compete with the wood.

Instrument Sans

Headlines, interface and emails in a single family, from the client form to the invoices. We deliberately avoided the orange-brown palette typical of trade contractors: the brand should feel like a design studio for floors, not a tradesman’s van. Text colours keep a readable contrast.

Business model

Simple for clients, fair for artisans

Clients

Free, no commitment. One short form, embedded on every local page, sends the project to up to 5 companies in their département.

Artisans

No subscription. They see the job (works, surface, town, timing, photos) before paying and buy only the contacts they want. Price scales with surface, from €15 to €45 per contact.

Platform rules

5 buyers max, 7-day window, chronological feed with no paid ranking. Referral credits replace sign-up freebies, so every free contact brings a new registered company.

Contractor model

One request = one job if won, delivered by one crew. A new district means hiring, equipment and travel time.

Marketplace model

One request can be sold up to 5 times, up to ~€225 per request at the top price tier, with no labour cost. A new zone needs a page and local companies, not a crew.

Unit economics shown as the model's ceiling, not as reported revenue.

Product

A premium interface on both sides

We built it from scratch on a modern stack, designed to feel like a professional tool rather than a lead list. Artisans get a clean feed, transparent pricing and instant access after payment; clients get a three-step form that works inside any page of the site.

Parquet Service artisan feed with flooring requests
Artisan feed: requests in their zones, remaining seats, price per contact (sample data).
Parquet Service request detail before purchase
Request detail: everything about the job is visible before purchase, contact details unlock after payment (sample data).
Parquet Service mobile screens
Mobile first: client form, artisan feed and request detail on a phone (design samples).
Parquet Service local landing page with embedded request form
One of 72 local landing pages, with the request form embedded in the hero.
Parquet Service Pro landing page for flooring companies
pro.parquetservice.fr: the acquisition page for flooring companies.
Parquet Service client request form
Client form: explicit consent, link to the terms, documents provided by artisans shown upfront.
Parquet Service artisan first-login rules
First login: artisans confirm the rules before they can use their account.

How it works

From a homeowner's form to a company's phone call

01

Request

3-step form on any of 72 local pages; bot check, consent recorded with version and timestamp.

02

Protection

Duplicate check, photos stripped of GPS, contacts encrypted before they touch the database.

03

Feed

Published to companies in the département; project visible, contact hidden, price by surface.

04

Payment

Stripe Checkout reserves a seat; only the signed webhook confirms it. 5 seats max.

05

Reveal

Contact unlocked for the buyer only; every access is logged.

06

Retention

Contacts deleted automatically after 90 days; anonymised project kept for statistics.

Risk framework

Every way a marketplace can go wrong, and the decision we made

A lead marketplace sits between two parties it does not control. Before launch we mapped the scenarios that could hurt clients, artisans or the brand, and turned each into a product rule, not a policy page.

RiskDecision built into the product
Fake or unqualified artisans buying client dataSIRET checked against the Sirene registry at signup; Kbis/RNE extract and insurance certificate (with expiry date) uploaded before any approval. One account per SIRET, so a blocked company cannot come back under a new login.
Spam, fake or repeated requestsCloudflare Turnstile, honeypot and rate limits on the form. Same phone + same postcode cannot be sold twice while a request is live; more than 3 requests from one phone in 30 days are held for manual review instead of auto-publishing (agencies stay allowed).
One client sold over and overHard cap of 5 buyers per request, 7-day lifetime, chronological feed: no artisan can pay to jump the queue.
Address leaking through photosEvery uploaded photo is re-encoded server-side without EXIF/GPS metadata before artisans can preview it. Artisans see the job, not the location.
Disputes between client and artisanThe platform is positioned as a pure connection service. Artisans acknowledge on first login that a lead is not a contract, is non-refundable and that the platform does no mediation; the same wording is in both sets of terms.
Refund pressure and lead-quality complaintsArtisans can flag a bought lead (reason or free text). Flags are admin-only, never visible to competitors, and refunds stay a discretionary decision when several independent buyers confirm a bad lead.
Clients getting scammed by a bad actorThe thank-you screen and confirmation email tell clients never to send a deposit before meeting the artisan, agreeing on a written quote and checking their documents.
Personal data exposureClient contacts encrypted with AES-256-GCM per request, database locked behind the server (row-level security deny-all), every contact reveal logged, contacts purged automatically after 90 days (30 for unfinished requests). Data hosted in Paris.
Regulatory risk (France / EU)Terms for clients and for artisans written against the Code de la consommation (L111-7 platform transparency), the EU P2B regulation (notice periods for suspension and changes), GDPR (consent, retention, recipients) and the DSA. Artisan documents kept for the account's life plus 5 years as evidence.
Losing local rankings during the pivotGoogle Business Profile kept as a local service listing; 61 duplicate and cannibalising URLs consolidated with 301 redirects into the new local pages instead of being deleted.

Acquisition engine

SEO restructured around the new model

  • 72 local pages (20 Paris arrondissements + inner suburbs), each with unique local content and the form embedded.
  • Internal linking rebuilt: 810 keywords mapped to pillar pages, 2,773 contextual links, anchors taken from text that actually exists on the site.
  • 61 URLs consolidated with 301 redirects: duplicate posts and old local posts competing with the new zone pages.
  • Google Business Profile strengthened with services and categories while keeping its local listing intact.

Stack

Every choice has a reason

TechnologyWhy
Next.js 15 + TypeScriptOne codebase for the client form, the artisan app and the admin; server-side API routes keep secrets off the browser.
Supabase, Paris regionPostgres, auth and private file storage hosted in France: client data never leaves the EU, row-level security denies all direct access.
Stripe Checkout + webhooksCard payments, receipts and refunds without building billing; only a signed webhook can unlock a contact.
AES-256-GCM encryptionClient contacts encrypted per request; even a database export reveals nothing without the application key.
Sirene API, Turnstile, sharpCompany registry check at signup, bot protection on the form, photos re-encoded without GPS metadata.
Hostinger + GitHubPush-to-deploy and a scheduled cleanup job that enforces retention rules automatically.
WordPress, Elementor, Yoast, Internal Link JuicerThe acquisition site the team can still edit, with the form embedded and a rebuilt internal-linking graph.

What's next

Île-de-France first, then France, one département at a time

The same template (local pages, embedded form, artisan supply in the zone) can be duplicated per département. Next steps: a steady publishing cadence on long-tail keywords, outreach to flooring companies to build supply ahead of demand, and expansion beyond the inner suburbs.

Figures from Google Search Console for parquetservice.fr. Product screenshots of the artisan feed and request detail use sample data.

Covio

Have demand you can't serve alone?

We help service businesses turn organic demand into products and business models that scale.

Talk to Covio
Prev
More
Next
What Content Ranks and Gets Cited by AI in 2026: A Research Review
Comments are closed.