skip to content
terminalhire documentation

Proof of Work — your record of verified merges

Your code is your résumé. Proof of Work is a credential computed from real, merged contributions — never a self-reported skill list, and never something you fill out.

Where it lives

Every developer who publishes their profile gets a page at terminalhire.com/r/<your-github-login> — a public, verifiable, printable résumé built entirely from third-party-attested work.

Checking your own

terminalhire.com/proof counts the same thing for your own account before you publish anything. Sign in with GitHub — the scope we ask for is read:user, and we never request access to private repositories — and it reads your public merge history and lists every pull request behind the count, each one linking back to the source.

Signing in is what makes this your own record rather than a stranger's: without it the server cannot tell whose account it was asked about. Looking publishes nothing; that is the separate step below.

What's on it

  • Profile. Your GitHub name, photo, and a specialty derived from accepted contributions.
  • Acceptance summary. Contributions accepted across independent teams, with the latest acceptance date and the date the record was checked.
  • Selected contributions. Recent work across up to three projects, with actual pull request titles and source links. Expand “More accepted work” for the remaining record. These links appear only when your contribution visibility settings allow them.
  • Supporting record. Languages and topics, accepted paid work, and personal projects. The counting criteria are available under “How contributions are counted.”
  • Contribution details. “Read contribution” opens a public dossier when available. It leads with acceptance and recorded human review. “Explore the evidence” reveals review states, automation, AI summaries, and the commit timeline. Acceptance is not a claim that a human review occurred.
  • PDF. Use “Download PDF” at the top of either page. The print view includes expanded evidence and contribution lists.

Why third-party-attested, not self-reported

Anyone can list a skill. Far harder to fake is a pull request accepted into a project you don't control — merged in the open, into an external codebase, and auditable back to the source. No single merge proves everything on its own, which is why the credential leans on the pattern: substantive PRs accepted across distinct organizations you don't own, cleared against an eligibility bar rather than taken on trust. That's also why it never inflates silently: work it can't verify shows "could not verify," never a fabricated zero.

Synthesized narratives

Per-repository dossiers may include a short AI-synthesized narrative — a thesis sentence, a review-decision summary, graded competencies, and a one-line résumé bullet. It is derived exclusively from the deterministic evidence already on the page (identity-free structured facts: counts, enums, timestamps, pseudonymous review classes). No new facts are introduced, no free-text comments are read, and no person is named. Every synthesized element is grounded in a specific piece of that evidence and adversarially re-checked against it; anything not fully supported is dropped rather than shown. Synthesized content is labelled as such on the page, so it is never mistaken for a raw, third-party-attested signal.

Publishing

Your /r/<login> page renders only once you've explicitly published your profile — until then, the URL 404s, identically to a login that doesn't exist at all. Nothing about who has an account is discoverable from the page itself.

Your trajectory, from your own sessions

A second record, derived from the Claude Code transcripts already on your disk under ~/.claude/projects — how you work, rather than what other teams merged.

terminalhire trajectory                  # derive it and print it
terminalhire trajectory --inward         # add the rework and recovery detail
terminalhire trajectory --export         # write it to ~/.terminalhire/
terminalhire trajectory --push           # link it to your dashboard
terminalhire trajectory --push --delete  # unlink it again

Deriving, printing and exporting reach no network. --export writes trajectory-export.json and trajectory-export.md into ~/.terminalhire/, or into TERMINALHIRE_DIR if you set one. The --inward figures are for your terminal only and are left out of both files.

--push is the one spelling that sends anything. It prints what it would send, then waits for you to type yes; anything else cancels, and a cancel makes no network call at all. After the typed yes, the exact bytes about to leave are scanned for the inward fields, and the send is abandoned if any turn up. What goes is the derived score — your transcripts stay where they are.

A terminal that has never signed in stops before any of that, and says to run terminalhire login first. Past that, whenever the CLI has no web session this host will accept, your browser opens and the link finishes there.

terminalhire trajectory --push --unlink removes it again — --push --delete is the same command under another name — and asks for the same typed yes first. With no web session on this machine at all, the removal cannot happen from the terminal: it opens your dashboard and tells you to remove the trajectory there.

Where it connects

Your Proof of Work credential is the foundation the rest of TerminalHire builds on: it's what recruiters see, what other developers match against in connect, and what claims feed into over time as your merged-PR history grows.