The Bonds We Don't Break: Building The Carry Network
Building a verified professional network solo, and what it taught me about trust, knowing what to leave out, and working with AI agents.

The games industry is in a strange moment for finding work. As hiring gets noisier on both sides, the specific qualities that make a person worth hiring get flattened into the need to be seen by somebody, anybody. And there's a particular cruelty in how a layoff works: the colleagues who could vouch for you, the people who know what you can actually do, are usually still inside the company you just left. You lose the noise you need to cut through and the people who could cut through it for you, at the same time.
What came before
When I was laid off in February 2026, I was fortunate to land in a circle of Riot alumni whose support was pivotal: for processing the experience, picking myself back up, moving forward. It made me realize how small that circle was against the whole. How many Riot alumni were out there I didn't know, in the same position, who could use the same kind of support and a way into a community of people who had their backs?
Around then, Epic Games announced layoffs of a thousand people, and someone from their community built The Awesome People List on Replit. I found it inspiring, and I saw ways it could serve its users better. It was scoped only to that one layoff wave, where an evergreen home open to all alumni would help more, for longer. It applied no verification, so anyone could add themselves, which diluted the one thing that should make such a list valuable to a recruiter: assurance that these people are who they say they are. And its job posts could be created by anyone and answered by any visitor, which weakened it as a board aimed at a specific community.
It also had something I wouldn't: a wave of press to ride. The Awesome People List launched into real media attention. I would start from zero, with no built-in audience and no boost beyond the people who had already offered help in person. Whatever I built would have to earn its own legitimacy, which meant a careful, staged rollout would matter as much as the product.
Program management as the entire lever
LLM-written code was the force multiplier that made this possible. I could have built something by hand eventually, but my practice is too limited, my understanding too narrow, and my job-search time too precious to reach the quality I had in mind that way. Seeing that the Awesome People List had been built on Replit told me this was not only possible but attainable, and quickly. I started picturing a destination Riot alumni could always return to, a place that turned "Riot alumni" into something people could actively seek you out for, and I got excited about the good it could do.
My place in the work felt familiar. At Riot I had cut my teeth giving in-depth feedback to marketing leads and software engineers, aligning with subject matter experts on my team, and synthesizing all of it into clear, actionable direction. The role here was the same role, with the teammates swapped for agents. How much could I build with a tool that made program management the entire lever? There was only one way to find out.
How I worked
I started by researching what good workflows looked like with these tools. Then I wrote the longest, most complete specification I could: every feature I could anticipate, how I pictured each piece behaving, the user stories I wanted people to complete. I brought that document to Gemini and asked it to help me forge the best possible build prompt: applying current best practices for security, UX, and SEO, raising angles I hadn't considered, and interviewing me on anything unclear rather than guessing. A few rounds produced a specification solid enough to hand to Replit's agent to plan the foundation.
The thing this taught me fastest is that building with agents means checking their work constantly, often more than once. A coding agent is good at studying what you've built and inventing busywork for itself. It is frequently pointed at a real problem but doesn't quite grasp the vision, and without a human adding friction, it drifts. My job was to be that friction.
This is also where the project let me practice a dynamic I didn't expect to recognize here. Earlier in my career I deferred too readily to engineers on anything technical, treating their domain authority as a reason to discount my own read of a problem. It took me years to learn I had something valuable to contribute there, and to give technical feedback with conviction. The easy assumption with agents is the same one I used to make about engineers: they obviously understand the code more deeply than I do, they can tear through the codebase in seconds, so who am I to push back? But the failure mode turned out to be identical. A capable agent will still drift from the vision unless you are crystal clear about being on the same page, which means defining the values and the goals plainly enough to litigate decisions against. And if a well-aligned agent can still get mixed up for want of shared context, the people you work with surely can too. The same fix serves both: explicit, shared understanding, and the safety to interrogate a decision as many times as it takes. Working with agents let me exercise that without hesitation, and it sharpened the instinct.
The loop that emerged was simple in shape and demanding in discipline. When something broke, fell short, or sparked an idea, I would ask the Replit agent for a full rundown of the relevant code or behavior. Then I would take my intended change to Gemini to pressure-test how best to accomplish it, grounding it in the design principles at stake and telling it to research before answering. I recognized early that there would be a trap here: to grow complacent with the agent's skill and reduce myself to a rubber stamp. These were not colleagues whose time I might waste, so there was no cost to slowing down and confirming that the prompt I passed from one agent to the next actually represented the direction I intended.
The most valuable discipline was guarding against decisions made quietly on my behalf. I passed every finished prompt to Replit in plan mode, which forces the agent to write an exhaustive task plan for approval before it touches anything. Those plans were often smart enough to catch edge cases neither Gemini nor I had seen. They would also occasionally make a misaligned call without flagging it, or propose a whole new component where an existing one would do. So I ran each plan back through Gemini for a second set of flags, folded in my own, and sent a revision prompt before approving, staying just as skeptical of Gemini's revisions as of the plans themselves, looping until everything was solid. That practice caught countless problems before they reached the codebase. It is the part of the method I would carry into any team: trust no single source, human or machine, to hold the whole picture, and keep honing until the picture is right.
Asymmetric authentication
It was clear early that if I didn't solve for trust, the tool wouldn't do what it needed to. Trust had to take two shapes, because I was serving two audiences with very different needs. Riot alumni were entrusting the site with their professional identity and personal brand, and they needed a secure, reliable way to return to their profiles across the whole arc of a job search. Recruiters wanted something lightweight and low-commitment, asking little up front while still giving them control over what they posted.
Alumni and recruiters draw on the same underlying content, but their accounts work in fundamentally different ways. For alumni I used OAuth across a range of services, so people could sign in with whatever platform they already preferred, and so the set of supported services could grow over time. To make it easy to return to the right account, I added a "last used" indicator and countermeasures against accidentally creating a second profile under a different provider.
Recruiters can draw value without ever creating an account, browsing the Talent Directory and reaching out to members through their linked profiles. Those who do sign in find functionality that broader platforms charge thousands for: they can post opportunities visible only to the Carry Network community, edit or remove them at will, bookmark specific profiles, and get an email the moment a bookmarked member marks themselves Open to Work again. Recruiter access is gated behind a magic link sent to a company email address, which keeps the flow frictionless while turning away bad actors.
This asymmetry is how the platform makes its case for legitimacy. Only verified alumni can ever be listed, and the opportunities posted here reach only them. The verification I built in is the trust signal I couldn't borrow.
Knowing what it isn't
Just as important as knowing what I wanted Carry to be, and maybe the more impactful part of the job, was knowing what it shouldn't be. That discipline matters enormously, especially when you're working with agents this eager to invent scope. I knew, for instance, that paying for image hosting would meaningfully change the long-term sustainability and automatability of the site. The agents didn't; to them, obviously users would want to upload their own images, right? Sorry, robots, and sorry also to the users who reasonably asked: we're keeping it lean. The same instinct applied to moderation. While I scaffolded for moderators so the capability exists, the site is designed not to need a standing mod team to stay healthy.
(Edit, July 3: About a week after this went up, the platform handed me a correction. LinkedIn serves profile photos as signed URLs that expire a few weeks after a member's last login, so avatars had been quietly decaying into initials for exactly the people a directory most needs to represent well: the ones who haven't been back in a while. That made hosting images ourselves a correctness fix, and the dreaded bill came to... pennies a month, max. With the pipeline required anyway, the upload people had asked for cost almost nothing to honor: every image is re-encoded on the way in, and the moderator scaffolding above is all the backstop it needs. I knew from the start that doing right by people who trust this place with their professional identity meant maintenance would stay my job, and this is what that looks like: watching, noticing when reality disagrees with a decision, and moving when it does. Consider that apology retracted.)
I also didn't want The Carry Network to replace the Riot alumni communities that already existed. I wanted it to level them up. It should be connective tissue, a nexus for anyone who shares this experience, but those groups are varied enough to deserve their own spaces and their own support. Carry should carry forward the meaning of being a Rioter, something we all have to say goodbye to eventually, into something that grows with you and grounds you in where you've been. It is not a message board. It is expressly not trying to be a chat room or a replacement for any existing community. It tries to get you to make those things and bring them here.
Without the conventional drivers of engagement, I designed other hooks in. The core loop runs alumni to alumni: any verified member can post an opportunity, and flag it as a referral when they can offer one, which puts the hardest part of a job search, the warm introduction, directly in the hands of the community. The Open to Work flag and the 30-day expiry on job postings do double duty: they're actions a user takes, and they're an automatic noise filter that keeps the directory honest, so it always reflects who is actually looking right now. Around that I built a suite of email triggers, run simply through Make.com and Resend.com. A member can subscribe to specific tags and be pulled back when a matching opportunity or community post appears; the system also tells them when their Open to Work flag is about to expire, or when they need to resubmit their profile and why. The intent is a platform that keeps itself useful and current without depending on me to stoke it, and without anyone needing to check in on the off chance something changed.
Why it matters
I called it The Carry Network because the name carries a double meaning. In games, a "carry" is the player who shoulders the team and pulls everyone toward the win, which is exactly who these people are. But it is also a promise about what the platform is for: the community you carry with you, and the community that carries you.
Riot alumni worked hard to get where they are. Full-time or contract, engineers or IT or the people restocking the pantries and serving lunch in the cafeteria, Riot wouldn't be what it is without all of them. The market deserves to know how to find people with this kind of drive, and these people deserve to be found. They deserve not to lose their friends. They deserve to find each other again and work together. Every sign points to human connection mattering more now than ever, and The Carry Network exists to uplift the people who, in all their different ways, worked to make it better to be a Player: connecting them, helping them find new opportunities, and letting the world see how driven and capable they are.
Thoughts like this kept me going, taking unsatisfactory work back to the drawing board, until I had pushed it as far as I could alone. Then I needed more eyes.
The launch, and where it stands
When I was impacted, a lot of people I'd helped over the years reached out to offer condolences and to ask whether they could do anything. I thanked them, appreciated their kind words, but it wasn't until Carry was nearing launch that I understood the favor I might actually ask. The launch was the moment to call them in.
Cadence would be everything. Open the doors too early and you force your earliest users to set up their accounts more than once, a fast way to lose them. Open too late and you've skipped the feedback that would have fixed onboarding, or missed your one real awareness spike, and a job board with no people on it is just a quiet room.
So I built a multi-phase rollout strategy. The first phase was a gated alpha for a small group who'd expressed direct interest, run with a planned data wipe I told everyone about up front, so no one was surprised when the test data cleared. Once that was solid I moved to a closed beta: still gated, a larger cohort, no more wipes, with their feedback gating whether we were ready to widen. That feedback integrated and the data's shape locked, I dropped the password and opened the beta. Alongside the people who'd already offered support, I worked through the Great Hire list a community member had built around the 2XKO layoffs, checking each person to confirm they were genuinely alumni and hadn't already landed back at Riot before reaching out. By the time I posted the public announcements to LinkedIn and Bluesky, there were 28 verified members onboarded.
Those announcements were the spike you'd expect, and they settled into a founding cohort: 46 verified members, 34 of them Open to Work, built almost entirely through controlled phases and word of mouth. I haven't run a growth campaign since, so what activity there's been is organic. The platform runs on a 30-day rhythm, since Open to Work auto-expires at thirty days, so the first full cycle is only now coming due.
I built in ways to learn whether any of this is working. When someone turns off their Open to Work flag, or logs in after it has expired, the site asks a short question: were you hired, and did Carry help at all? It doesn't ask whether the help came from inside the network or outside it, because that isn't the point. The point is understanding, across a few dimensions, whether the platform is useful to the people it exists for. No answers have come back yet, and I know better than to read too much into early numbers either way. This is built to be a long-term platform, like the games its people come from, the kind that compounds in value as it grows. So I instrument it and watch for where to steer next.
I'm clear-eyed about how much this might, or might not, grow. It may well stay near its launch size, and that is already a win: 46 connections to people like these is a dense, multi-dimensional network on its own, and it compounds with any incremental growth from here. The doors are open and the infrastructure is built to scale as far as this community wants to take it. The harder problem is that growing it still depends on me. I can hand-invite people until the cows come home, and I may do some of that, but cold outreach from one person comes off a little sketchy, and it leaves me as the single human point of failure for the one part of the platform that isn't automated. That is misaligned with the ethos of everything else I built. The unsolved part is getting myself out of the way.
What it demonstrates
Since advertising it feels a little gross, a little antithetical to what I was going for, every bit of awareness I've driven for Carry has been deliberately light-touch, which unfortunately leaves the platform easy to underestimate. It is deeper, and more restrained, than it looks, and if that is going to be understood, the story has to be told somewhere at length. This piece is part of that, one more piece of the foundation. But I can't expect many people to read something this long, so the question stays open: how do you communicate the values built into a platform, persistently and to a wider audience, without betraying the restraint that defines it? What does the infrastructure look like for the people who would value this most to find it on their own?
Experimenting with problems like these is the fun part for me. Taking something from a vague need to a working system, then working out how it sustains and grows, is what I've done my whole life, and professionally for nearly a decade, often under titles that didn't say so. I'm looking for my next opportunity now, and if this kind of thinking is what your team needs, I'd love to talk: hello@willmoody.co.