Skip to content
 
 

Repository files navigation

AI Work Assessment

An evidence-based matching profile of your actual AI work, generated by the agent you already use.

You hand prompt.md to a capable coding agent such as Claude Code or Codex. It reads your local session history, your authenticated GitHub activity, and your LinkedIn career history only when you opt in. It groups the evidence into real work arcs, explains how you use coding agents, combines career and observed work into industry and subject-matter context, and writes a structured profile to your machine. A fixed local renderer creates the final HTML report.

The useful question is what makes this person a fit for a specific project. The profile shows the work they repeatedly choose, what reached real use, how they direct and verify agent work, where their industry and subject-matter depth comes from, and what the retained evidence does not establish.

The report is a local file. It makes no network request, and nothing is uploaded anywhere.

Quick start

  1. Run the assessment. Open a capable coding agent on the machine whose work you want assessed and paste in prompt.md. The agent asks whether to include LinkedIn when that choice is not already configured. It then writes profile.json and renders the reviewed HTML locally.

  2. Review the HTML it produces. Read it before you show it to anyone. You are the only person who can confirm that private work was abstracted enough.

  3. Optionally validate or re-render it. The CLI in this repo checks a report against the schema rules and can re-render it into the canonical layout:

    npx ai-work-assessment validate ~/Desktop/project-fit-you.html
    npx ai-work-assessment render   ~/Desktop/project-fit-you.html --out profile.html

    validate checks evidence references, copy limits, privacy rules, deterministic statistics, work arcs, matching fields, and version compatibility. render emits the canonical layout from the structured payload. Neither command contacts the network.

Node 20 or newer. No dependencies.

Work across several computers or cloud environments

Overflow's hosted assessment page exposes an optional two-prompt workflow:

  1. Run the collection prompt once on every computer, VM, Codespace, or cloud environment whose local history should count.
  2. Review the generated ai-work-evidence-*.json files and move them into one folder.
  3. Run the final report prompt once. It invokes this CLI's deterministic consolidator, counts exact duplicate sessions once, and creates one profile.

The site never connects to another machine and the evidence bundles are never uploaded to Overflow. Delete the bundles and consolidated file after reviewing the finished report.

The supporting commands are:

npx github:Organized-AI/ai-work-assessment#v8.0.0-organized.1 environment-id
npx github:Organized-AI/ai-work-assessment#v8.0.0-organized.1 validate-bundle ./ai-work-evidence-xxxxxxxx.json
npx github:Organized-AI/ai-work-assessment#v8.0.0-organized.1 consolidate ./bundle-folder

The privacy model

This matters more than the output, so it is worth stating precisely.

  • It runs on your machine. Session extraction, analysis, and rendering are all local. The agent writes temporary digest files and deletes them when it finishes.
  • Read-only requests, only to sources you include. GitHub is read through your existing authenticated gh session; the assessment makes no mutations, clones no repositories, and never reads or persists your token. LinkedIn is opened only if you explicitly opt in, only in your own authenticated browser, and only your own profile.
  • Your prompts and transcripts never leave the machine. They are read to produce counts, patterns, and paraphrases. Raw prompt text is never quoted verbatim into the profile, and the metadata-only agent-operations ledger is forbidden from containing command text, arguments, file contents, URLs, or credentials.
  • You review before anything is shared. The report carries a "Private preview — nothing has been uploaded" notice until you personally decide otherwise.
  • Identifying details are abstracted during extraction, not at the end. Client names, colleague names, employers, private repository and organization names, contact details, and private project names are removed or generalized as the evidence is collected. Health, financial, legal, family, and similar private sessions are dropped from examples entirely.
  • Secret patterns are rejected outright. Before a profile is accepted, it is scanned for API keys, AWS access keys, GitHub tokens, Slack tokens, private keys, and JWTs. A match rejects the whole file rather than scrubbing it.
  • No scores about you as a person. The local report contains no overall score, percentile, rank, sentiment reading, or personality claim. Activity volume describes the retained history. It does not measure quality or seniority.

