Firmkit

Case study · Apex, North Carolina

Secur-Tek. The whole kit, built from the inside.

A family-owned security and low-voltage company, in business since 1990, with a crew of technicians, a call center, builder relationships and a thirty-five-year-old customer base. This is what installing the four parts looks like inside a shop that size, piece by piece.

Every number on this page is a count of work that shipped: pages, fixes, pipelines, workflows. There is no revenue figure and no ranking claim, because this was not a Firmkit contract and we are not going to dress it up as one.

Disclosure, up front. Gabe Key, who runs Firmkit, works at Secur-Tek in business development and operations. This work was done as an employee, on the company's own systems. Secur-Tek is not a Firmkit client, did not pay Firmkit, and has not endorsed Firmkit. It is shown here because it is the one build we can document line by line, and because a prospect deserves to see the real thing rather than a borrowed logo.

  • 65hand-coded pages, live since July 2026, on the company's existing WordPress
  • 13town pages, each with LocalBusiness, Service, BreadcrumbList and FAQPage schema
  • 3Google Business Profile errors found in the audit and corrected
  • 45CRM workflows across 8 pipelines, with the website forms wired in

01 — Site

Sixty-five pages. Every one written by hand.

The company had a working site and a page builder underneath it. The rebuild kept the WordPress install and the URLs, and replaced the page builder output with hand-written HTML, one document per page: homepage, twelve service pages, about, team, testimonials, FAQs, user guides, alarm registration, careers, five contact and form pages, a blog index and seventeen posts.

Each page is roughly 97 KB with the logo embedded, so there is no builder stack loading behind it. Fifty JSON-LD blocks validated. Real Google reviews on the homepage, the testimonials page, the service pages and the city pages, in place of the placeholders that were there before. Seven duplicate and orphan pages were found and mapped for redirects.

The rule that survives the longest is the smallest: the site says "since 1990" and "35+ years" everywhere, never a year count that goes stale.

The crew walking a framed house on a pre-wire, pointing out the runs.

A pre-wire walk-through in a new build. One of the frames that runs on the careers page.

  • Structure

    One H1, one purpose

    • Unique title and meta description on every page
    • Canonical tag, Open Graph, a single H1
    • Internal silo links from hub to service to town
    • The header format preserved, so pages dropped in as replacements
  • Design

    Command center, hometown trust

    • Deep navy and gold, the company's own colours
    • A condensed display face, a mono face for the chrome
    • An arming-sequence hero, viewfinder brackets on hover
    • Built to be read on a phone in a driveway
  • Shipping

    No plugins, no theme change

    • One HTML document per page, injected into the existing install
    • No new plugins, no theme change, no URL change
    • Delivered as a static package with an implementation guide
    • Titles and metas documented for the SEO plugin already in place

02 — Maps

Thirteen towns, and a profile that was quietly wrong.

Thirteen city pages, one for each town the company actually drives to: Apex, Cary, Raleigh, Holly Springs, Fuquay-Varina, Morrisville, Wake Forest, Garner, Durham, Chapel Hill, Knightdale, Clayton and Pittsboro. The same page template thirteen times would have been a doorway farm, so each one names its own neighborhoods, landmarks and ZIP codes, carries a new-construction pre-wire callout, and answers the question every security customer secretly has: does the monitoring company watch my cameras? It does not, and every page says so.

The Google Business Profile audit found three things a customer would have seen before ever calling. The company name was written "MySecurtek" three times in its own description. The service area listed Holly Ridge, a beach town three hours away, instead of Holly Springs. And the hours showed open 24 hours, because the default was never changed. All three fixed.

GOOGLE BUSINESS PROFILE AUDITTHREE ERRORS. FOUND AND FIXED.BUSINESS NAMEMySecurtekWRITTEN THREE TIMES IN THE DESCRIPTIONSecur-TekSERVICE AREAHolly RidgeA TOWN THREE HOURS AWAYHolly SpringsHOURSOpen 24 hoursTHE GOOGLE DEFAULT, NEVER SETReal office hoursONE PROFILE. THIRTEEN TOWNS. CHECKED LINE BY LINE.SECUR-TEK, APEX NC

The profile audit, drawn. Three lines a customer reads before deciding whether to call.

THIRTEEN TOWN PAGES. ONE SITE.EACH WITH ITS OWN SCHEMA, NEIGHBORHOODS AND FAQAPEXCARYRALEIGHHOLLY SPRINGSFUQUAY-VARINAMORRISVILLEWAKE FORESTGARNERDURHAMCHAPEL HILLKNIGHTDALECLAYTONPITTSBORO13 CITY PAGESLOCALBUSINESS. SERVICE. BREADCRUMB. FAQ.MYSECURTEK.COM, LIVE JULY 2026ONE H1, UNIQUE TITLE AND META, CANONICAL, INTERNAL SILO LINKS, A PRE-WIRE CALLOUT AND THE CAMERA FAQ ON EVERY PAGE

The thirteen town pages, drawn on the map they cover. Apex is the office.

03 — CRM

Eight pipelines, forty-five workflows, and the forms wired in.

Residential sales, commercial sales, the tune-up campaign, consultation intake, service requests, referrals, website contact and billing questions. Each one is a pipeline with stages, so a lead sits in exactly one place with exactly one owner. The website's consultation, contact and referral forms post straight into the right pipeline through webhooks, and the first automated reply goes out from there.

One honest limitation, because it is true of every trade company in the state right now: text messaging waits on carrier A2P registration, so the SMS legs of those workflows fire by email until the carriers clear it. That is a registration, not a design flaw, and it is why Firmkit's own guarantee is written around the text-back working before anyone pays for it.

  • 8pipelines, one per kind of conversation the company actually has
  • 45workflows: first replies, follow-up cadences, status hygiene, internal alerts
  • 3website forms wired to pipelines by webhook, so nothing lands in an inbox
  • 1call-center playbook, with the camera-privacy answer scripted, because that objection was costing calls

04 — Backend

The lists nobody had made.

A thirty-five-year-old company has a database it has never really used. The open-account list was cleaned, split into residential and commercial because they are different conversations with different decision-makers, and sorted oldest install first, since the age of the system is the single best predictor of a tune-up yes. Accounts with no phone number were flagged and dropped. Accounts that shared a phone were flagged so nobody gets called twice. Priority bands recalculate live from the install date, and the newest customers go to a courtesy check-in rather than a pitch, because pitching someone who signed last month reads as a money grab.

Then a second list from public records: every single-family sale in Wake County in the last ninety days, with a new-construction flag and a days-since-sale sort, built from the county's own extracts instead of a paid data broker. And a compliance decision written into the file, not left to memory: no scraped phone numbers, no cold calls, direct mail only. North Carolina's telephone solicitation statute is not a footnote.

  1. Clean, split, sort

    Residential and commercial separated. Oldest install first. No-phone and shared-phone accounts flagged.

  2. Bands that move on their own

    Ten-plus years, five to ten, two to five, and a do-not-pitch band for the newest customers. All formula-driven.

  3. A script and a dashboard

    The call script sits in the same workbook as the live tally, so the person dialling and the person reporting look at one thing.

  4. Public data, compliant channel

    County sales extracts joined on the parcel id. Direct mail, because that is the channel the statute allows.

And the camera

The photographs the site runs on.

Crew portraits in one setup, one golden hour. Jobs shot as they happened.

Nothing on the Secur-Tek site is stock. The team page is the crew, on a real street, in their own shirts. The service pages are their own installs: a camera going up under an eave, cable being pulled through the trusses of a new build, a structured-wiring panel being terminated. This is the part of the kit no other shop selling marketing to Triangle trades can do, and it is why Content Days exist as a service.

A technician on a ladder wiring a camera under an eave.
A technician pulling cable through the trusses of a new build.
A technician working inside a structured-wiring panel on a framed wall.
Portrait of a Secur-Tek technician, shot for the company team page. Portrait of a Secur-Tek technician, shot for the company team page. Portrait of a Secur-Tek technician, shot for the company team page. Portrait of a Secur-Tek technician, shot for the company team page. Portrait of a Secur-Tek team member, shot for the company team page. Portrait of a Secur-Tek technician, shot for the company team page. Portrait of a Secur-Tek technician, shot for the company team page. Portrait of a Secur-Tek team member, shot for the company team page.

Eight of the crew, from the team-page session. Same light, same street, one hour. Every one now also lives on the Google profile.

What carries over to your shop

The same four parts, at one to eight trucks.

Secur-Tek is bigger than the shops Firmkit is built for, which is the point: everything above was done inside a company with a call center, a controller and a fleet, and it still came down to the same four parts. A site that takes the booking. A profile that is correct and fed. A pipeline so nothing lands in an inbox. The lists and tools the crew actually uses. At your size it installs in thirty days.

  • Hand-coded pages, a town page for each place you drive to
  • A profile audit on day one, because yours has an error in it too
  • Pipelines with a stage and an owner, forms wired in by webhook
  • Your own customer list, cleaned and sorted, before any ad is bought
  • Photographs of your real crew, on your real jobs

Questions

The ones a careful buyer asks about this page.

No. Gabe Key works there, in business development and operations, and this work was done as an employee on the company's own systems. Secur-Tek did not pay Firmkit and has not endorsed it. The page exists because it is the one build we can show you line by line.

Not on this page, on purpose. Those numbers belong to Secur-Tek and publishing them would be trading on a relationship we have already told you about. What we can show is the work: what shipped, what was fixed, what was wired. If you want to know what a kit produces for a shop like yours, The Proof exists so you can find out with your own list, in thirty days, before you sign anything.

Because the company already had it and had a team used to it. The pages themselves are hand-written HTML documents, one per page, with no page-builder output underneath. For a Firmkit client we skip the WordPress layer entirely, which is simpler and faster, but the discipline is the same: the code is written, not assembled.

Ask on the call and we will say what we can arrange. We will not hand out a colleague's number on a website, and we will not promise a reference we have not asked for.

Yes. Every frame is Gabe's, shot on Secur-Tek jobs and at the team-page session, and every one runs on the Secur-Tek site today. Nothing on any Firmkit page is stock, and nothing is generated.

Want this at your size?

Twenty minutes. We look at your profile and your site first, then we call. You keep what we find either way.