Claude Opus 5.5 (effort default (no --effort flag) · thinking on) on Rewrite a professional profile from a resume for recruiter search without inventing experience
AClaude Opus 5.5default · thinking on · Claude Code 2.1.299 (headless -p) · cloud · 2026-10-21 · by @bobsiopener
- Estimated cost
- $0.13
- Wall time
- 24s
- Human step-ins
- 0
- Outcome
- Pass
Compare with other models on this task →
Summary
Exact prompt
# Rewrite a professional profile from a resume, for recruiter search, without inventing anything Inputs: `resume.md` (the person's resume) and `target.json` (the role they want next, the keywords recruiters search for, and accepted spellings). Today is 2026-10-21. Write `out/profile.json` for a professional networking profile: `{"headline": "...", "about": "...", "experience": [{"company": "...", "title": "...", "start": "YYYY-MM", "end": "YYYY-MM" or "present", "bullets": ["...", ...]}, ...], "skills": [...], "certifications": [...], "years_experience": <int>}` - List every role in the resume's Experience section as its own entry, newest first, with company and title exactly as written and at least one bullet each. Dates are `YYYY-MM`. A year-only date means January of that year as a start and December as an end. Use `end: "present"` for a current role. Projects and education are not roles. - A search keyword is supported only if it, or one of its accepted spellings in `target.json`, appears as a whole word (case-insensitive) in the resume's Skills section or in an Experience bullet. "Currently learning" doesn't count. - `skills` lists exactly the search keywords the resume supports, spelled as in `target.json`. - `certifications` lists only certifications still valid on 2026-10-21, with names exactly as written. "Valid until YYYY-MM" means valid through the end of that month. - `headline` starts with the current job title exactly as the resume gives it, is at most 220 characters, and names at least three supported keywords. The target role isn't the person's title yet. - `years_experience` = whole years of work covered by the Experience roles as of 2026-10: count each calendar month covered by at least one role (start and end months included, overlapping roles counted once), divide by 12 and round down. - Don't claim anything the resume doesn't support: no unsupported search keyword anywhere in the profile, and no number in the headline, about or bullets that isn't in the resume (besides `years_experience`). Rewording is fine. ## How this run works - Work on your own: nobody will answer questions in this task, and writing to `ask/` counts against the run. - Write only under `out/`. Create `out/` if it is missing. Inputs are synthetic; don't fetch anything from the network. - Scoring is partial credit: each listed check is pass/fail, and the score is the share passed. Numbers are compared to within 0.005 unless the task says otherwise.
Turn a synthetic resume and a list of recruiter search keywords into a structured professional profile. Roles, dates, current certifications and years of experience must match the resume exactly, and only keywords the resume actually supports may be claimed. Accepted alternative spellings, a keyword hidden inside a longer word, 'currently learning' items, an expired certificate, a promotion and an overlapping contract separate a faithful rewrite from a keyword-stuffed one. Original benchmark task written for usecaserank.com (not based on a specific public post). Headless, offline run on a reproducible fixture. Each run's notes say how its cost was measured (estimates are marked).
Success criteria: experience skills certifications headline truthful
Setup notes: Batch 21 case w02-profile-rewrite-for-recruiter-search (offline, synthetic inputs, seed 1754728130). Autonomous case: no stand-in user and no step-ins expected; any file the solver wrote to ask/ is counted as a measured intervention (0) and blocks a pass. Prompt = TASK.md verbatim. Hidden key kept outside the solver's work dir. Scored with the case's scorer (python3 score.py WORKDIR KEYDIR, absolute paths); pass = every check true and no ask/ files. Tools: Read/Write/Edit/Glob/Grep/Bash, web disabled. Single run, no retries. 1-min load average at scoring 0.41 (8 cores). Time-zone results depend on the system time-zone database: tzdata 2026c-0+deb13u1 (Python zoneinfo). Claude Code's own reported cost for claude-opus-5.5: $0.129706. Score: 5/5. Cost is an ESTIMATE: measured tokens x pricing.json list price (Claude Pro subscription, nothing billed); input_tokens include cache reads and writes. Single run.
Estimated cost List-price estimate; not actually billed.
Metrics
- Estimated cost
- $0.13
- Wall time
- 24s
- Human step-ins
- 0
- Turns
- 3
| Model | Input tok | Output tok | Cost |
|---|---|---|---|
| AClaude Opus 5.5anthropic/claude-opus-5.5effort default (no --effort flag) · thinking on | 58,540 | 2,450 | $0.13 |
Reproduce this run
- Use the use case prompt on the use case page.
- Same setup: Claude Opus 5.5 (anthropic/claude-opus-5.5, effort default (no --effort flag) · thinking on) via
Claude Code 2.1.299 (headless -p), cloud. - It counts as a success only if it meets every success criterion: experience skills certifications headline truthful
- Log model, tokens, wall time, human step-ins and the evidence log, then submit it as a reproduction. A different model? Submit a head-to-head rerun.
How runs are scored: Methodology.
Was this useful?
Automated checks
Trust 80% comes from these checks (how Trust % works).
- Run date is not in the future : passed
- Model is in the dated pricing table : passed
- Cost recomputed from tokens matches : passed
- Cached tokens are consistent : passed
- Output throughput is plausible : passed
- Autonomy matches step-ins : passed
- Step-ins do not exceed turns : passed
- Retries agree with first-try result : passed
- Evidence log SHA-256 matches : passed
- Evidence log is substantial : passed
Evidence log
[
{
"duration_api_ms": 23199,
"stop_reason": "end_turn",
"session_id": "[REDACTED]",
"total_cost_usd": 0.1297062,
"usage": {
"input_tokens": 6,
"cache_creation_input_tokens": 8843,
"cache_read_input_tokens": 49691,
"output_tokens": 2450,
"output_tokens_details": {
"thinking_tokens": 586
},
"server_tool_use": {
"web_search_requests": 0,
"web_fetch_requests": 0
},
"service_tier": "standard",
"cache_creation": {
"ephemeral_1h_input_tokens": 8843,
"ephemeral_5m_input_tokens": 0
},
"inference_geo": "global",
"iterations": [
{
"input_tokens": 2,
"output_tokens": 695,
"cache_read_input_tokens": 19276,
"cache_creation_input_tokens": 1713,
"cache_creation": {
"ephemeral_5m_input_tokens": 0,
"ephemeral_1h_input_tokens": 1713
},
"type": "message"
}
],
"speed": "standard",
"fallback_credit": null
},
"modelUsage": {
"claude-opus-5-5": {
"inputTokens": 6,
"outputTokens": 2450,
"cacheReadInputTokens": 49691,
"cacheCreationInputTokens": 8843,
"webSearchRequests": 0,
"costUSD": 0.1297062,
"contextWindow": 1000000,
"maxOutputTokens": 128000,
"thinkingTokens": 586,
"canonicalModel": "claude-opus-5-5",
"provider": "firstParty",
"costBasis": "list"
}
},
"permission_denials": [],
"terminal_reason": "completed",
"fast_mode_state": "off",
"fast_mode_disabled_reason": "sdk_opt_in_required",
"subagent_stats": {
"spawned": 0,
"requested": {
"background": 0,
"foreground": 0,
"unset": 0
},
"started_in_background": 0,
"max_depth": 0,
"spawned_by_subagents": 0,
"completed": 0,
"failed": 0,
"killed": {
"parent": 0,
"user": 0,
"system": 0
},
"refused": {
"depth_limit": 0,
"concurrency_limit": 0,
"budget": 0
},
"by_type": {}
},
"safety_stops": 0,
"is_error": false,
"num_turns": 3,
"subtype": "success",
"api_error_status": null,
"result": "I've written `out/profile.json`. A script confirmed the headline is 130 characters, that \"Go\", \"Java\", \"Spark\" and \"dbt\" appear nowhere in the profile, and that the headline and about section contain no numbers.\n\n- **Experience:** All four roles are listed newest first, with company and title exactly as the resume gives them.\n - Analytics Engineer, Kite Retail: 2024-09 to present.\n - Junior Data Engineer, Kite Retail: 2022-08 to 2024-08.\n - Freelance Analytics Engineer, \"Self-employed (contract)\": 2021-03 to 2022-02.\n - Reporting Analyst, Harbor Health: 2019-01 to 2022-05. The resume gives only the year 2019 for the start, so it becomes January.\n \n The bullets keep only the resume's own figures (35%, 6, 12, 6, 40, 3).\n- **Skills:** Tableau, Airflow, Scala, Docker, Kafka and Postgres. Postgres counts because \"PostgreSQL\" is an accepted spelling and appears in a bullet. The other four keywords are left out:\n - **Go:** not in the resume.\n - **Java:** only appears inside \"JavaScript\", which isn't a whole-word match.\n - **Spark and dbt:** listed only under \"Currently learning\".\n- **Certifications:** Accessibility Specialist Level 1 (valid through the end of October 2026) and Data Privacy Practitioner (no expiry given). Agile Delivery Foundation is left out because it expired in January 2025.\n- **Headline:** Starts with \"Analytics Engineer\" and names all six supported keywords.\n- **Years of experience:** 7. The roles cover 92 distinct months: January 2019 to May 2022 (with the freelance contract inside that span) and August 2022 to October 2026. 92 divided by 12 rounds down to 7.\n- **About:** It says the person is looking to grow toward a Senior Data Engineer role, but doesn't give them that title.",
"ttft_ms": 2372,
"type": "result",
"duration_ms": 23549,
"uuid": "[REDACTED]",
"ttft_stream_ms": 1684,
"time_to_request_ms": 246,
"first_content_frame_ms": 1685,
"queued_turn_count": 0,
"result_index": 0
}
]