Independent capability brief · concept: unlisted, not commissioned · prepared 2026-07-16

The machines can find you. They can't book you yet.

One big credit, four findings: each with the command to reproduce it. Everything was observed the way a visitor's browser sees it; nothing was probed, tested, or submitted. The brief closes by arguing most of this is optimization, not rescue.

Method: 10 rendered loads (5 pages × desktop + mobile, retina), console + network capture, response headers, robots.txt, llms.txt, sitemap, structured-data inventory. Repro: 3p-safety-staffing-evidence.json alongside this page.

First: you're already ahead, and we can prove it

Credit where due

One of the most machine-legible staffing sites we have reviewed. A real llms.txt (the file AI assistants read first) is live, services, credentials, locations, contact, putting 3P ahead of most of the industry.

Full structured-data graph (Organization + LocalBusiness + EmploymentAgency, Service + FAQ on service pages). Ten rendered loads, zero errors of any kind. Strong headers (HSTS preload, XFO, XCTO, Referrer-Policy). And the 200+ city/state pages are genuinely localized: LA runs 7,143 words to San Diego's 4,460, 35% vocabulary overlap. Sitemap touched four days before capture.

$ curl -s 3psafetystaffing.com/llms.txt        # real content, HTTP 200
$ curl -s 3psafetystaffing.com | grep -o '"@type":[^,]*'
"Organization" · "LocalBusiness" · "EmploymentAgency" ...
playwright, 10/10 loads: pageerror 0 · console.error 0 · requestfailed 0

Most briefs open by calling a site broken. Yours is the opposite: the discovery layer is done. Everything below is the next layer: letting machines act on what they can already read.

The bottom line, in plain English

No jargon: every fix below has one job: turn the safety pros and general contractors already looking for 3P into booked placements. Here is what each is worth to you.

Make your 48-hour promise something a machine can act on → the GC whose AI asks “can I get a CHST by Thursday?” reaches you

Your speed is your whole edge, but it lives only as words a buyer's assistant can read and never confirm, so a general contractor already looking for exactly what you do can't get a yes from the tool they trust, and an inquiry you'd win on the phone never reaches your phone.

Let the intake form collect the whole request → same-day shortlist instead of a two-day email tax

Today a fully-scoped request has nowhere to go but a free-text box, so your team pays the 24-to-48-hour tax of chasing certs, dates, and wage class by email, and some interested buyers drift off before the shortlist forms. Ask the five questions up front and “we'll come back with questions” becomes “the shortlist is already forming.”

Give the bench a front door → the credentialed pros already reading your pages can join it

The 130-plus pre-vetted bench is your deploy speed, yet a CSP or CHST reading your credential pages has no way to get on it, so the very inventory your promise depends on can only grow off-site. One “bring your cert to the bench” page turns readers into supply, at no ad cost.

Small housekeeping → cheap protection for a reputation you've already earned

The cross-origin quote form and a thin content-security header won't add placements, but they're exactly what a careful buyer or a bad actor notices first: a few minutes of configuration protects the credibility your strong, error-free site already carries.

1 · The 48-hour promise is prose, not a claim a machine can verify

The differentiator, unencoded

Your whole differentiator lives as prose. "Deployed in 48 Hours" is the H1, the title, and 17 mentions on the homepage, but nothing structured encodes it.

The schema has no Offer, no service-level property, no action beyond read-and-search; llms.txt states the tagline but gives an agent nothing to act on. Asked "can anyone actually have a CHST in LA by Thursday?", a GC's AI can cite your slogan but can't confirm it, so the contractor who needed exactly what you offer moves on without the yes they came for.

$ curl -s 3psafetystaffing.com | grep -c '48[- ][Hh]our'      # 17
JSON-LD potentialAction: ReadAction, SearchAction: nothing orderable
llms.txt: tagline present · intake/actions/availability: absent

Speed is exactly the claim agents verify before shortlisting. Encoding it is a one-page change (in the Agent Kit): the highest-leverage afternoon on this list.

2 · Your intake form can't collect what your own copy says makes you fast

Speed leak at the door

Your quote page says specificity is speed. Your form can't receive it. Vague requests "add 24 to 48 hours"; a fully-scoped one gets a same-business-day shortlist.

But the embedded Zoho Bigin iframe captures only name, email, phone, company, city, state, and free text. Its one "Position Type" dropdown: EHS Manager, Safety Officer, Safety Technician, Other: omits Site Safety Manager, SSHO, and every CSP/CHST/ASP/OHST lane you lead with. No start date, duration, certs, wage class, or per diem. The perfect request your page describes has nowhere to go but free text.

iframe src: us.bigin.online/org882090046/forms/3p-safety-staffing-inquiry
Position Type opts: [-None-, EHS Manager, Safety Officer, Safety Technician, Other]
missing: start date · duration · certs (CSP/CHST/ASP/OHST/SSHO) · wage class
DOM also carries CRM internals: POTENTIALCF1–8, Stage opts "Closed Won/Closed Lost"

Every field the form skips is a clarifying email later: the 24-to-48-hour tax, paid at your front door. Ask dispatch's five questions and "we'll come back with questions" becomes "the shortlist is already forming."

3 · The bench has no door

Supply side missing

The inventory behind the 48-hour promise is "130+ pre-vetted professionals", and it has no way to grow on-site.

No careers, apply, or join page anywhere: zero matches across the 200+-URL sitemap, homepage, about, quote, and llms.txt. A CSP or CHST who reads your credential pages has no on-site way onto the bench: the thing that is your deploy speed grows entirely off-site.

$ curl -s 3psafetystaffing.com/page-sitemap.xml | grep -ciE 'career|apply|join'   # 0
$ curl -s 3psafetystaffing.com/llms.txt | grep -ci career                          # 0

You already publish hire-by-credential pages for buyers. The mirror page for candidates, "bring your CHST to the bench", costs one page, feeds the stat every client checks, and gives the 90%+ retention story a public face.

4 · Small housekeeping, said quietly

Low stakes

Three low-stakes notes, no testing performed. (a) Your sole conversion action lives in a cross-origin iframe, so crawlers and agents can't see or pre-fill it: the one thing a buyer's AI wants to do is the one thing it can't reach.

(b) The Content-Security-Policy header carries only upgrade-insecure-requests (plus a legacy variant) while the rest of your header set is genuinely strong. (c) The Organization schema's only sameAs is a personal LinkedIn: thin corroboration for an otherwise unusually complete graph.

$ curl -sSI 3psafetystaffing.com | grep -i content-security-policy
content-security-policy: upgrade-insecure-requests;
"sameAs": ["https://linkedin.com/in/patrick-salazar-…"]   # personal, no company entity

The honest case that most of this is optimization

3P already did the part almost nobody does. Everything above is transaction-layer polish, not a discoverability rescue. Your own quote page argues, credibly, that for half-defined scopes a scoping call beats a long form; if staffing deals keep closing on the phone, findings 1 and 2 are optimizations, not leaks.

The lane that holds value either way is documentation velocity: SSHO daily logs, EM 385 submittals, corrective-action chases, and ISNetworld/Avetta/Veriforce packets your own resource pages describe: produced same-day, attributed, and tamper-evident. That work compounds whether or not a single pixel changes.

Next: the fix, shown in your brand

Provisioned by EcoWealth · Digital Provisioning Protocol · provenance‑sealed