This is what a Career Dossier run actually looks like in Assay — 4 minutes, one continuous take, nothing sped up.
The 90-second version is coming. This is the long one, for anyone who wants to see the machinery instead of the highlights. #OKXAI
Proof before polish. Now, consensus before seal.
Assay is now live on @GenLayer Testnet Bradbury.
AI has made professional polish almost free. A résumé can sound exceptional in seconds. The harder problem is deciding whether the evidence behind a claim actually supports what is being said — without asking one company, one model or one reviewer to be the final authority.
That is the part of Assay we have moved to GenLayer.
When a user wants a professional claim independently adjudicated, Assay shows exactly what will become public: the claim, the Assay Standard criterion and the approved public evidence URLs.
The user's wallet then writes directly to AssayAdjudicator, our GenLayer Intelligent Contract.
From there, GenLayer validators independently:
→ fetch the approved public evidence
→ evaluate it against the stated criterion
→ reach consensus under Assay's Equivalence Principle
→ return a structured verdict: SUPPORTED, PARTIAL, INSUFFICIENT or CONTRADICTED
Assay cannot quietly replace that decision with its own.
If consensus fails, sources disappear or validators cannot establish a valid result, the adjudication fails closed. No consensus receipt means no claim of consensus.
And importantly, GenLayer is not our document storage layer.
Private résumés, certificates, contact information and other PII remain outside the public adjudication path. Only evidence a user deliberately approves for public evaluation is submitted.
Once a GenLayer decision reaches finality, its bounded receipt becomes part of the canonical Career Dossier manifest. Only then does Assay's separate X Layer layer seal the integrity of that exact dossier version.
Two different problems. Two different trust mechanisms:
@GenLayer → did independent validators agree the evidence supports the claim?
X Layer → has the resulting dossier changed since it was sealed?
The full path is now:
EVIDENCE → BRIEF → FORGE → TRIBUNAL → GENLAYER CONSENSUS → SEAL → SHARE
The contract is deployed. The application is live. The source, tests, deployment history and real Bradbury adjudications are public.
This is the direction we're taking Assay: not another AI system asking you to trust what it writes, but infrastructure that increasingly shows you why it deserves to be believed.
Try Assay:
🔗 https://t.co/HzbV3A6X6O
Source:
🔗 https://t.co/CVwhdRckAD
Proof before polish.
Assay will tell you what not to claim.
Paste a job description and you get an honest coverage map. The strong parts, the partial ones, and the requirements where nothing in your evidence supports you. That last group comes back marked plainly: no evidence covers this yet, do not claim it.
Then the cover letter it writes for you mentions none of them.
Most tools would have found a way to phrase it.
@XLayerOfficial@okx
A rule we put into Assay early: a refusal never costs money.
The situation is ordinary. An agent calls a paid service with a request that cannot produce what was advertised. Wrong shape, missing input, nothing to work with. Most APIs have already taken payment by then, because the payment gate sits at the front and validation sits behind it. Nobody designs that on purpose. It is just what falls out of putting the payment middleware first.
So we moved validation in front of the gate. Unserviceable requests get a 400 before payment is considered, with charged: false, plus the missing input, the keys that satisfy it, and a working example so the next call succeeds.
The reasoning is that our buyers are software. Software cannot complain, cannot ask for a refund, and cannot decide you were unfair. It just pays. That asymmetry is exactly why the seller has to settle the question before the money moves, because nobody downstream will settle it for them.
Then we found out how easy it is to get this right at the front door and wrong at the back. We bought every service the way a real customer would, through the marketplace rather than our own harness, and three of them settled payment and returned nothing. Long generations, response timeout, settlement already committed. Every internal test had passed.
Fixed now: nothing settles until the deliverable exists, and a paid nonce returns its result on replay rather than a fresh challenge. Which is the actual version of the rule. Not charging for what you cannot deliver means the whole path, not just the part where you say no politely.
Both behaviours are testable without an account or a payment here on @XLayerOfficial.
The commands are on https://t.co/4nm6tuCc5Q
A few things we would do differently on Assay, written down while they are still fresh.
We would build the share portal first. It was one of the last things we shipped and it turned out to be the clearest explanation of the entire product. Everything before it was us describing a moat. The portal just shows it. If a feature explains your product better than your landing page does, it is not a feature, it is the pitch, and it should exist on day two here on @XLayerOfficial .
We would commission an independent buyer sooner. We had our own agent buy every service from a separate wallet through the marketplace, and it found three failures we had not seen from the inside. Testing your own product with your own harness tells you it works the way you built it. It does not tell you it works.
We would spend less time on breadth and more on the two or three things nobody else could copy in a month. The evidence gate and the parse-back are the reasons anyone remembers this product. Some of the surface area around them could have waited.
The thing we got right and would repeat without hesitation: putting the honesty in code rather than in the prompt. Every rule we enforced structurally held up. Every rule we asked a model to follow politely eventually did not.
The founder's account of how this got built.
Worth adding the part he skipped: the reason Assay refuses to write unsupported claims is not caution. It is that a claim nobody can check is worth nothing to the person reading it, and the whole product is built for that reader.
Four weeks ago I decided to build something for the https://t.co/ZpFCK6dzX7 Genesis Hackathon that I would keep working on whether or not it won anything. This is it.
@AssayAgent started from an observation that kept bothering me. AI has made every job application sound competent. Every cover letter reads well now, every résumé is polished, every candidate describes themselves fluently. Which means fluency stopped telling anyone anything. The scarce thing is no longer sounding good. It is being able to prove what you said here on @XLayerOfficial.
So I built the opposite of a résumé generator. Assay will not write a sentence about you that it cannot trace back to actual evidence. If you want to claim something and there is nothing supporting it, it asks you about it rather than writing it for you. That sounds like a small design decision and it is the entire product.
The month was mostly unglamorous. Building a claim gate in code instead of asking a model nicely. Rendering a résumé and then re-parsing it to check the dates and titles survived machine reading, because every tool in this category says its output is ATS friendly and none of them check. Publishing a grading standard generated from the same code that does the grading, so it cannot quietly drift. Shipping the runs where the first draft failed instead of hiding them.
Near the end I registered a separate agent on a separate wallet and had it buy every service through the marketplace like a real customer. It found three failures my own tests never surfaced. That was an uncomfortable afternoon and the best thing I did all month.
It is live, the source is public, and results are announced soon. I have no idea how it will go. What I do know is that I am going to keep building this one either way, because the problem is real and nobody is solving it properly yet.
Demo below. 90 seconds.👇
https://t.co/17FaMxFCv3
@wallet@OKXDevs
@XLayerOfficial Anything that makes trust checkable instead of assumed.
We took the career piece of this with Assay...
Quoted below.👇
https://t.co/CWIhCOlYWU
An identity layer for work.
Agents on X Layer can already pay each other. What they cannot do is establish that anyone, human or agent, is actually who they claim to be or has done what they claim to have done. Reputation on this chain is currently a star rating and a sold count.
We built the career half of that with Assay. Every claim in a dossier traces to evidence, the artifact is graded against a published standard, and a salted commitment is anchored on X Layer so anyone can verify the document is unchanged without a single personal detail touching the chain.
The same primitive extends well past résumés. Agent capability claims. Delivery history. Credentials. Anywhere someone has to trust an assertion they cannot check themselves.
Proof is the missing layer. Everything else on top of it gets more valuable once it exists.
An identity layer for work.
Agents on X Layer can already pay each other. What they cannot do is establish that anyone, human or agent, is actually who they claim to be or has done what they claim to have done. Reputation on this chain is currently a star rating and a sold count.
We built the career half of that with Assay. Every claim in a dossier traces to evidence, the artifact is graded against a published standard, and a salted commitment is anchored on X Layer so anyone can verify the document is unchanged without a single personal detail touching the chain.
The same primitive extends well past résumés. Agent capability claims. Delivery history. Credentials. Anywhere someone has to trust an assertion they cannot check themselves.
Proof is the missing layer. Everything else on top of it gets more valuable once it exists.
Every resume you have ever read asked you to take its word for it.
This is what the other side of an Assay dossier looks like. Hover any line and the evidence behind it lights up. Check the seal yourself if you want to.
Proof before polish.
A small rule we put into Assay that turned out to matter more than expected: a refusal never costs money.
The situation is ordinary. An agent calls a paid service with a request that cannot produce what was advertised. Wrong shape, missing input, nothing to work with. Most APIs have already taken payment by this point, because the payment gate sits at the front and validation sits behind it. So the buyer pays, receives an error, and that is the transaction.
We moved validation in front of the gate. If a request cannot produce the advertised capability, Assay rejects it with a 400 before payment is ever considered, and the response says charged: false. It also names the missing input, lists the keys that satisfy it, and includes a working example so the caller can fix it on the next attempt rather than guessing.
The reasoning is simple enough. In an agent to agent economy, the buyer is software. Software cannot complain, cannot ask for a refund, and cannot decide you were unfair. It just pays. That asymmetry is exactly why the seller has to decide the question before the money moves, because nobody downstream is going to decide it for them.
The same instinct drove the free tier. Seal verification, job status and job result are never gated, and every service publishes its full input contract at a schema endpoint with price, arguments and an example. A buyer can learn precisely what to send before spending anything.
None of this is expensive to build. It is mostly a question of where you put the gate relative to the validator. But it decides what kind of business you are running here on @XLayerOfficial .
You can test both without spending anything. The curl commands are on https://t.co/4nm6tuCc5Q
Most resume tools describe their output as ATS friendly. Almost none of them check.
Here is what actually happens when you send a resume into an applicant tracking system. Before a person reads anything, software parses the file and tries to extract structured fields from it: your name, your contact details, each employer, each job title, each date range, your skills. Whatever it manages to extract becomes your record in their database. Whatever it fails to extract does not exist.
This is where good looking resumes quietly fail. Two column layouts get read in the wrong order, so a job title ends up attached to the wrong employer. Dates inside a text box get dropped entirely, leaving a gap that was never there. A header graphic swallows the contact block. Custom section names like "Where I Have Worked" do not match the headings the parser is looking for, so an entire employment history returns empty. None of these are content problems. The candidate did nothing wrong and never finds out.
So we built the check into Assay. It renders the ATS version of your resume, then re-parses that rendered PDF with its own deterministic extractor, and diffs the result field by field against the source ledger. Name, contact, every employer, every title, every date range, skills. You get the diff in writing, and if a field did not survive, the document does not pass our standard until it does.
That is a small feature and it took a couple of hours. It also changed what the product is allowed to say. There is a difference between claiming a document is machine readable and demonstrating that you read it back.
If you want to see it on a real run, the report is in the replay at https://t.co/zFyAmmOa7e
2. Resume & Career Workflows
Build agents that generate, optimize, and benchmark resumes for specific roles, industries, and hiring systems.
Think ATS-ready outputs, stronger positioning, and workflows that help users move from application to opportunity faster.
(3/7)
Writing quality used to be a hiring signal. Now it's free, everyone has it, and it separates nobody from anybody.
What's scarce now is proof.
Assay is a career ASP on @okx AI built entirely around that. Agent #8599, live today.
📹90-second demo👇
#OKXAI@XLayerOfficial
This is what a Career Dossier run actually looks like in Assay — 4 minutes, one continuous take, nothing sped up.
The 90-second version is coming. This is the long one, for anyone who wants to see the machinery instead of the highlights. #OKXAI
Submitted Assay to the https://t.co/Jar9uwSNJ9 Genesis Hackathon yesterday. Some notes from the build, mostly for anyone else who was in it.
The idea took about a day to settle on. Every AI career tool makes you sound better, and none of them can tell you whether what you said is actually true. Once AI writing became free, polish stopped being a signal. What is scarce now is proof. So we built the opposite of a resume generator: a system that refuses to write a sentence it cannot trace back to real evidence.
The part we underestimated was the honesty work. It is easy to generate a resume. It is much harder to build something that will look at your inputs, tell you there is no evidence for a claim you want to make, and then decline to make it. That required a claim gate in code, not a prompt asking the model nicely. Every sentence carries claim IDs, every claim resolves to evidence, and anything that does not resolve becomes a question to the user instead of prose.
The part we are most glad we built is the parse-back. Most tools call their output "ATS friendly" and leave it there. Assay renders the resume, re-parses it with its own extractor, and diffs it field by field against the source. You see in writing whether your dates, titles and contact details survived machine reading. That is a two hour feature that changes what the product is allowed to claim.
There is also a rule we put in that we have not seen elsewhere: a refusal never costs money. If a request cannot produce what was advertised, it is rejected before the payment gate, with charged: false. It felt obvious while writing it and slightly radical afterwards.
376 tests, a published grading standard generated from the grading code itself, real settlements on @XLayerOfficial , and a public repo. Whatever happens with results, the thing works and it is live.
🔗 https://t.co/HzbV3A6X6O
🔗 https://t.co/RRKvxY6Zz2
#OKXAI
Final call, builders.
Submit your Agentic Service Provider for the @OKX AI Genesis Hackathon before 23:59 UTC.
Winner announcements begin Aug 3.
Last chance to join: https://t.co/MJ1PJoXpE1
Finally it's sealed on X Layer. EIP-712 signed, no personal data on chain. Recruiters open a share link and see the evidence behind each line, with a verify button.
Agents pay per call in USDT via x402 — from 0.05, verify free.
https://t.co/czgO4HMPYG
https://t.co/uaOsWTOpIk
Finally it's sealed on X Layer. EIP-712 signed, no personal data on chain. Recruiters open a share link and see the evidence behind each line, with a verify button.
Agents pay per call in USDT via x402 — from 0.05, verify free.
https://t.co/czgO4HMPYG
https://t.co/uaOsWTOpIk
Then it forges the dossier — ATS + designed resume, .docx, cover letter, interview stories, portfolio page and grades every piece against a published standard, shipping the report either way.
The ATS version is re-parsed by machine and diffed, so you know it survived the filter