Arseni Filon

What I build for contractors

From a homeowner’s search to a signed job. This is the whole system, in the order a job moves through it. Each part has a name and a reason.

The page

  • Edge-rendered web platform

The homeowner taps your result on a phone, on cellular.

Edge-rendered web platform. The page is served from the data center nearest the homeowner, so it opens fast. I measure every site on a real phone before launch and give you the number.

The page shows your license number at the top, your reviews, and jobs you finished in that town.

How it is built

Sites are written in TypeScript on Next.js and deployed to Cloudflare Workers. Data lives in a database at the edge, and files live in object storage.

The Volks Roofing home page in Safari on an iPhone, with the reviews and both license numbers on the first screen
The Volks Roofing home page in Safari on an iPhone. The reviews and both license numbers are on the first screen.

The quote

  • Qualification funnel
  • Estimating engine

Multi-step qualification funnel. The homeowner picks the project, the scope, the timeline, and a budget range, adds photos from a phone, and picks a time for a site walk. The lead that reaches you is ready to price.

Estimating engine. On a Site with Tools the homeowner also sees a price range, built from your own numbers. On a roofing site the homeowner types an address and the roof is measured from satellite data.

How it is built

The roof engine finds the building and reads each roof plane from aerial and solar data, with its pitch and its area. The area becomes squares, waste is added for a roof that is cut up, and the range is priced on the roofer’s own rate per square.

The block estimator takes a wall length and a height and returns form counts, concrete volume, rebar footage, and a typical budget range. The cost calculators do the same for other trades.

A recording of the quote wizard on the Volks Roofing site, filled in on a phone
The quote wizard on volksroofing.com, recorded with a made up customer.
A recording of the cost calculator on the All Custom Building site, used on a phone
The cost calculator on allcustombuildingllc.com. The job, the size, and the finish go in, and a range shows on the spot.
A recording of the moving quote on the Rainier Delivery site, used on a phone
The moving quote on rainierdelivery.com. The price shows the moment a size is picked.
A recording of the block estimator on the ICF Guys site, used on a phone
The block estimator on theicfguys.com. Two numbers go in, and a budget range and a take-off sheet come out.

The lead

  • Instant lead emails
  • Email deliverability

The request reaches your inbox the moment it is sent, with the name, the phone, the project, the photos, and where the lead came from. The homeowner gets a confirmation with your number on it.

Email deliverability engineering. SPF, DKIM, and DMARC are set on your domain, so your reply reaches the homeowner’s inbox.

How it is built

The email is written by the site itself. One tap adds the site walk to your calendar, calls the homeowner, or opens a reply, and after the job one tap asks for a Google review. Every form is rate limited and checked for bots, and a post sent from another site is turned away.

The email a roofer receives for a new inquiry, with the town, the service, the roof size, and the site walk day
The email volksroofing.com writes to the roofer.
The confirmation the homeowner receives, with the site walk day and the roofer’s phone number
The confirmation the homeowner gets the same moment, with the roofer’s number on it.

The source

  • Lead attribution pipeline
  • First-party analytics

Lead attribution pipeline. The ad click and the search behind each lead are stored with it. Every lead traces to the campaign, the keyword, and the town that produced it.

First-party analytics dashboard. Visits, leads by source, and phone taps, live, at a private link on your phone, with no cookie banner.

How it is built

The ad click and the campaign are read on the server when the visitor arrives, before the page renders. The counting is done on the site itself and kept in your own database, with no outside tracker. The analytics tables hold no name, phone, or email, and crawlers are counted apart from people.

The dashboard on a phone, with visitors, leads, and phone taps, shown with sample numbers
The dashboard on a phone, with sample numbers. Visitors, leads, and phone taps, each split into paid and organic.
Traffic sources and the path from visit to lead on the dashboard, with sample numbers
Traffic sources with the leads each one produced, and the path from a visit to a sent lead.
Recent leads on the dashboard, each marked with its channel, with made up names
Recent leads, each marked with the channel that produced it.

The ads

  • Google Ads operations

On the Lead System, I build the Google Ads account by hand in your own account. Search campaigns only. The highest bids go to searches from people ready to hire. A list of hundreds of blocked terms is in place before the first dollar is spent. Each ad lands on the page built for that job.

I read every search term twice a week.

Ads inside ChatGPT are a new channel for contractors. I build those campaigns and run them too.

The signed job

  • Offline conversion import

Offline conversion import. When a lead signs, you text me the amount. The signed job goes back into Google Ads with its value, so the bidding learns which searches produce signed work.

Every week you get a report I write by hand. Spend, clicks, every lead by name and town, and what I changed and why.

In your name

  • Domain in your name
  • Google accounts in your name

Your domain is registered in your name. Your Google Ads account runs on your card, with you as an administrator, and your Google Business Profile is yours.

Get a written plan