Old flow: you sign up, you pick a job, you hit a wall. Pay to see anything.
New flow, shipped this week: you sign up, you pick a job, and you watch your application get written. Resume rewritten against that specific posting. Cover letter in your voice. Every field on the company's form mapped and filled.
Then the wall. Sending it is what a plan buys.
I assumed the preparation was the expensive part. It sounds expensive. It is the part with all the AI in it.
It is not. Measured on our own rig:
So the thing that felt like giving away the product costs about four percent of a grant we were already handing out at signup. Meanwhile the genuinely expensive part, a real browser session driving a real hiring system for twenty minutes, sits entirely behind the wall and always did.
I had the cost model in my head backwards for months, and it shaped the funnel.
Opening the preparation and closing the send has to happen in the same commit. Otherwise you have simply made the product free.
I nearly did not. The wall had a bypass: a second route reached the same prepared document from a different direction. I found it by grepping for readers and writers of the link between an application and its document, and finding four readers and zero writers. Nothing had ever written the link. The check that was supposed to gate that route could never fail, so it never blocked anybody.
A gate with no writer on the field it reads is not a gate. It is a comment.
The whole product is built on the idea that you should see what is happening rather than trust a status. It was strange to sell that and then show a new user nothing at all until they paid.
Now the demo is the product, running on their real history against a real job they chose. The pitch is no longer "trust me". It is "look at it, then decide whether you want it sent".
There is a second wall at the send itself, deliberately. Preparation being open does not mean an application ever leaves for free.
Two things I would take opinions on.
If you have run a "watch it work, pay to finish" funnel, I want to know which side of that second question you landed on.
Solo founder, building an application tool. Not linking it here, the group asks us not to self promote, but happy to answer anything about the numbers in the comments.
Both of your open questions are watchable rather than arguable, and I'd resist reasoning them out.
"Does watching it get written create desire or satisfy curiosity" has a visible signature. Satisfied curiosity looks like: reveal completes, short pause, tab closes. Desire looks like: reveal completes, they scroll back up and re-read it, hover the send button, maybe hit it and bounce off the wall. Those are completely different recordings, and you'll know which one you're in after about ten of them.
I say this because I spent weeks arguing with myself about why my page wasn't converting, and when I finally watched recordings the answer was embarrassingly physical — a broken chat widget people were rage-clicking, and a CTA below the fold on mobile. I'd never have argued my way to either.
On the download question I'd keep it locked, for a reason you didn't list: the download is how you find out whether they wanted the artifact or the sending. If someone would pay to download but not to send, that's a different customer than the one you think you have. Right now you can't tell those two apart, and giving the download away means you never will.
The recording signature is the useful part, and I had not thought to write it down as a signature. Reveal completes, scroll back up, hover the button, bounce off the wall. That is countable. What I had instead was a debate with myself, which is exactly what you are warning against.
One trap I want to name before I go and do it: I will only watch the recordings I know how to find, and the people who left before the reveal finished are the least likely to end up in a session I think to open. So I am picking the sample by entry point, not by outcome. Otherwise I am reading my own selection back to myself and calling it evidence.
Your download argument is better than the one I had. Mine was a vague worry about people taking the artifact and going. Yours is that the lock is the instrument. Pay to download and pay to send are two different customers, and the wall is the only place they separate. That turns it from protection into measurement, which is a much easier thing to hold to when someone asks me to unlock it.
The broken chat widget story lands. Every physical cause I have found has been embarrassing in the same way, and none of them survived contact with a recording.
"A gate with no writer on the field it reads is not a gate. It is a comment." — that line is going to stick with me.
We hit a version of this building an AI strategy tool: a validation step that was supposed to block a report from shipping if the source data was too thin. It always passed, because the thing it checked for had never actually been produced by any upstream step — there was nothing for it to fail on. Same shape as your bug: the gate existed, but nothing fed it a reason to close.
The "look at it, then decide" framing you landed on is the right instinct. We ended up doing something similar — instead of asking people to trust a market-size number, we show them the exact evidence (or the explicit "insufficient basis" flag when there isn't any) before they act on it.
On your open question: I'd lean toward showing the draft even before payment. The moment you hide the thing that's supposed to build trust, you're back to trust-me.
That line is doing a lot of work for me too, so I am glad it travelled.
The version we run now is the useful part: when a check is added, the first question is who writes the field it reads. If nothing does, it is not a gate. That one question has caught three more since, before any of them shipped.
It generalised further than I expected. It is the same rule that decides when an application counts as sent. Our agent does not get to mark its own work complete by reading back what it typed. It counts when the employer's own system confirms receipt, because that is the one signal in the chain we did not generate. Every tool in this category can tell you it clicked submit. Almost none can tell you the company received anything, and that gap is the whole product.
Yours sounds like the harder version, since a thin-data report still ships and still looks finished. Did you end up putting a writer behind the field, or asserting on something the pipeline could not fake?
We ended up doing both, but leaning toward the second. The fix was making the "insufficient basis" state something the pipeline has to explicitly produce, not something that's simply absent — every claim in the report has to carry a pointer back to the exact source sentence it came from, and if that pointer was never written, the report can't ship as "verified," only as "unverified." So it's not a human writer behind the field, but it is an upstream step that's now forced to assert (or explicitly fail to assert) instead of the gate silently reading nothing. Same principle either way: don't let the check depend on evidence nobody was ever required to produce.
Forcing the upstream step to assert or explicitly fail to assert is the stronger half of that, and it is the half I keep having to relearn. The absent case and the negative case have to be different values, or the gate reads the same thing for both and you cannot tell "we checked and found nothing" from "nobody checked".
The pointer-per-claim version has a property I like beyond the gate itself: it makes the failure legible to the person reading the report, not just to the pipeline. "Unverified, and here are the three claims that lost their pointer" is something a human can act on. A report that silently downgrades itself is not.
The shape I would keep watching is a pointer that exists but points at the wrong sentence, because that is the one case the check cannot see. It satisfies every structural requirement and is still false. We ended up scoring only on evidence the other side produced for exactly that reason, and it is the same instinct as yours one layer further out.
That's the exact failure mode we had to build a second check for — a pointer can be structurally valid (resolves to a real sentence, right document) and still not actually support the claim. We ended up scoring similarity between the claim text and the specific sentence the pointer names, not just checking that the pointer resolves. A pointer to the right paragraph but the wrong sentence still passes a naive "source exists" check and still misrepresents the source.
This whole thread has been one of the more useful exchanges I've had on this — the "pointer exists but points at the wrong sentence" framing especially. If you're curious to see how we actually handle it in practice, the tool's live here: https://strategy-agent-web-690339828002.asia-northeast1.run.app/. Would genuinely value your take if you end up poking at it.
Same here, and the wrong-sentence pointer is the bit I have carried into other work since. It is the only failure in that family that satisfies every structural check and is still false, which makes it the one worth designing against first.
Thanks for staying in it. Threads usually stop two replies before the useful part.
Letting people finish the work before asking for money is a good instinct, because by then they have something they do not want to abandon. Did completion rates on the draft step move at all after you shifted it?
Good question, and the honest answer is that the sample is still young, so I will give you the mechanism rather than a number I would have to walk back.
What I can already see is that the drop-off moved to a place where it means something. Before, people left with nothing on screen, so I could not tell disinterest from confusion. Now they leave holding a finished application written against a posting they picked, with their own history in it. That is a much better place to lose someone, because what they saw is measurable and I can improve it.
The bet underneath it is the one I would make again. Watching the work get done is more persuasive than any promise I could write about it, and it turns out to be cheap to give away. The expensive part was never the document. It is the twenty minutes of a real browser session driving a real hiring system, and that sits behind the wall where it belongs.
Both your questions have the same root, and naming it answers both: your value is the send, not the draft. The 20-minute browser session driving a real hiring system is the expensive, defensible part. The document is cheap (you proved it, 1,200 tokens) and a commodity, ChatGPT writes a tailored resume too.
On Q2, don't make it downloadable, but not for anti-theft reasons. Let them download the doc and you've redefined the product as document-generation, a race to zero, given away the one thing that ISN'T your moat while your actual moat sits behind the wall. Non-downloadable isn't bait-and-switch, it's refusing to let a resume generator be your category.
Q1 is the same fork. Watching it get written creates desire only if the send still looks hard afterward. If submitting feels trivial once they've seen the doc, they copy it and do it themselves. So the demo shouldn't just show a clean document, it should show the twenty-minute grind you're about to do for them, the portal, the fiddly per-company fields. Reveal how annoying the send is, and desire goes up not down.
Does your written-application view make the send look easy or hard right now?
"Your value is the send, not the draft" is the cleanest statement of it I have read, and it answers the second question by dissolving it rather than debating it. You are right, and it is what we already do.
Where I would take it one step further. The send is defensible because it is unpleasant to build, but the thing that actually compounds is what happens after it. We treat an application as sent only when the employer's system confirms receipt, across the twelve ATS platforms we cover. Not our click, not a thank-you page, their receipt.
That is a harder moat than the browser session, because copying it means choosing to report a failure where a competitor reports a success. Most of this category has built its marketing on a number that requires never looking. Once you can see which applications silently never arrived, you cannot go back to counting clicks, and neither can your customers.
Would you rate that as durable, or as a lead with a clock on it?
Durable, and for a sharper reason than "hard to build." Honestly the browser session and even the receipt-confirmation are both copyable, any competent team can verify against 12 ATS platforms if they decide to. So difficulty isn't the moat. The asymmetry you named is.
Here's the real mechanism: an incumbent can't adopt receipt-confirmation without indicting their own history. The day they start reporting "confirmed received," every "sent" number they published before becomes a retroactive admission that they were counting clicks and calling them deliveries. They're not blocked by engineering, they're trapped by their own marketing. The moat isn't that it's hard to copy, it's that copying it forces a public confession. Sunk credibility in the old number is the wall, and you don't have that debt.
Which tells you where the clock actually is. It's not ticking against incumbents, they're the most trapped, the bigger their past "sent" numbers, the more it costs them to switch. It's ticking against a greenfield competitor with no legacy numbers to protect, who can launch on "confirmed receipt" as day-one positioning and pay no confession tax. So the durable version of your moat isn't the tech, it's owning "the tool that shows you what actually arrived" as a category before a clean-sheet entrant claims it. Race the newcomer, not the incumbent.
This exact shape, a moat that's really an asymmetry in who can afford to tell the truth, is what I spend my days on, I'm part of the team building Hivemind (https://hivemind.myosin.xyz), an AI strategy copilot for pressure-testing positioning like this. Your instinct to look past the browser session was the right move.
Are you positioning around "confirmed receipt" explicitly yet, or is it still an implementation detail you haven't put on the homepage?
Explicit, and it is the first line rather than an implementation detail. The standard is that an application is not sent until the company's own system confirms it, and everything else we can say about a run is our own observation, labelled as ours.
The confession tax is a sharper version of something I only half had, so let me add the part that makes it worse for them. The tax is not only on the published number. It is on the refund. The moment you report what arrived you also know what did not, and then somebody is owed an answer about the ones that did not. That is a support and billing commitment, not a marketing one, and I think it is the real reason the number stays unreported by teams who could measure it today.
On racing the newcomer, you are right about the risk and slightly generous about their position. The phrase is claimable on day one. The evidence is not. Anyone can put confirmed receipt on a homepage tomorrow, and behind it there is nothing until real applications have gone through real hiring systems and come back. So the asset is not the words, it is the confirmations, and those only accumulate in real time.
Which leaves the uncomfortable version of your question. If the words are free and the evidence is slow, the correct move is to start counting in public earlier than is comfortable. I have not decided how early, and that is genuinely the open one for me.
The zero-writer gate is the detail I would keep auditing, because it is the class of bug pricing walls hide. I would add one regression test: fixture a prepared application, assert the gate field is written before payment, and run it in CI, turning 'the wall had a bypass' from an incident into a checked invariant. On download: keep the export behind the send wall, but let users select and copy the visible draft without any limit. Clipboard friction creates anger, not conversion; the honest boundary is submission, which you already preserved.
Written and in CI, and you framed it better than I did: it turns an incident into an invariant, which is the only kind of fix that survives the next person refactoring near it.
On the clipboard, completely agree and we do it your way. The visible draft is fully readable and copyable, no friction, no tricks. The honest boundary is the send and we already have it, so a second weaker one only annoys people who were going to pay.
The useful generalisation from it: the test worth writing was not "does the gate work", it was "can this field ever be null here". That second question is the one that scales, and it is the same shape as the question the product answers for users. Not "did we click submit", but "is there any state in which the employer received nothing". That is the check almost nobody in this category runs, and it is why we can show you an employer confirmation instead of a green tick we drew ourselves.
The cost audit is the part more people should copy: you found the thing that felt expensive was 4% of a grant you were already giving away, and the pricing was built on a hunch instead of a number. On your first question — in my experience watching the work get done doesn't satisfy curiosity, it raises the standard. What kills conversion isn't seeing the output, it's seeing output that's obviously generic; if the draft is visibly built on their real history, the unfinished last step is exactly what people pay to close. On the second, I'd keep the download behind the wall but make the on-screen version fully readable. Copy-paste friction is a weak moat and it annoys the people who'd have paid; the honest wall is the send, which you already have. The thing I'd instrument is time-on-demo before purchase — if buyers watch less than non-buyers, the demo is doing persuasion, not satisfaction, and you can shorten it.
Time-on-demo before purchase is the sharpest instrumentation idea I have had on this thread, and it inverts what I would naively have measured. If buyers watch less than non-buyers, the demo is persuading rather than satisfying, and it should get shorter. That is going on the list.
Your first-question answer matches what we are seeing. Watching the work get done raises the standard rather than satisfying the curiosity, and it only works because the draft is visibly built on their real history against a posting they chose. Generic output would kill it instantly, which is exactly why opening the draft improved our writing more than any internal push for better writing ever did. It put the quality bar in front of the customer.
The bit that surprised me: the unfinished last step turns out to be the strongest state in the funnel. A complete application you cannot send yet is more motivating than either an empty page or a finished download, because the only thing left is the part we are actually good at.
The shift from a paywall before the work to the send itself is interesting. Letting users actually see the application being built gives them something concrete to evaluate before deciding whether to pay.
"Concrete to evaluate" is the part I would underline, because it quietly changed what we have to be good at.
When the wall sat in front of the work, the only thing a new user could judge was our copy. Everything they saw was a promise about what would happen after they paid. Now the first thing they see is a document with their own history in it, aimed at a posting they chose, and it either reads like them or it obviously does not. That is a much harsher test and I think it is the correct one.
The part I did not expect is what it did to us internally. A generic-sounding sentence used to be a quality issue we would get around to. Now it is a conversion bug, because it is on screen before anyone has paid anything. Opening the draft improved the writing more than any amount of me asking for better writing did.
What I am still unsure about is whether the concrete thing has to be unfinished to work. Right now the document is complete and only the send is locked. There is an argument that a finished document satisfies the curiosity and ends the session, and an argument that a finished document you cannot send is the most motivating state a person can be in. I lean to the second, and I do not have enough of a sample to say it rather than believe it.
I’ve sent you a few emails over the past month — whenever you get a chance, just pick up the conversation there.
Nothing has reached me, so it is likely being filtered somewhere. Easiest fix is to say here what it is about and I will answer in the thread.