How to Turn a List of Names and Emails Into a Members Portal

How we did it · repeatable

Turn a list of names and emails into a members portal

Someone hands you a spreadsheet — names in one column, emails in the next. Here’s how we turned that into a password-protected portal where 76 athletes each see their score, their site, their AI agents, and everything we’ve shipped.

We just built one for Dunk Camp 2026. Before that, one for Sigrun’s 74 coaches. The starting material was the same both times: a roster. Nothing else.

The output is the same too — a single link, one password, and behind it a mini-site where every member finds their own name, scored, with their own dashboard, their own audit, the AI agent team building their brand, and a running log of what we’ve done. This is the exact recipe, so anyone on our team can run it, and so any group leader can see what they’d get.

76audited from a roster
12sites live in a week
1portal, one password
0members emailing you

The recipe, start to finish

1

Audit everyone from the list

Point Claude agents at each name — Knowledge-Graph lookup, Ahrefs, a live search. Five weighted pillars, one 0–100 score, one tier. The marginal audit costs cents, so you audit the whole group, including people who haven’t paid. A scored room sells itself.

2

Rank them into a leaderboard

Sort by score, hand each row a tier color, and you have the centerpiece. Nothing focuses a room like your own name, graded, next to your teammates’.

3

Do the one-on-one builds and write down what you did

For the people ready to move, build the real thing — a site on their own name, schema, an audit PDF. Record it as structured data: what shipped, the before/after score, the next three moves. That record becomes their dashboard.

4

Assemble one self-contained portal page

Not a dozen pages — one. The leaderboard, every member’s dashboard, the agent team, the build timeline, the group updates, and the analytics all live in a single HTML file with the data embedded and a little JavaScript router. One page is easier to gate, cache, and hand off.

5

Gate it with one password

A client-side gate reveals the members area and keeps a public teaser out front for recruiting. The deeper sales piece gets a real WordPress password instead. Same idea, two levers.

6

Publish it and email each member their own view

Push the page to the group’s own domain, then send every member a short note from their point of view: here’s your score, here’s your site, here’s the portal. The portal scales the relationship so one inbox doesn’t drown under 76 people.

What each member sees behind the password

The sections are tuned per group — coaches vs. dunkers — but the skeleton is identical, and it maps one-to-one onto the audit you already ran:

  • The leaderboard — all of them, ranked, each row opening a dashboard.
  • Their dashboard — score, rank, gap to the next person, what we built, their live site, their next three moves.
  • Their audit — the visual PDF, one click.
  • The agent team — the AI specialists that build them, and how to install them.
  • The build timeline — what’s live now, what’s still being built, dated and honest.
  • Group updates — the whole-room log, so a Friday check-in lives in one place.
  • Analytics — how authority is measured, and how far the room has moved.

The three gotchas worth stealing

Building this on WordPress, three things will bite you. We already paid for them, so you don’t have to.

1. WordPress mangles JavaScript inside a page

Drop a normal <script> into a WordPress page and the content filters will “helpfully” turn && into &#038;& and quietly break your code. The fix: base64-encode the whole script — the base64 alphabet has no < > & for WordPress to touch — and decode it at runtime with a tiny loader.

// survives every WordPress content filter intact
<script>(function(){
  var b = "…base64 of your real script…";
  var s = document.createElement("script");
  s.text = decodeURIComponent(escape(atob(b)));
  document.head.appendChild(s);
})();</script>

2. Names carry accents — keep them as characters, not escapes

Filip Pawełka and Piotr Zawiślak will sneak through your pipeline as Pawełka if you unescape everything except the unicode. Decode the \uXXXX sequences into real characters before you store the roster. Getting someone’s name right is the entire job.

3. Move big files without pushing bytes through the model

An 80–100KB portal page shouldn’t travel through your agent’s context. We create a hidden file input on the logged-in admin page, drop the file into it, read it with a FileReader, and POST it straight to the REST API. The bytes never leave the browser. Same trick uploads the audit PDFs.

Client-side gate vs. real password — use both

The portal

A client-side gate. The public sees a polished teaser and a password box; members type the word from camp and the whole mini-site reveals. It keeps the recruiting page working and the members area private.

The sales playbook

A native WordPress page password. Heavier protection for the piece you only hand to a partner. Same page, a real lock.

Neither is Fort Knox, and neither needs to be — this is audit data on public figures, not secrets. Match the lock to the value.

Why one page, not twelve

The temptation is to give every member their own URL. Don’t. A single page with the data embedded and a hash router (#dunker/deane-hirons) means one thing to gate, one thing to cache, one thing to hand the client. It’s the same pattern that lets one dashboard serve 76 people — the page reads a parameter and renders the right view. Fewer moving parts, and it loads instantly once it’s open.

The payoff: it’s a template now

The first time, this is a project. The second time, it’s a product. We ran it for Sigrun’s coaches, then for Dunk Camp’s dunkers, and the only thing that changed was the roster and the words on the pillars. The audit engine, the portal skeleton, the agent pack, the publishing trick — all reused.

So if you run a camp, a league, a mastermind, or an association, the ask is small: send the list. We’ll turn it into a portal your members log into, and a leaderboard that makes the whole group want in.

Written by the BlitzMetrics team the day we shipped the Dunk Camp 2026 members portal. Everything we build, we document — so it’s repeatable and teachable. The portal is gated for members; the Dunk Camp Playbook and its Sigrun sibling are gated for partners.

Dennis Yu
Dennis Yu
Dennis Yu is the CEO of Local Service Spotlight, a platform that amplifies the reputations of contractors and local service businesses using the Content Factory process. He is a former search engine engineer who has spent a billion dollars on Google and Facebook ads for Nike, Quiznos, Ashley Furniture, Red Bull, State Farm, and other brands. Dennis has achieved 25% of his goal of creating a million digital marketing jobs by partnering with universities, professional organizations, and agencies. Through Local Service Spotlight, he teaches the Dollar a Day strategy and Content Factory training to help local service businesses enhance their existing local reputation and make the phone ring. Dennis coaches young adult agency owners serving plumbers, AC technicians, landscapers, roofers, electricians, and believes there should be a standard in measuring local marketing efforts, much like doctors and plumbers must be certified.