BennyBytes.net Instagram ↗

Tools · Open source

jev-smart-copypaste

Copy a whole resume, paste into any field of a job application, and only the relevant pieces land, each where it belongs. Built on TypeSafe's Jev; no text is generated.

JavaScriptNode · TypeSafe Jev · vanilla JSMIT licenseupdated October 16, 2026by Ben Pollock
Clone it
$ git clone https://github.com/bennyp11/jev-smart-copypaste.git

What it does

Copy a whole resume. Paste into any field of a job application. Only the relevant pieces land, each in the field it belongs to, and fields with nothing relevant (like "Why do you want to work here?") stay empty.

It's built on TypeSafe / Jev, and the rule is strict: no text is generated. Every value that lands in a field is a verbatim copy of something that was on the clipboard.

How to run it

git clone https://github.com/bennyp11/jev-smart-copypaste
cd jev-smart-copypaste && npm install
echo 'TYPESAFE_API_KEY=...' > .env
PORT=3456 npm start        # → http://localhost:3456
npm test                   # runs the planner against sample/resume.txt, prints the fill plan

How it works

  1. Code segments the clipboard (lib/segment.js). Every line gets a tag (L01, L02…), lines are split further on |, •, tabs and em dashes, blank lines and ALL-CAPS headings start blocks (B1, B2…), and regexes over-find emails, phones and URLs.
  2. One Jev request asks one question per form field (lib/smart-paste.js), in parallel over the same tagged text. Line fields get a Choice over line IDs plus none; block fields a Choice over block IDs; email/phone/URL fields a Choice over the regex spans; dropdowns a Choice over their own options. A Noul gate asks whether the text is even about someone's professional background.
  3. Code applies the answers. P(none) ≥ 0.5 leaves the field alone. A best option ≥ 0.5 fills it (green); between 0.15 and 0.5 fills and flags for review (amber). Already-filled fields are never overwritten. If the gate is below 0.3, it's an ordinary paste.

Two more cases fall out of the same machinery: paste a lone phone number into "Full name" and it gets redirected to the right field; paste an article and the gate says no, with the report explaining why.

On the sample resume that's one request, about 250–550 ms, ~3.8k input tokens, and every field lands correctly with the cover-letter field skipped at P(none) = 1.00.

Files

server.js            tiny node:http server: static files + POST /api/smart-paste (key stays server-side)
lib/segment.js       clipboard → tagged lines/blocks + regex candidates
lib/form-schema.js   the form fields, their shapes, and the literal question Jev answers for each
lib/smart-paste.js   builds the questions, calls Jev, turns answers into a fill plan
public/              the demo page (form built from /api/fields; paste event intercepted)
sample/resume.txt    demo clipboard
test/smoke.js        prints the plan; --extra also runs the single-value and non-resume cases

Tuning

Thresholds live at the top of lib/smart-paste.js. Field questions live in lib/form-schema.js; Jev reads literally, so each ask names exactly what counts and what doesn't. Add a field by adding an entry there and both the form and the questions follow.

typesafejevaiclipboardformsjavascriptnode