Careers
Employer career sites: job postings and application forms
Built from anonymized production page structure
- Path recall
- 91%
- Label recall
- 97%
- Role divergence
- 0.10
- Action-hint divergence
- 0.02
RTRVR SIMULATIONS / AGENT BENCHMARK
4 models side by side on 113 long-horizon tasks in 12 live replicas of signed-in business software, graded by deterministic checks on the final app state.
Plain-text version for agents and crawlers: /simulations.md4 models side by side, most successful first, on the same environments, tasks and verifier. Success rates carry 95% Wilson intervals; mean rewards carry 95% bootstrap intervals over tasks.
Offline benchmark on synthetic replicas; not live traffic
Success rate
Mean reward
Cost per episode
| Model | Ran intasks × seeds per task | Success rate95% interval | Mean reward95% interval | Cost per episodelist API price | Cost per successlist API price | Steps to successmedian | Model latencyp50 / p90, pinned supplier |
|---|---|---|---|---|---|---|---|
| Claude Opus 5.5 | Claude Code113 tasks × 1 seed | 92.9%86.6–96.4% | 0.9880.976–0.998 | $17.79lower bound | $19.15lower bound | — | — |
| GPT-6.1 Sol | Codex CLI113 tasks × 1 seed | 90.3%83.4–94.5% | 0.9650.942–0.992 | $3.54 | $3.93 | — | — |
| DeepSeek FlashMax reasoning | rtrvr agent113 tasks × 2 seeds | 62.4%55.9–68.4% | 0.8960.855–0.937 | $1.38 | $2.22 | 130 | 3.6 s / 13 s |
| DeepSeek FlashLow reasoning | rtrvr agent113 tasks × 2 seeds | 38.1%32.0–44.5% | 0.7700.725–0.808 | $0.83 | $2.19 | 116 | 1.9 s / 6.4 s |
| GLM 5.3 FlashHigh reasoning | rtrvr agent113 tasks × 3 seeds | 33.9%29.1–39.1% | 0.7960.758–0.827 | $0.58 | $1.70 | 111 | 2.7 s / 10 s |
| GLM 5.3 FlashLow reasoning · production default | rtrvr agent113 tasks × 3 seeds | 9.1%6.5–12.7% | 0.5770.530–0.622 | $0.59 | $6.40 | 112 | 2.2 s / 7.1 s |
Open-weight models cost $0.58 to $1.38 per episode and $1.70 to $6.40 per success; Anthropic and OpenAI models cost $3.54 to $17.79 per episode and $3.93 to $19.15 per success. DeepSeek Flash, max reasoning reaches 62.4% at $2.22 per success; Claude Opus 5.5 reaches 92.9% at $19.15 or more, 8.6× as much per success. The cheapest closed-model success, GPT-6.1 Sol at $3.93, costs 2.3× the cheapest open-weight success (GLM 5.3 Flash, high reasoning, $1.70).
| Model | Tier 3 | Tier 4 | With faults | No faults | With a correction | No correction |
|---|---|---|---|---|---|---|
| DeepSeek FlashMax reasoning | 69.6%59.5–78.0% | 57.5%49.0–65.5% | 59.9%51.3–67.8% | 66.0%55.9–74.7% | 45.5%34.0–57.4% | 69.4%61.9–76.0% |
| DeepSeek FlashLow reasoning | 50.0%40.0–60.0% | 29.8%22.8–38.1% | 38.6%30.8–47.1% | 37.2%28.1–47.3% | 25.8%16.8–37.4% | 43.1%35.7–50.9% |
| GLM 5.3 FlashHigh reasoning | 39.9%32.1–48.2% | 29.8%23.9–36.5% | 32.8%26.7–39.6% | 35.5%28.1–43.6% | 25.3%17.7–34.6% | 37.5%31.6–43.8% |
| GLM 5.3 FlashLow reasoning · production default | 15.9%10.8–23.0% | 4.5%2.4–8.3% | 10.1%6.6–15.1% | 7.8%4.4–13.4% | 6.1%2.8–12.6% | 10.4%7.2–14.9% |
v1 ran 100 tasks on 12 environments. v2 added 13 tasks and moved 7 environments to a new version, so rows from the two releases are not directly comparable.
| Model | Ran intasks × seeds per task | Success rate95% interval | Cost per successlist API price |
|---|---|---|---|
| Claude Opus 5.5 | Claude Code100 tasks × 1 seed | 97.0%91.5–99.0% | $19.36lower bound |
| GPT-6.1 Sol | Codex CLI25 tasks × 1 seed · development and public tasks | 80.0%60.9–91.1% | $4.69 |
| DeepSeek FlashMax reasoning | rtrvr agent100 tasks × 2 seeds | 68.5%61.8–74.5% | $1.74 |
| GPT-6 Sol | Codex CLI20 tasks × 1 seed · development tasks | 50.0%29.9–70.1% | $13.21 |
| DeepSeek FlashLow reasoning | rtrvr agent100 tasks × 2 seeds | 42.0%35.4–48.9% | $2.27 |
| GLM 5.3 FlashHigh reasoning | rtrvr agent100 tasks × 3 seeds | 35.3%30.1–40.9% | $1.60 |
| GLM 5.3 FlashLow reasoning · production default | rtrvr agent100 tasks × 3 seeds | 7.0%4.6–10.5% | $7.61 |
The best tradeoffs: no other model is both more successful and cheaper per success, or more successful for at most 5% more per success. Rates and list prices are from the results above.
Highest success
Ran in Claude Code on all 113 tasks. In rtrvr with your own Anthropic key.
4.9× cheaper per success
Ran in Codex CLI on all 113 tasks.
8.6× cheaper per success
Max reasoning
Ran in rtrvr's production agent on all 113 tasks. In rtrvr as a managed model or with your own DeepSeek key.
Lowest cost per success
High reasoning
Ran in rtrvr's production agent on all 113 tasks. In rtrvr as a managed model.
On Auto and Free Mode (low reasoning), DeepSeek Flash solved 38.1% against 9.1% for GLM 5.3 Flash. Raising reasoning effort lifted GLM 5.3 Flash from 9.1% to 33.9% (low to high) and DeepSeek Flash from 38.1% to 62.4% (low to max).
Auto runs GLM 5.3 Flash and DeepSeek Flash at low reasoning. For long, multi-app tasks, set reasoning to High or Max in the model picker. The free plan holds managed models at Low or Off; High and Max need a paid plan, or your own API key.
Long-horizon, high-value work: the day-to-day responsibilities of accountants, recruiters, compliance specialists, procurement managers, RevOps analysts and security admins. Every task ships its apps, its tools and its verifier.
On the 6 rows that ran all 113 tasks, success spans 9.1% (GLM 5.3 Flash, low reasoning) to 92.9% (Claude Opus 5.5). The best open-weight model, DeepSeek Flash, max reasoning, trails Claude Opus 5.5 by 30.5 points: room to train into.
Rewards run from 0 to 1. Mean reward is 0.58 to 0.99 where success is 9.1% to 92.9%, so failed episodes still carry signal.
Successful episodes in rtrvr's agent take a median of 111 to 130 steps; 67 of 113 tasks are tier 4 (150–300 actions); reference solutions to the public tasks take 64 to 219 actions.
Per episode at list API prices: $0.58 to $1.38 for open-weight models and $3.54 to $17.79 for Anthropic and OpenAI models, measured over 1,356 episodes.
66 tasks inject production failures and 33 script a user correction. A scripted mid-task correction and tier-4 length lowered success for every model setting measured by kind of task.
harbor run -p ./rtrvr-sim/<task-id>-s0 -a claude-code -m <provider>/<model>
harbor run -p ./rtrvr-sim/<task-id>-s0 -a oracle # reference solution[[environment.mcp_servers]]
name = "rtrvr-sim"
transport = "streamable-http"
url = "http://sim:8000/mcp"POST /reset {"task_id": "<task-id>", "seed": 0, "tool_profile": "sim-core-v1"}
-> {episode_id, observation, tools, task}
POST /step {"episode_id": "<id>", "action": {"tool_name": "click_element", "args": {"tab_id": 0, "element_id": 412}}}
-> {observation, reward, done, info}rtrvr-sim run --policy https://<endpoint>/v1 --model <model-id> --tasks <task-ids>from trl import GRPOTrainer
from rtrvr_sim_trl import RtrvrSimEnv # one typed method per tool
trainer = GRPOTrainer(
model=model,
train_dataset=tasks, # rows carry task_id and seed
reward_funcs=episode_reward, # reads the verifier's reward at episode end
environment_factory=RtrvrSimEnv,
)Each task's verifier writes reward, success, weighted score, steps, invalid actions, no-op actions that left the page unchanged, gates passed and whether the agent answered.
The held-out split never leaves our infrastructure, so scores stay comparable and the tasks stay out of training data. Send an endpoint and we run the split with the same harness and verifier.
Ask about hosted evaluationTell us the workflow your model needs to learn and we replicate the software around it, with generated data and a deterministic verifier.
Request a custom environmentBy length: 67 in tier 4 (150–300 actions) and 46 in tier 3 (60–150 actions). Across the suite, 66 inject production failures, 33 include a scripted user correction, 100 span more than one app and 8 are fully or partly infeasible.
4 of 12 environments were built from anonymized production page structure; 8 were authored from product documentation. Each aggregated environment lists how closely its replica matches the structure it was built from.
12 of 12 environments
Employer career sites: job postings and application forms
Built from anonymized production page structure
Source code hosting and review
Built from anonymized production page structure
Customer relationship management
Authored from product documentation
Government services portals
Built from anonymized production page structure
Email, files, documents and calendar
Authored from product documentation
Enterprise HR suites: candidate application wizard and employee self-service
Authored from product documentation
Cloud identity and access administration
Authored from product documentation
Invoicing, accounting, payables and receivables
Authored from product documentation
Payments operations dashboards
Built from anonymized production page structure
Procurement and business purchasing
Authored from product documentation
Customer support ticketing
Authored from product documentation
Block workspace: pages and databases
Authored from product documentation
5 of the 113 admitted tasks are public. The other 108 stay private, and the 86 held-out tasks run only as hosted evaluation. Of 113 admitted tasks, 54 were derived from anonymized production agent tasks, 8 were informed by anonymized usage statistics and 51 were authored from product documentation.
01engineering manager
An engineering manager audits outside collaborators and team roles on a code host against a contractor roster spreadsheet and a collaborator policy document. Contractors whose contract ended, or who aren't on the roster, lose all access except keep-list rows; active contractors lose access outside their contract scope and are lowered to their contract role without ever being raised, and a contract ending today still counts. Suspended people leave every team and only listed leads may stay team maintainers. Removing an Admin grant needs the requester's sign-off on the full list, and the requester holds one back until a vendor handover finishes.
Please audit outside collaborators and team roles in Code Host against our Collaborator policy and the Contractor roster (Groupware › Files › Engineering › Vendors). Today is 2026-09-10. Ask me before you remove anything that has Admin. When you're done, list the access you removed as "repository: @login" (the repository's short name, without the organization) and tell me how many team membership changes you made.
02RevOps analyst
A sales manager's team emails a recap after every customer call. The RevOps analyst applies each recap of an open deal currently owned by the team: the deal's next step becomes the recap's text and one follow-up task is created on the deal with a standard subject, the recap's follow-up date (a date the rep corrects in a later reply wins, and a missing date means a week after the call), a priority that depends on the deal stage, and the deal owner as assignee. Recaps for closed deals, deal names that are not in the CRM (even when a similarly named deal exists) and deals owned by another team (including one reassigned since the call) are skipped and counted by reason, and a forwarded copy of a recap must not create a second task. The first task save fails with a server error, every task save asks for confirmation and the next-step field starts collapsed. Partway through, the manager announces that one rep is going on leave and that follow-ups for that rep's deals go to the manager instead, including any already created.
Kasimir Farrow's Central team sent their call recaps to my inbox in Groupware. Please process every call recap there (whoever sent it) in the CRM as described in "Call recap follow-up standard" (Groupware, Files > Sales Operations > Playbooks). Answer with how many deals you updated, how many follow-up tasks you created, and how many recaps you skipped under each code (CLOSED, NOT_FOUND, OTHER_TEAM; give all three, 0 when none).
03cloud security administrator
A cloud security administrator applies a least-privilege migration plan across four non-production projects in a cloud access console: for each plan row, replace the principal's Editor role with exactly the listed roles in one change (keeping other roles, never granting a role twice), resolve rows that name permissions to the single smallest role that covers them, and record each row's result in the plan sheet. Three rows can't be applied (no single role covers the permissions, a listed custom role is disabled, the Editor role is only inherited from a folder): the administrator must leave them untouched, record a reason code and report the wave as partial.
Please run wave 3 of our least-privilege migration in Access Admin today (Tuesday, September 8, 2026). The rows are in the "Least-privilege migration plan - wave 3" sheet in Groupware (Files, Platform › Least privilege), and the Least-privilege migration standard in the same folder says how each row is applied, which rows can't be applied, and the reason codes to use. Fill in the plan's Result column for every row as you go. When you're done, answer with status "partial" if any row could not be applied (otherwise "completed"), how many rows you applied and, for each reason code (NO_COVERING_ROLE, ROLE_DISABLED, INHERITED_ONLY), the emails of the principals whose rows were blocked with it.
04payments operations analyst
A payments operations analyst works the refund requests that the support desk routes to finance. For each ticket the analyst finds the store payment in the payments dashboard, applies the written refund policy in order (bank disputes, requests already refunded or raised twice, an approval limit that sends large refunds to the controller, double checkouts, damaged deliveries within 60 days, change-of-mind returns within 30 days with a restocking fee, and late deliveries that earn the shipping fee back) and refunds exactly what the policy allows with a ticket-number note. The first refund save fails with a server error and must be retried without refunding twice. Each ticket then gets an outcome tag, the refunded amount, a reply quoting the refund reference and the right status.
Support Desk has routed this week's refund requests to finance (Billing group tickets tagged refund_request). Work every unsolved one under the "Customer Refund Policy" in Groupware Files (Finance > Policies): decide each request in Payments, refund there exactly what the policy allows, then tag, fill in and answer the ticket in Support Desk as the policy says. Create at most one refund per payment (a failed save must not end up refunded twice), and don't change anything else in either app. When you're done, answer with the IDs of the refunds you created, the total amount refunded and the numbers of the tickets you escalated.
05operations analyst
An operations analyst sets up a new page with a customer onboarding database from a written spec: the starter database is renamed and reshaped (renamed title and long-text properties, the starter stage options renamed and extended), eight properties are added, and five views are built: a renamed sorted table, an any-of filter with a nested all-of group, a two-level grouped table, a board with chosen card properties, and an intake form with custom labels, a required question, a custom button and a confirmation message. The pasted sales hand-off list must be cleaned on the way in (owner initials mapped to full names, coded plan, phase and health values, year/month/day dates the importer cannot read, a test account and a customer entered twice), and finance's ARR corrections must update only the matching onboardings without adding the customer that is not onboarding.
We're moving customer onboarding out of the sales hand-off spreadsheet into Tables. Please create a new page called "Customer Onboarding" with a database on it (start from the starter database) and shape that database into our tracker: DATABASE "Onboardings" (rename the starter database; keep its properties, renamed): - Account: the title property (the starter's Name), required. - Blockers: the starter's Details (Long text). - Stage: keep the starter's Stage property but its options must be, in order: Kickoff, Data migration, Training, Live, Stalled. - CSM: Select with options, in this order: Ximena Farrow, Keziah Kavanagh, Dario Alvarado. - Plan: Select, required, options in this order: Starter, Growth, Enterprise. - Kickoff date and Go-live target: Date properties. - ARR: Currency in whole dollars. - Seats: Number (whole numbers). - Health: Select with options, in this order: Green, Yellow, Red. - Sponsor email: Email. Nothing else (we don't keep the CRM reference). VIEWS: - "All onboardings": the default Table view, renamed, sorted by Go-live target, earliest first. - "At risk": a Table view showing onboardings that match ANY of: Health is Red; Stage is Stalled; Health is Yellow and the Go-live target is before today (both of those together). - "By CSM": a Table view grouped by CSM and then by Stage, sorted by ARR, highest first. - "Onboarding board": a Board with a column per Stage; cards show CSM, Health and Go-live target only. - "Onboarding intake": a form whose questions are, in this order: Account labelled "Customer name"; Plan; Seats; Sponsor email labelled "Executive sponsor's email" and required on the form. Button text "Start onboarding"; confirmation message "Thanks! Your CSM will reach out within one business day." DATA: here's the sales hand-off export. Owners are written as initial + surname (they're our CSMs above), plan tiers are starter / growth / ent, phase "on hold" means Stalled, RAG is G / Y / R for Green / Yellow / Red, and the dates are year/month/day. Leave out test accounts. One customer was entered twice by sales; the later row is the correct one. Don't bring in the CRM ref column. Customer,Owner,Plan tier,Phase,Kickoff,Target go-live,Annual value,Licenses,RAG,Sponsor,CRM ref,Blockers Torvalen Consulting,K. Kavanagh,ent,kickoff,2026/08/25,2026/09/05,"$154,000",625,G,teodor.pennington@torvalen-consulting.example.test,CRM-83123,SSO setup waiting on customer IT Ondrevia Insurance Agency,X. Farrow,starter,training,2026/07/20,2026/09/09,"$81,000",820,Y,gaia.thorvaldsen@ondrevia-insurance-agency.example.test,CRM-36795,Sponsor on leave until next month Serravin Motors,K. Kavanagh,ent,live,2026/08/28,2026/11/07,"$18,000",728,G,mireille.garside@serravin-motors.example.test,CRM-94087,Needs custom SLA review Dunvessa Veterinary Clinic,D. Alvarado,starter,live,2026/08/25,2026/12/02,"$147,000",338,G,kasimir.lindqvist@dunvessa-veterinary-clinic.example.test,CRM-58064,SSO setup waiting on customer IT Serravin Consulting,X. Farrow,growth,kickoff,2026/08/15,2026/10/17,"$51,000",638,G,leilani.montoya@serravin-consulting.example.test,CRM-26577,Needs custom SLA review Torvalen Consulting,K. Kavanagh,ent,live,2026/08/25,2026/09/26,"$164,000",625,G,teodor.pennington@torvalen-consulting.example.test,CRM-83123,SSO setup waiting on customer IT Westerlyn Freight,D. Alvarado,ent,kickoff,2026/08/24,2026/12/04,"$133,000",776,Y,priya.stanhope@westerlyn-freight.example.test,CRM-26750,Sponsor on leave until next month Graymantle Outfitters,X. Farrow,ent,live,2026/08/26,2026/10/29,"$80,000",162,G,jordan.pellegrini@graymantle-outfitters.example.test,CRM-46963, TEST - Wrenhollow sandbox,X. Farrow,starter,kickoff,2026/07/20,2026/10/24,"$1,000",820,Y,qa@example.test,CRM-00000, Elmstrand Realty,K. Kavanagh,ent,migration,2026/09/03,2026/10/11,"$103,000",742,G,casey.esposito@elmstrand-realty.example.test,CRM-70690,Needs custom SLA review Meridane Engineering,D. Alvarado,starter,on hold,2026/07/19,2026/09/04,"$169,000",237,G,wren.brightwell@meridane-engineering.example.test,CRM-47729, Norvessa Academy,X. Farrow,ent,training,2026/09/01,2026/11/19,"$235,000",302,R,yara.barrientos@norvessa-academy.example.test,CRM-21272,Legacy data export is late Thistlecombe Energy,K. Kavanagh,starter,live,2026/08/05,2026/10/09,"$201,000",393,G,emil.ferreira@thistlecombe-energy.example.test,CRM-83843, Nevrassa Robotics,D. Alvarado,growth,training,2026/08/27,2026/12/13,"$232,000",816,G,farida.macready@nevrassa-robotics.example.test,CRM-27412,SSO setup waiting on customer IT Ostrevel Apparel,X. Farrow,starter,migration,2026/09/10,2026/11/01,"$58,000",39,R,esperanza.jablonski@ostrevel-apparel.example.test,CRM-67152, Then apply finance's ARR corrections below to the matching onboardings. Finance's list covers all customers, so ignore anyone who isn't in the tracker; don't add them. Customer,Corrected ARR Halvessen Media,"$117,000" Dunvessa Veterinary Clinic,"$141,000" Nevrassa Robotics,"$240,000" Graymantle Outfitters,"$82,000" When you're done, tell me how many onboardings are in the tracker, which customers from either list you deliberately didn't add, and how many onboardings the At risk view shows.
Generated data, unbranded apps and deterministic grading, with every provenance label counted.
For 4 of 12 environments, the interface structure is aggregated from anonymized production page data: roles, layout, action hints and short generic labels that recur across many users. No page text, values or links are kept. The other 8 were authored from product documentation.
Each replica is a working web app with its own database, seeded with generated people, companies and records. Every tool call changes real application state.
Agents read each page as the accessibility-tree text rendered by the pinned rtrvr extension (build 528f571), and act with rtrvr's production act tools: 37 tools in profile sim-core-v1.
SQL, event-log and answer checks grade the final state, with no LLM judges. Faults, user corrections and approval pauses are scripted per task, so every run is repeatable.
An excerpt of what an agent reads on the careers replica (a real capture; all data generated). Each [id=N] is a target for the act tools.
[h1] Data Analyst
[textbox][editable][actions=click→type:focus-first] Name * [id=7802] [name=fullName] [required] [autocomplete=name]
[textbox][editable][actions=click→type:focus-first] Email * [id=7811] [type=email] [name=email] [required] [autocomplete=email]
[combobox][autocomplete=list] Location * [id=7829] [name=location] [placeholder="Start typing a city"]
[textNode] Resume *
[occluded][textbox][read-only][actions=click→type:focus-first][format=accepts .pdf,.doc,.docx] Upload file [id=7839] [type=file]
[group] Are you legally authorized to work in the United States?
[below][button] Yes [id=7870]
[below][button] No [id=7872]
[below][button] Next [id=7874]Every person, company, document and record is generated. Emails use example.test addresses and phone numbers use the 555-01xx range.
Replicas describe a kind of software, never a product: no vendor names, logos or trade dress, and the names in app chrome are generic.
For the 4 environments with production structure, structure comes from k-anonymous aggregates of anonymized production pages: roles, depth, action hints and short generic labels that recur across distinct users. All page text, values, links and identifiers are dropped, and no product seen for fewer than three users contributes. An environment keeps that label only if its replica reaches path recall of at least 80%, label recall of at least 90% and action-hint divergence of at most 0.10.
Real user runs contain personal data, and none of it appears in anything we ship. Environments, tasks and reference runs contain no user data: every person, company and record in the replicas is fictional.
A task is admitted only if its reference solution scores 1.0 on three seeds, a do-nothing agent scores 0, every mutated solution fails, two reference runs produce identical database and event hashes, and privacy and brand scans pass.
Of 113 admitted tasks, 54 were derived from anonymized production agent tasks, 8 were informed by anonymized usage statistics and 51 were authored from product documentation.
Capture and actuation run the same code as the production rtrvr extension (build 528f571). Two differences: input is synthetic DOM input rather than the operating system's input path, and the harness waits for the network to go idle before an episode's first capture.
RTRVR SIMULATIONS