What the profile shows

The report is designed for matching. Its short view shows:

  • observed activity and a matched-window Claude and Codex mix when both sources overlap;
  • hire-relevant agent operating patterns such as delegation, parallel work, independent checks, and ownership into real use when the required numerators and denominators exist;
  • three to five industries and subject areas supported by career context, observed work, or both;
  • the strongest project fit, when to add a specialist, and what the evidence does not show.

The evidence view keeps the work arcs, source labels, limits, and structured matching data available without repeating the same claims in several sections. Generic facts such as using a filesystem, code editor, or GitHub are not presented as differentiators.

Versioning

This is Assessment v8, implemented by prompt version 8 and profile schema version 9. The open-source helper release is v8.0.0. The helper uses semantic versioning. The profile schema remains a separate data-contract version.

Every generated profile records prompt_version and schema_version, so a report can be traced to the contract that produced it. Complete prompt-v6/schema-v8 and prompt-v7/schema-v8 profiles remain compatible. Assessment v8 uses the new matching-focused schema v9.

The validator is version-aware. Schema v9 requires a concise visible profile, opaque evidence references, deterministic statistic sources, privacy-safe career synthesis, matching data, and strict copy budgets. Older profiles are read under their original rules.

See the version history for release dates, compatibility, and the difference between assessment, schema, and helper versions.

Self-hosting

Everything needed to run this as your own tool is here. src/config.js is the single branding seam:

import { configure } from "ai-work-assessment/config";

configure({
  siteName: "Example Collective",
  siteUrl: "https://example.test/",
  accentColor: "#0055ff",
});

Or pass a JSON file to the CLI with --config. Defaults are deliberately generic; unset values render as plain text rather than inventing a brand.

src/storage.js is opt-in persistence — a JSON file, enabled only with --store <path>. Default behavior is stateless render-to-file.

If you collect enough profiles to compare them, src/curves.js builds aggregate distribution shapes. It enforces a minimum-coverage floor of N ≥ 8: a metric is published as a density shape only once at least eight schema-compatible profiles report it, and below that floor it is listed as pending with no shape, no count, and no extrema. The output contains normalized density curves on fixed public domains — never profile rows, raw observations, bucket counts, exact extrema, quantiles, ranks, names, emails, URLs, or identifiers. Do not lower the floor; it is what keeps a small cohort from being re-identifiable.

The prompt, schema guide, validator, renderer, profile template, evidence helper, curves, and current sample fixture are vendored from the Overflow site. Fix those files upstream and run npm run sync. npm run sync:check exits non-zero on drift. SYNC-MANIFEST.json records the source revision, transforms, and hashes. RELEASING.md records the complete version sequence.

npm test           # node --test: validation rules, CLI rendering, coverage floor
npm run sync:check # verify the vendored modules match upstream

Hosted by Organized AI

Organized AI runs a hosted version of this assessment. It uses the same prompt, schema, validator, renderer, and profile template. This repository is the Organized AI distribution of that contract — originally published by Runpoint Partners under the MIT license (see LICENSE).

What submitting adds is the one thing a local run genuinely cannot do: an aggregate, unnamed cohort comparison. A single profile has no cohort, so the local report shows no distribution, percentile, or placement at all — inventing one would be fabrication. Organized AI computes placement against its stored submissions, subject to the same N ≥ 8 floor described above.

Submitting is entirely optional and changes nothing about the assessment itself. Submission runs through python3 tokens.py --submit, gated on a typed word: share lists the profile on the public talent directory at board.organizedai.vip/talent, keep stores it privately. Either way the host keeps only the normalized structured payload, discards the surrounding HTML and any LinkedIn career context. Host-specific upload and consent behavior stays outside the local assessment prompt and renderer.

The open tool is fully useful on its own. That is the point.

License

MIT. See LICENSE.

About

Evidence-based profile of your actual AI work — run one prompt in your own coding agent (Claude Code, Codex, or any capable agent). Local-first, privacy-scrubbed, MIT.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages