The game I named three times, and the two wrong names that still answer
Key measurements
| Measure | Value | Source and date |
|---|---|---|
| Lines in the retired the-stack route, which renders no game | 14 | September 7, 2026 · My own first-person reading of the retired route file, counted rather than estimated. The repository is private, so a file's length is not something a reader can go and check. |
| Composure an ATS wall costs, against the phone screen's cost | 11 against 19 | September 7, 2026 · My own first-person reading of the gate-hit branch in the game component, where both costs are set on one line. The repository is private, so this is my reading and not a line you can open. |
| Gravity a frame, against a thrust of 0.34 | 0.13 | September 7, 2026 · My own first-person reading of the GRAVITY constant, declared on the line above THRUST in the same private component. |
| Altitude band with no enemies, called THE WAIT | 1,860 to 2,040 | September 7, 2026 · My own first-person reading of the WAIT_LO and WAIT_HI constants in the private component. The band is labelled on screen when you reach it. The two numbers are not. |
| Offers you must sign to win the search | 3 | September 7, 2026 · The Offer, the live arcade game on orbytlabs.ai. The heads up display prints the role counter against this total while you climb, and the result screen repeats it. |
| Lowball the first offer opens at, and the number that pulls it | 135,000 and 182,000 | September 7, 2026 · The Offer, the live arcade game on orbytlabs.ai. Both are drawn on screen in the offer phase, the lowball as the starting figure and the ceiling as the point where the tip line turns red. |
You are one resume, and you are falling.
A wall of blue keyword blocks crosses the shaft with exactly one gap in it. You lined up on the gap. You clipped the edge. The screen prints AUTO-REJECTED over your head in red, the camera shakes, and you drop back down the pile you just finished climbing.
That is the first thirty seconds of an arcade game about the hiring funnel. The wall is an applicant tracking system. It costs you 11 composure and it does not explain itself, which is the joke.
The game is The Offer. It has been called two other things.
This article lives at a URL that renders no game at all. Ask a browser for the arcade's the-stack route and a fourteen line file answers: two imports, a metadata block setting robots to noindex and nofollow, a canonical pointing at the new address, and one call to permanentRedirect. No canvas. No ship.
A retired URL is a promise you already made, and breaking it costs a reader more than keeping it costs me.
Why does one game have three names?
It started as Escape Velocity. Then it was The Stack. It ships as The Offer.
Escape Velocity still answers too. Both retired routes are permanent redirects onto the current one.
Escape Velocity described a feeling. The Stack described where you start, which is the pile. The Offer describes the thing you actually want.
It is what the last thirty seconds of a winning run are about. A name should point at the end of the arc, not the beginning of it. I moved it twice to get there, and I would rather say that than pretend the third name was the first one.
What does the climb actually feel like?
Gravity is 0.13 a frame. Thrust is 0.34. So the ship starts falling the moment you stop asking for altitude, and that is the one piece of physics here I will defend as a metaphor.
Three gatekeeper walls sit in the lower shaft. Two are the ATS. One is the phone screen. Each has one open slot, and the second slot drifts side to side while you line up on it.
The two wall types do not cost the same. An ATS wall takes 11 composure and drops you part of the way down. The phone screen takes 19 and the whole distance.
They do not say the same thing either. The ATS prints FILTERED OUT, KEYWORD MISS, AUTO-REJECTED. The phone screen prints RECRUITER PASSED, NOT A FIT, WENT WITH ANOTHER.
That gap is a tuning decision made from experience rather than from balance math. A machine ignoring you stings less than a person choosing someone else. The filter gets a game of its own in Resume Invaders.
Then the rooms. Round one is The Panel, one turret. Round two is The Technical, two turrets, subtitled EVERY ANSWER GETS A FOLLOW UP. Round three is The Onsite Loop, three turrets, called in the source the room you cannot prep for. Then the Hiring Committee: four turrets, the fastest bolts in the game.
The turrets fire questions at you. WHY GAPS. WEAKNESS. SALARY. OTHER OFFERS.
You answer them with your pitch. The rule is written into the file. You shoot the question, never the person. Land enough pitches on a turret and it is convinced rather than destroyed.
The unsimulated version of those four rooms is the free question generator at interview prep, which has no turrets in it whatsoever.
What happens in the quiet band?
Between altitude 1,860 and 2,040 there are no enemies at all. That band is called THE WAIT.
Composure recovers three times faster in there. And once per climb, exactly once, the game flips a coin. Half the time a callback lands, worth 20 composure and a green flash. The other half the screen says STILL GHOSTING YOU and takes 12 away.
I built that flip so it cannot be played. You cannot dodge it, aim at it, or get better at it, and nothing you did earlier moves the odds.
It fires in the stretch of a search where nothing is happening. The line the screen reader announces on the bad result says it plainly: only silence in the wait, it wears on you, not your fault.
Ghosted is a whole game about that band.
Why does signing one offer not win it?
Signing one offer does not win the game. The constant is WINS_NEEDED and it is 3.
Sign, and the whole stack rebuilds harder. Gate slots narrow. Turrets fire faster and their bolts move quicker. Three drifting red flags on the first climb become five on the second.
What carries over is your loadout. The bare resume that scraped through the first ATS wall is carrying dual shot, thick skin and referral missiles by the third climb. Composure comes back 45 points between roles, never to full.
The money moves too. Every role shifts the whole negotiation window up by 28,000 dollars, so the number that felt greedy on role one is ordinary by role three. Your score is the career total across all three.
At the top the verb flips. Everything below is dodging and answering. The offer phase is the only part of the game where you are the one pushing, and your number sags the second you stop. Push past 182,000 and the tip line warns you. Lock it up there and the offer resolves at the lowball instead, 135,000, with PUSHED TOO HARD across the screen.
That is a caricature, not a claim about how often a real counter blows up a real offer. The straight version is the salary negotiation guide.
What did I get wrong about what it keeps?
I had been calling this a game with no server. That is not quite true, and I had not counted the analytics event.
The game writes one thing to your browser, a key named orbyt-the-offer-best, and only on a win. A loss saves no score anywhere.
But every run that ends fires an anonymous arcade_run_ended event, win or lose, with the cause attached. And the page is rendered by a server that builds a scorecard image whenever a shared link carries a run in it.
So: no account, no leaderboard, no record of who you are. Not no server.
Sharing is a URL parameter. Your career total rides in the link, the card renders from it, and the next player reads that number as something to beat.
Verifying it would have meant an account, a run log on the server, and enough replay data to tell a real climb from a typed one. I built none of that. So a person can put whatever they like in the parameter and the game will believe them, and I took that over asking someone to register before they can play a free game about being rejected.
Failure is silent, on purpose. When composure reaches zero there is no buzzer. The result screen names the band you reached and then says the market went cold. Not you.
Why keep a dead route alive?
Back to the fourteen line file.
Keeping it costs one component that renders nothing and answers with a 308. What it buys is that no link saved during the preview ever goes dead.
The metadata is a request and not an outcome. Noindex and nofollow ask a crawler to drop the old address, and the canonical points at the real page. Whether an engine honours either is not mine to decide, and I have not gone and checked.
One loose end. Our own site search still carries a card titled The Stack, plus one for Escape Velocity and one for Application Frogger. A comment at the top of that same file says all three retired arcade routes must not be indexed. The comment is about search engines. The cards are in the box in our own header, and I kept the cards.
Each one lands you on the right game through the redirect, so the cost is a stale title rather than a broken link. I have no way of knowing whether anyone has ever typed the old name, and deleting the card would only make that unknowable more quietly.
The rest of the lineup is at the arcade. More build notes are on the blog.
Related reading:
- The Offer the game behind all three names, free in a browser with no account
- Ghosted a whole maze built out of the silence that THE WAIT models in one coin flip
- Resume Invaders the keyword filter that costs 11 composure here, given a game of its own
- Salary negotiation guide the straight version of the number at the top, with no meter attached
- The arcade five more games about the hiring process, all free and all in a browser
Methodology
Every game number here is a literal I read out of one file, app/(site)/orbyt-jobs/arcade/the-offer/TheOfferGame.tsx, rather than something I timed or measured while playing, and I have named the constant or the branch each one sits in. The line count is the retired route file, app/(site)/orbyt-jobs/arcade/the-stack/page.tsx, which I counted rather than estimated. The one thing I checked from the outside is the claim the article is actually about: I requested both retired addresses on www.orbytlabs.ai and followed where each one put me, which is how I know the old names still reach the live game.
Limitations
These are constants and a line count, so they say what the code does on each frame and what one file happens to contain. They do not say whether the climb is any good. The Offer has never had a human play test and there is no session data behind any of it, so a gate that costs 11 composure against one that costs 19 is a ratio I can prove and not a difference anyone has told me they felt. The article calls both retired routes permanent redirects on the strength of the function named in the source, and that is further than I measured. When I requested the old addresses they answered 200 with a page that forwards, so I never saw a 308 on the wire, and I confirmed the destination rather than the mechanism. The game file sits in a private repository and the game code loads lazily, so for the constants there is no public line I can point you at. Take those as my reading or do not take them. Every value here moves the moment somebody tunes a constant.
Sources
Common questions
Is The Stack the same game as The Offer?
Yes. The Stack was a preview name for the game that ships as The Offer. The old address answers with a permanent redirect, so a link saved during the preview works. The route history runs Escape Velocity, then The Stack, then The Offer. Only The Offer is on the arcade hub, though our own site search still carries a card under the older name.
How do you win a full run?
You sign three offers, not one. Each signed offer rebuilds the stack harder, with narrower gate slots, faster turrets and more drifting red flags, while the crystals you collected carry over and your composure comes back 45 points rather than to full. Your score is the career total across all three roles. Losing restarts the career from the first climb.
Does the game save my score?
Only your best winning career total, in your own browser, under a key named orbyt-the-offer-best. A loss saves no score at all. There is no account and no leaderboard, though an anonymous run-ended event does fire either way. Sharing puts the number in the link, so a shared score is editable by hand and nothing verifies it.
What costs the most composure?
The phone screen wall, at 19, followed by a drifting red flag at 16 and an interview question that lands at 14. The automated ATS wall is the cheapest at 11, because a machine ignoring you stings less than a person choosing someone else. Composure recovers three times faster inside the quiet band called THE WAIT.
Why can you not shoot the interviewers?
Because the rule is written into the source: you shoot the question, never the person. Landing pitches on a turret convinces it rather than destroying it. The whole arcade is aimed at the hiring process and never at the people inside it, and that constraint decided the mechanic before any of the art existed.
Related research
Follow the work.
I write these while the Machine runs. Get the next one wherever you already read.




