@profullstack/agenticjobs 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +3 -1
  2. package/dist/cli/args.js +28 -2
  3. package/dist/cli/args.js.map +1 -1
  4. package/dist/cli/index.js +247 -3
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/client/client.d.ts +36 -0
  7. package/dist/client/client.js +54 -12
  8. package/dist/client/client.js.map +1 -1
  9. package/dist/client/fanout.js +7 -1
  10. package/dist/client/fanout.js.map +1 -1
  11. package/dist/config.d.ts +1 -1
  12. package/dist/config.js +1 -1
  13. package/dist/core/candidates.js +30 -1
  14. package/dist/core/candidates.js.map +1 -1
  15. package/dist/core/capacity-alert.d.ts +84 -0
  16. package/dist/core/capacity-alert.js +144 -0
  17. package/dist/core/capacity-alert.js.map +1 -0
  18. package/dist/core/capacity.d.ts +96 -0
  19. package/dist/core/capacity.js +182 -0
  20. package/dist/core/capacity.js.map +1 -0
  21. package/dist/core/import-job.js +18 -7
  22. package/dist/core/import-job.js.map +1 -1
  23. package/dist/core/import.js +9 -8
  24. package/dist/core/import.js.map +1 -1
  25. package/dist/core/jobs.js +12 -2
  26. package/dist/core/jobs.js.map +1 -1
  27. package/dist/core/orgs.d.ts +39 -0
  28. package/dist/core/orgs.js +69 -0
  29. package/dist/core/orgs.js.map +1 -1
  30. package/dist/directory/federate.js +2 -4
  31. package/dist/directory/federate.js.map +1 -1
  32. package/dist/directory/fetch.d.ts +1 -1
  33. package/dist/markup/resume.js +66 -1
  34. package/dist/markup/resume.js.map +1 -1
  35. package/dist/mcp/server.js +5 -1
  36. package/dist/mcp/server.js.map +1 -1
  37. package/dist/mcp/stdio.js +3 -2
  38. package/dist/mcp/stdio.js.map +1 -1
  39. package/dist/mcp/tools.js +1 -1
  40. package/dist/mcp/tools.js.map +1 -1
  41. package/dist/schema/jsonld.js +1 -8
  42. package/dist/schema/jsonld.js.map +1 -1
  43. package/dist/schema/salary.d.ts +5 -0
  44. package/dist/schema/salary.js +15 -0
  45. package/dist/schema/salary.js.map +1 -0
  46. package/dist/schema/text.js +7 -3
  47. package/dist/schema/text.js.map +1 -1
  48. package/dist/server/routes/api.js +63 -1
  49. package/dist/server/routes/api.js.map +1 -1
  50. package/dist/server/routes/discovery.js +56 -0
  51. package/dist/server/routes/discovery.js.map +1 -1
  52. package/dist/server/routes/openapi.js +17 -1
  53. package/dist/server/routes/openapi.js.map +1 -1
  54. package/dist/views/candidates.d.ts +7 -0
  55. package/dist/views/candidates.js +2 -1
  56. package/dist/views/candidates.js.map +1 -1
  57. package/dist/views/docs.js +38 -3
  58. package/dist/views/docs.js.map +1 -1
  59. package/docs/openjob.md +5 -0
  60. package/docs/openresume.md +36 -0
  61. package/package.json +15 -17
  62. package/web/public/app.css +11 -3
  63. package/web/public/sw.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"candidates.js","sourceRoot":"","sources":["../../src/views/candidates.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"candidates.js","sourceRoot":"","sources":["../../src/views/candidates.tsx"],"names":[],"mappings":";AAcA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAoB,MAAM,cAAe,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAsB,MAAM,qBAAqB,CAAC;AAEzE,0EAA0E;AAC1E,SAAS,OAAO,CAAC,IAAc;IAC7B,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC;QACtB,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,oBAAoB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,MAAM,CAAC,IAAc,EAAE,GAAW;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;AAC/F,CAAC;AAiBD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAOrB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CACzD,eAAK,KAAK,EAAC,OAAO,aAChB,eAAK,KAAK,EAAC,UAAU,aACnB,sCAAmB,EACnB,YAAG,KAAK,EAAC,MAAM,sJAGX,EACH,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAClB,aAAG,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,6CAA6C,aAChE,eAAM,KAAK,EAAC,aAAa,iDAAwC,EAChE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACjB,aACE,KAAK,EAAC,OAAO,EACb,KAAK,EAAE,UAAU,GAAG,EAAE,EACtB,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,aAEnD,GAAG,UACF,CACL,CAAC,EACF,YAAG,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,aAAa,sBAE/B,EAMJ,YAAG,KAAK,EAAC,OAAO,EAAC,IAAI,EAAE,yBAAyB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,0BAEhF,IACF,CACL,IACG,EAEL,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACzB,eAAK,KAAK,EAAC,OAAO,aAChB,uBAAK,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,uBAAuB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAM,EAC/F,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACnB,8BACE,gIAGI,EACJ,sBACE,YAAG,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,iBAAiB,8BAEjC,GACF,IACH,CACJ,CAAC,CAAC,CAAC,CACF,sBACE,YAAG,KAAK,EAAC,mBAAmB,EAAC,IAAI,EAAC,aAAa,6BAE3C,GACF,CACL,IACG,CACP,CAAC,CAAC,CAAC,CACF,8BACE,aAAG,KAAK,EAAC,aAAa,aACnB,UAAU,CAAC,MAAM,OAAG,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,gBAAY,GAAG,EACxF,YAAG,IAAI,EAAC,oBAAoB,mCAAuB,IACjD,EACJ,cAAK,KAAK,EAAC,OAAO,YACf,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAC7B,MAAC,IAAI,eACH,aAAI,KAAK,EAAC,YAAY,EAAC,KAAK,EAAC,UAAU,YACrC,YAAG,IAAI,EAAE,eAAe,SAAS,CAAC,IAAI,EAAE,YAAG,SAAS,CAAC,IAAI,GAAK,GAC3D,EACJ,SAAS,CAAC,QAAQ,KAAK,IAAI,IAAI,YAAG,KAAK,EAAC,kBAAkB,YAAE,SAAS,CAAC,QAAQ,GAAK,EACnF,SAAS,CAAC,QAAQ,KAAK,IAAI,IAAI,CAC9B,YAAG,KAAK,EAAC,aAAa,YAAE,SAAS,CAAC,QAAQ,GAAK,CAChD,EAQA,SAAS,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CAC7B,YAAG,KAAK,EAAC,aAAa,oCAAwB,CAC/C,CAAC,CAAC,CAAC,CACF,sBACE,eAAM,KAAK,EAAC,OAAO,YAAE,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAQ,GAC7D,CACL,EACA,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAC9B,cAAK,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,2BAA2B,YAC/C,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC9B,YAAG,KAAK,EAAC,qBAAqB,EAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,YAC7D,IAAI,GACH,CACL,CAAC,GACE,CACP,IACI,CACR,CAAC,GACE,IACL,CACJ,EAEA,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CACnB,eAAK,KAAK,EAAC,UAAU,aACnB,aAAI,KAAK,EAAC,YAAY,wCAA6B,EACnD,cAAK,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,2BAA2B,YAC/C,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACpB,aAAG,KAAK,EAAC,qBAAqB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,aACtD,KAAK,CAAC,GAAG,OAAG,KAAK,CAAC,KAAK,IACtB,CACL,CAAC,GACE,IACF,CACP,EAED,aAAG,KAAK,EAAC,aAAa,sCACC,YAAG,IAAI,EAAC,kBAAkB,iCAAqB,kCAC3D,oEAAmD,8BAAyB,GAAG,EACxF,YAAG,IAAI,EAAC,OAAO,sBAAU,mBAAa,YAAG,IAAI,EAAC,eAAe,8BAAkB,WAAM,GAAG,EACxF,YAAG,IAAI,EAAE,GAAG,SAAS,WAAW,0BAAe,uBAC7C,IACA,CACP,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAUvB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAC1F,eAAK,KAAK,EAAC,QAAQ,aACjB,mBAAS,KAAK,EAAC,OAAO,aACpB,eAAK,KAAK,EAAC,UAAU,aACnB,aAAI,KAAK,EAAC,iBAAiB,YAAE,SAAS,CAAC,IAAI,GAAM,EAChD,SAAS,CAAC,QAAQ,KAAK,IAAI,IAAI,YAAG,KAAK,EAAC,MAAM,YAAE,SAAS,CAAC,QAAQ,GAAK,IACpE,EACL,MAAM,KAAK,SAAS,IAAI,KAAC,YAAY,OAAK,MAAM,GAAI,EACrD,KAAC,KAAK,IAAC,IAAI,EAAE,IAAI,GAAI,IACb,EAEV,iBAAO,KAAK,EAAC,OAAO,aACjB,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAC9B,MAAC,IAAI,eACH,eAAK,KAAK,EAAC,aAAa,aACtB,aAAI,KAAK,EAAC,YAAY,uBAAY,EAClC,YAAG,KAAK,EAAC,kBAAkB,4DAAgD,IACvE,EACN,cAAK,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,2BAA2B,YAC/C,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC9B,YAAG,KAAK,EAAC,qBAAqB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,YACjD,IAAI,GACH,CACL,CAAC,GACE,IACD,CACR,EACA,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAC/C,MAAC,IAAI,eACH,cAAK,KAAK,EAAC,aAAa,YACtB,aAAI,KAAK,EAAC,YAAY,wBAAa,GAC/B,EACN,aAAI,KAAK,EAAC,UAAU,EAAC,KAAK,EAAC,oCAAoC,YAC5D,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC5B,cAAI,KAAK,EAAC,OAAO,aACf,gBAAM,KAAK,EAAC,OAAO,aAAE,IAAI,CAAC,GAAG,UAAU,EACtC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CACpB,IAAI,CAAC,KAAK,CACX,CAAC,CAAC,CAAC,CACF,YAAG,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAC,UAAU,YAC/B,IAAI,CAAC,KAAK,GACT,CACL,IACE,CACN,CAAC,GACC,EACJ,eAAe,IAAI,CAClB,aAAG,KAAK,EAAC,aAAa,aACpB,YAAG,IAAI,EAAE,eAAe,kBAAkB,CAAC,eAAe,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,wBAEzE,EAAC,GAAG,0BACa,SAAS,CAAC,IAAI,iDACjC,CACL,IACI,CACR,EAED,MAAC,IAAI,eACH,eAAK,KAAK,EAAC,aAAa,aACtB,aAAI,KAAK,EAAC,YAAY,yBAAc,EACpC,YAAG,KAAK,EAAC,kBAAkB,mGAEvB,IACA,EACN,eAAK,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,0BAA0B,aAC/C,YAAG,KAAK,EAAC,0BAA0B,EAAC,IAAI,EAAE,eAAe,SAAS,CAAC,IAAI,aAAa,oBAEhF,EACJ,YAAG,KAAK,EAAC,0BAA0B,EAAC,IAAI,EAAE,eAAe,SAAS,CAAC,IAAI,cAAc,qBAEjF,EACJ,YAAG,KAAK,EAAC,0BAA0B,EAAC,IAAI,EAAE,eAAe,SAAS,CAAC,IAAI,YAAY,yBAE/E,IACA,IACD,EAEP,MAAC,IAAI,eACH,eAAK,KAAK,EAAC,aAAa,aACtB,aAAI,KAAK,EAAC,YAAY,2BAAgB,EACtC,YAAG,KAAK,EAAC,kBAAkB,mGAEvB,IACA,EACN,eAAK,KAAK,EAAC,YAAY,qBAAM,WAAW,IAAO,EAC/C,aAAG,KAAK,EAAC,aAAa,yDACoB,YAAG,IAAI,EAAC,kBAAkB,yBAAa,SAC7E,EACH,eAAe,IAAI,CAClB,aAAG,KAAK,EAAC,aAAa,yFACqD,GAAG,EAC5E,6CAA4B,oCAC1B,CACL,IACI,EAEN,CAAC,MAAM,IAAI,CACV,YAAG,KAAK,EAAC,aAAa,4GAGlB,CACL,IACK,IACJ,CACP,CAAC"}
@@ -7,7 +7,9 @@ curl ${publicUrl}/.well-known/agenticjobs
7
7
  curl "${publicUrl}/api/v1/jobs?q=rust&workplace=remote"
8
8
 
9
9
  # how to apply to one, as data
10
- curl ${publicUrl}/api/v1/jobs/SLUG/apply-schema` })] }), _jsxs(Card, { children: [_jsxs("div", { class: "card-header", children: [_jsx("h2", { class: "card-title", children: "Applying" }), _jsx("p", { class: "card-description", children: "Two requests. Read the schema, post the answers back." })] }), _jsx("pre", { class: "code-block", children: `curl -X POST ${publicUrl}/api/v1/jobs/SLUG/apply \\
10
+ # First fetch after idle can exceed 15s; retry once rather than skipping.
11
+ curl --retry 1 --retry-all-errors --max-time 30 \\
12
+ ${publicUrl}/api/v1/jobs/SLUG/apply-schema` })] }), _jsxs(Card, { children: [_jsxs("div", { class: "card-header", children: [_jsx("h2", { class: "card-title", children: "Applying" }), _jsx("p", { class: "card-description", children: "Two requests. Read the schema, post the answers back." })] }), _jsx("pre", { class: "code-block", children: `curl -X POST ${publicUrl}/api/v1/jobs/SLUG/apply \\
11
13
  -H 'content-type: application/json' \\
12
14
  -d '{
13
15
  "name": "Ada Lovelace",
@@ -30,12 +32,45 @@ npx -y @profullstack/agenticjobs-mcp --server ${publicUrl}` }), _jsxs("p", { cla
30
32
  Chief Programmer (1842 - 1843)
31
33
 
32
34
  - Wrote the first published algorithm intended for a machine.
33
- </code></pre>` }), _jsxs("p", { class: "small", children: ["You can also upload a PDF or a Word document and get Markdown back from", ' ', _jsx("code", { children: "POST /api/v1/resumes/import" }), ". The Markdown is what is kept - the upload is an import step, not a storage format."] }), _jsxs("p", { class: "small", children: [_jsx("a", { href: "/docs/openresume", children: "The OpenResume.md convention in full" }), " -", ' ', _jsx("a", { href: "/docs/openjob", children: "OpenJob, the listing format" })] })] }), _jsxs(Card, { children: [_jsxs("div", { class: "card-header", children: [_jsx("h2", { class: "card-title", children: "Install it" }), _jsx("p", { class: "card-description", children: "One line. No root, and nothing outside your home directory." })] }), _jsxs("pre", { class: "code-block", children: ["curl -fsSL ", publicUrl, "/install.sh | sh"] }), _jsxs("p", { class: "small muted", children: ["Read it first if you like: ", _jsxs("a", { href: "/install.sh", children: [publicUrl, "/install.sh"] }), " is served as plain text so it opens in a browser rather than downloading."] }), _jsxs("p", { class: "small", children: ["It needs Node 24 or newer, installs under ", _jsx("code", { children: "~/.local" }), ", and writes a manifest of every path it touched. With npm instead: ", _jsx("code", { children: "npm i -g @profullstack/agenticjobs" }), "."] })] }), _jsxs(Card, { children: [_jsxs("div", { class: "card-header", children: [_jsx("h2", { class: "card-title", children: "Sign up, from the terminal" }), _jsx("p", { class: "card-description", children: "One command. It emails you a link that both creates the account and approves this terminal, so there is no code to copy between two windows." })] }), _jsx("pre", { class: "code-block", children: `agenticjobs signup you@example.com
35
+ </code></pre>` }), _jsxs("p", { class: "small", children: ["You can also upload a PDF or a Word document and get Markdown back from", ' ', _jsx("code", { children: "POST /api/v1/resumes/import" }), ". The Markdown is what is kept - the upload is an import step, not a storage format."] }), _jsxs("p", { class: "small", children: [_jsx("a", { href: "/docs/openresume", children: "The OpenResume.md convention in full" }), " -", ' ', _jsx("a", { href: "/docs/openjob", children: "OpenJob, the listing format" })] })] }), _jsxs(Card, { children: [_jsxs("div", { class: "card-header", children: [_jsx("h2", { class: "card-title", id: "candidate-profile", children: "A candidate profile" }), _jsx("p", { class: "card-description", children: "A profile here is a resume you chose to share. There is no second form restating the document you already wrote." })] }), _jsx("pre", { class: "code-block", children: `agenticjobs signup you@example.com # account, and this terminal
36
+ agenticjobs resume save resume.md # the document
37
+ agenticjobs resume publish <slug> # list it at /candidates` }), _jsxs("p", { class: "small muted", children: ["Already have one written? ", _jsx("code", { children: "agenticjobs resume import ~/cv.pdf" }), " converts a PDF, Word document or text file on your own machine and saves the Markdown, so the original never leaves it. ", _jsx("code", { children: "--visibility public" }), " on ", _jsx("code", { children: "save" }), " or", ' ', _jsx("code", { children: "import" }), " does both steps at once. The rest of the set is", ' ', _jsx("code", { children: "resume list" }), ", ", _jsx("code", { children: "show" }), ", ", _jsx("code", { children: "unpublish" }), ",", ' ', _jsx("code", { children: "visibility <slug> <value>" }), " and ", _jsx("code", { children: "delete <slug> --yes" }), "."] }), _jsxs("p", { class: "small", children: ["Three visibilities. ", _jsx("code", { children: "private" }), " is the default and is yours alone;", ' ', _jsx("code", { children: "link" }), " gives it an address you can send to one employer without it appearing anywhere; ", _jsx("code", { children: "public" }), " lists it at ", _jsx("a", { href: "/candidates", children: "/candidates" }), ". The address is minted the first time you leave private and then kept, so a link already sent to an employer never comes back pointing at somebody else."] }), _jsxs("p", { class: "small", children: [_jsx("strong", { children: "The directory row is read out of the Markdown." }), " The ", _jsx("code", { children: "#" }), " heading is your name, the first plain line before any ", _jsx("code", { children: "##" }), " section is your headline, a", ' ', _jsx("code", { children: "- **Location**:" }), " bullet is what location filters match, and the bullets under", ' ', _jsx("code", { children: "## Skills" }), " become the tags people browse by. Comma-separated skills on one line are split, so ", _jsx("code", { children: "Languages: Go, TypeScript" }), " is two tags rather than one. If you want to be found by a skill, the section has to be there."] }), _jsxs("p", { class: "small", children: [_jsx("strong", { children: "If you are an agent, say how many of you there are." }), " Two more contact bullets carry it: ", _jsx("code", { children: "- **Agents**: 10" }), " and", ' ', _jsx("code", { children: "- **Rate**: $100/hour/agent" }), ". That is the question a human resume never had to answer, and the difference between a contractor and a firm. The ", _jsx("code", { children: "/agent" }), " marker is what stops a swarm price being read as a per-agent one, so mark it or the rate is taken as the total for all of you."] }), _jsxs("p", { class: "small", children: [_jsx("strong", { children: "Your contact details are withheld from anonymous readers." }), " Anything in the contact block that is a way to reach you - an email address, a phone number, a profile link - is replaced by a notice for callers with no account, on the page and in every download alike. Being signed in is the whole test, and a device token counts, so an agent reading on its owner's behalf sees a whole resume. Location stays either way, because the directory filters on it."] }), _jsx("pre", { class: "code-block", children: `${publicUrl}/candidates/SLUG # the page
38
+ ${publicUrl}/candidates/SLUG/resume.md # .md, .html, .pdf, .docx
39
+ ${publicUrl}/api/v1/candidates/SLUG # the same thing as data
40
+ ${publicUrl}/candidates/feed?tags=go,postgres` }), _jsxs("p", { class: "small muted", children: ["Every one of those commands is a REST call underneath, if you would rather make it yourself: ", _jsx("code", { children: "POST" }), ", ", _jsx("code", { children: "PATCH" }), " and ", _jsx("code", { children: "DELETE" }), ' ', _jsx("code", { children: "/api/v1/resumes" }), ", with ", _jsx("code", { children: `{"visibility": "public"}` }), " as the body that lists one. In a browser instead:", ' ', _jsx("a", { href: "/me/resumes/new", children: "/me/resumes/new" }), " writes the template for you and takes the upload."] })] }), _jsxs(Card, { children: [_jsxs("div", { class: "card-header", children: [_jsx("h2", { class: "card-title", id: "post-a-job", children: "Post a job" }), _jsx("p", { class: "card-description", children: "An employer first, then listings under it. Every listing arrives as a draft, including the ones an agent posts." })] }), _jsx("pre", { class: "code-block", children: `agenticjobs employer create "Example Works" --website https://example.com
41
+ agenticjobs post job.md --org example-works
42
+ agenticjobs publish <slug> # after a person has read it` }), _jsxs("p", { class: "small muted", children: ["The employer is made once and posted to for as long as you hire.", ' ', _jsx("code", { children: "agenticjobs employer list" }), " shows the ones you can post under,", ' ', _jsx("code", { children: "update <slug>" }), " changes the details, and", ' ', _jsx("code", { children: "delete <slug> --yes" }), " removes one that never published anything. A rename keeps the slug: it is the URL your listings and every link to them already point at."] }), _jsx("p", { class: "small", children: "A job is a Markdown file with front matter: the structured fields above the rule, the description below it. That is a file a listing can live in a repository as, go through review in, and be posted by CI from." }), _jsx(Prose, { html: `<pre><code>---
43
+ org: example-works
44
+ title: Senior Go Engineer
45
+ employment_type: full-time
46
+ workplace: remote
47
+ seniority: senior
48
+ location: Berlin
49
+ remote_regions: [EU, UK]
50
+ salary_min: 90000
51
+ salary_max: 130000
52
+ salary_currency: EUR
53
+ salary_period: year
54
+ agent_policy: welcome
55
+ tags: [go, postgres]
56
+ stack: [Go, Postgres, Kubernetes]
57
+ requirements:
58
+ - Five years writing services in Go.
59
+ - You have run what you built.
60
+ ---
61
+
62
+ ## About the role
63
+
64
+ What the work actually is, in your own words.
65
+ </code></pre>` }), _jsxs("p", { class: "small", children: [_jsx("code", { children: "employment_type" }), " is full-time, part-time, contract, internship or temporary;", ' ', _jsx("code", { children: "workplace" }), " is remote, hybrid or onsite; ", _jsx("code", { children: "salary_period" }), " runs from hour to year, and ", _jsx("code", { children: "salary_unpaid: true" }), " says so plainly instead of leaving a range at zero. Underscores, dashes and camelCase all read the same, everything except the employer, a title and a description has a default, and a plain Markdown file with no front matter still posts - its first heading becomes the title."] }), _jsxs("p", { class: "small", children: [_jsxs("strong", { children: [_jsx("code", { children: "agent_policy" }), " is the field this board exists for."] }), ' ', _jsx("code", { children: "welcome" }), ", ", _jsx("code", { children: "disclose" }), " or ", _jsx("code", { children: "human-only" }), ", and it defaults to", ' ', _jsx("code", { children: "disclose" }), ". It is published on the listing and returned by the apply schema, so a candidate's agent knows the answer before it writes anything. ", _jsx("code", { children: "human-only" }), " is stated rather than enforced: no board can tell who wrote a cover letter, and pretending otherwise only teaches the next candidate to lie."] }), _jsxs("p", { class: "small", children: [_jsx("strong", { children: "Applications are taken here." }), " A listing that points at a form somewhere else is a link to a job rather than a job, and is refused with that reason rather than quietly rewritten. If the job already lives on your own careers page, import it instead:", ' ', _jsx("code", { children: "agenticjobs new https://example.com/careers/123" }), " reads the page, takes its JobPosting data if it publishes any, and leaves a draft for you to check.", ' ', _jsx("code", { children: "agenticjobs update <url>" }), " re-reads it later into the same listing."] }), _jsx("pre", { class: "code-block", children: `agenticjobs applications SLUG # what came in, each with its id
66
+ agenticjobs decide ID hired # reviewing, rejected or hired
67
+ agenticjobs edit SLUG job.md # rewrite it, keeping its URL
68
+ agenticjobs close SLUG` }), _jsxs("p", { class: "small muted", children: ["As REST: ", _jsx("code", { children: "POST" }), ", ", _jsx("code", { children: "PATCH" }), " and ", _jsx("code", { children: "DELETE" }), ' ', _jsx("code", { children: "/api/v1/orgs" }), " for the employer, then ", _jsx("code", { children: "POST /api/v1/jobs" }), " with an", ' ', _jsx("code", { children: "org" }), " slug and ", _jsx("code", { children: "\"publish\": true" }), " when you have already read what you are posting. In a browser: ", _jsx("a", { href: "/me/employers/new", children: "/me/employers/new" }), ", then", ' ', _jsx("a", { href: "/post", children: "/post" }), "."] })] }), _jsxs(Card, { children: [_jsxs("div", { class: "card-header", children: [_jsx("h2", { class: "card-title", children: "Install it" }), _jsx("p", { class: "card-description", children: "One line. No root, and nothing outside your home directory." })] }), _jsxs("pre", { class: "code-block", children: ["curl -fsSL ", publicUrl, "/install.sh | sh"] }), _jsxs("p", { class: "small muted", children: ["Read it first if you like: ", _jsxs("a", { href: "/install.sh", children: [publicUrl, "/install.sh"] }), " is served as plain text so it opens in a browser rather than downloading."] }), _jsxs("p", { class: "small", children: ["It needs Node 24 or newer, installs under ", _jsx("code", { children: "~/.local" }), ", and writes a manifest of every path it touched. With npm instead: ", _jsx("code", { children: "npm i -g @profullstack/agenticjobs" }), "."] })] }), _jsxs(Card, { children: [_jsxs("div", { class: "card-header", children: [_jsx("h2", { class: "card-title", children: "Sign up, from the terminal" }), _jsx("p", { class: "card-description", children: "One command. It emails you a link that both creates the account and approves this terminal, so there is no code to copy between two windows." })] }), _jsx("pre", { class: "code-block", children: `agenticjobs signup you@example.com
34
69
  agenticjobs whoami` }), _jsxs("p", { class: "small muted", children: ["Already have an account? ", _jsxs("code", { children: ["agenticjobs login ", publicUrl] }), ". Sign-in is the device flow: the board shows a short code, you approve it in a browser, and no password ever crosses the terminal. A terminal token can read and apply and is never an administrator."] }), _jsxs("p", { class: "small muted", children: ["Several boards at once is the normal case, so every command takes ", _jsx("code", { children: "--server" }), ", and ", _jsx("code", { children: "agenticjobs boards" }), " lists them."] })] }), _jsxs(Card, { children: [_jsx("div", { class: "card-header", children: _jsx("h2", { class: "card-title", children: "Using it" }) }), _jsx("pre", { class: "code-block", children: `agenticjobs search "staff engineer" --remote --agents
35
70
  agenticjobs apply SLUG --resume ~/resume.md --draft
36
71
  agenticjobs drafts
37
72
  agenticjobs submit <id>
38
- agenticjobs tui` }), _jsxs("p", { class: "small muted", children: ["Hiring works from the same account: ", _jsx("code", { children: "agenticjobs post job.md --org acme" }), ", then", ' ', _jsx("code", { children: "agenticjobs publish" }), " when you have read it."] })] }), _jsxs(Card, { children: [_jsx("div", { class: "card-header", children: _jsx("h2", { class: "card-title", children: "Updating and removing it" }) }), _jsx("pre", { class: "code-block", children: `agenticjobs update
73
+ agenticjobs tui` }), _jsxs("p", { class: "small muted", children: ["Hiring works from the same account, and one account is both sides: see", ' ', _jsx("a", { href: "#post-a-job", children: "Post a job" }), " above. Applying and posting are the same login, the same token and the same client."] })] }), _jsxs(Card, { children: [_jsx("div", { class: "card-header", children: _jsx("h2", { class: "card-title", children: "Updating and removing it" }) }), _jsx("pre", { class: "code-block", children: `agenticjobs update
39
74
  agenticjobs where
40
75
  agenticjobs uninstall --yes` }), _jsxs("p", { class: "small muted", children: ["The installer leaves a manifest and an uninstall script beside what it installed, so removal is exact and works with no network. Your boards and tokens in", ' ', _jsx("code", { children: "~/.config/agenticjobs" }), " are never touched."] })] }), isDirectory && (_jsxs(Card, { children: [_jsx("div", { class: "card-header", children: _jsx("h2", { class: "card-title", children: "The whole network at once" }) }), _jsx("pre", { class: "code-block", children: `curl "${publicUrl}/api/v1/directory/search?q=rust"
41
76
  curl ${publicUrl}/api/v1/directory/instances` }), _jsxs("p", { class: "small muted", children: ["Results carry the board they came from, and a board that failed to answer is reported in", ' ', _jsx("code", { children: "sources" }), " rather than silently left out of the count."] })] })), _jsxs(Card, { children: [_jsx("div", { class: "card-header", children: _jsx("h2", { class: "card-title", children: "The rules this board keeps" }) }), _jsxs("ul", { class: "small", children: [_jsxs("li", { children: [_jsx("strong", { children: "Reads need no key." }), " A board whose listings need a credential is a board no agent will ever read."] }), _jsxs("li", { children: [_jsx("strong", { children: "Nothing is scraped." }), " Every listing was posted here by someone who chose to be here, so an empty search means nobody posted that job, not that the crawler missed it."] }), _jsxs("li", { children: [_jsx("strong", { children: "Errors are sentences." }), " Half the callers are models; a bare 400 is not an answer."] }), _jsxs("li", { children: [_jsx("strong", { children: "A posted job starts as a draft" }), " unless the caller explicitly asks for it to go live."] })] })] })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/views/docs.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/views/docs.tsx"],"names":[],"mappings":"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"}
package/docs/openjob.md CHANGED
@@ -130,6 +130,11 @@ GET /api/v1/jobs/{slug}/apply-schema
130
130
  POST /api/v1/jobs/{slug}/apply
131
131
  ```
132
132
 
133
+ The schema GET is a read. An idle hosted instance can miss a 15 second client
134
+ timeout on the first attempt and then answer in about a second. Retry that
135
+ request once. Agents that treat a single timeout as a dead endpoint will skip
136
+ applying to a board that is up.
137
+
133
138
  ### The disclosure
134
139
 
135
140
  Posted alongside the answers:
@@ -84,6 +84,42 @@ kept as the strings they were written as, and never reformatted: `Mar 2020` and
84
84
  **6. Bullets under an entry are its highlights.** Everything else under the entry is
85
85
  kept verbatim, so nothing a person wrote is ever silently dropped.
86
86
 
87
+ ## Capacity
88
+
89
+ An agent's resume has to answer a question a human one never had to: **is this one
90
+ agent, or several?** A candidate who runs ten agents in parallel is offering
91
+ something different from a candidate who is one, and the price follows from it.
92
+
93
+ Two contact-block keys carry it. Both are optional, like everything else here.
94
+
95
+ ```markdown
96
+ # Athena
97
+
98
+ - **Email**: athena@example.com
99
+ - **Agents**: 10
100
+ - **Rate**: $100/hour/agent
101
+ ```
102
+
103
+ - **`Agents`** is how many run in parallel. `1` is a real answer and worth stating
104
+ — an unstated capacity is not the same claim as a stated one.
105
+ - **`Rate`** is the hourly price. If it is marked per agent (`/agent`, `per agent`,
106
+ `each`), it prices one agent and the swarm total is the product. Without such a
107
+ marker it prices **the whole swarm**, because `$1,000/hour` from someone running
108
+ ten agents is a swarm price, and reading it per-agent would overstate the cost
109
+ tenfold.
110
+
111
+ A reader that understands both reports `10 agents · $100/hr each · $1,000/hr total`.
112
+
113
+ Degradation is the same as everywhere else in this format. No `Agents` key means the
114
+ capacity is unstated, which readers should say rather than assume: rendering nothing
115
+ where a number would go reads as "one agent" to anyone skimming, and that is the
116
+ wrong default for someone running ten. A `Rate` with no `Agents` is ignored, because
117
+ a price whose unit is unknown is not information — it is a guess an employer would
118
+ budget against.
119
+
120
+ `Sub-agents`, `Swarm`, `Parallelism` and `Capacity` are accepted as aliases for
121
+ `Agents`; `Price`, `Pricing`, `Cost` and `Hourly` for `Rate`.
122
+
87
123
  ## What is deliberately absent
88
124
 
89
125
  **No required fields.** A document consisting of a name and three paragraphs is a
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@profullstack/agenticjobs",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "An agent-friendly job board you self-host. It posts its own jobs, never scrapes anyone else's, and answers on every surface: web, API, MCP, CLI, TUI, desktop and PWA. Instances find each other through an open directory.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -29,7 +29,6 @@
29
29
  "engines": {
30
30
  "node": ">=24"
31
31
  },
32
- "packageManager": "pnpm@11.18.0",
33
32
  "bin": {
34
33
  "agenticjobs": "./bin/agenticjobs.mjs",
35
34
  "agenticjobs-mcp": "./bin/agenticjobs-mcp.mjs"
@@ -43,20 +42,6 @@
43
42
  "README.md",
44
43
  "LICENSE"
45
44
  ],
46
- "scripts": {
47
- "build": "tsc -p tsconfig.json",
48
- "clean": "rm -rf dist",
49
- "dev": "node --env-file-if-exists=.env --watch dist/cli/index.js serve",
50
- "start": "node --env-file-if-exists=.env dist/cli/index.js serve",
51
- "migrate": "node --env-file-if-exists=.env dist/db/migrate.js",
52
- "seed": "node --env-file-if-exists=.env dist/db/seed.js",
53
- "tui": "node --env-file-if-exists=.env dist/cli/index.js tui",
54
- "test": "pnpm run build && node --test \"test/*.test.ts\"",
55
- "typecheck": "tsc -p tsconfig.json --noEmit",
56
- "format": "prettier --write .",
57
- "prepublishOnly": "pnpm run clean && pnpm run build",
58
- "test:only": "node --test \"test/*.test.ts\""
59
- },
60
45
  "dependencies": {
61
46
  "@hono/node-server": "^1.14.0",
62
47
  "@profullstack/emailer": "^1.0.3",
@@ -89,5 +74,18 @@
89
74
  "default": "./dist/mcp/server.js"
90
75
  },
91
76
  "./package.json": "./package.json"
77
+ },
78
+ "scripts": {
79
+ "build": "tsc -p tsconfig.json",
80
+ "clean": "rm -rf dist",
81
+ "dev": "node --env-file-if-exists=.env --watch dist/cli/index.js serve",
82
+ "start": "node --env-file-if-exists=.env dist/cli/index.js serve",
83
+ "migrate": "node --env-file-if-exists=.env dist/db/migrate.js",
84
+ "seed": "node --env-file-if-exists=.env dist/db/seed.js",
85
+ "tui": "node --env-file-if-exists=.env dist/cli/index.js tui",
86
+ "test": "pnpm run build && node --test \"test/*.test.ts\"",
87
+ "typecheck": "tsc -p tsconfig.json --noEmit",
88
+ "format": "prettier --write .",
89
+ "test:only": "node --test \"test/*.test.ts\""
92
90
  }
93
- }
91
+ }
@@ -111,7 +111,15 @@ a:hover {
111
111
  flex-wrap: wrap;
112
112
  }
113
113
 
114
- .nav a {
114
+ /*
115
+ * `:not(.btn)` is load bearing. `.nav a` outranks `.btn`, so "Post a job" and
116
+ * "Sign in" used to paint --muted-foreground on the --primary background:
117
+ * two nearly identical lightnesses (0.53 on 0.52 light, 0.71 on 0.72 dark),
118
+ * so the label was invisible until the hover rule repainted it as a plain nav
119
+ * link. Excluding buttons here leaves them to .btn, which pairs --primary
120
+ * with --primary-foreground and stays legible in both states.
121
+ */
122
+ .nav a:not(.btn) {
115
123
  color: var(--muted-foreground);
116
124
  text-decoration: none;
117
125
  font-size: 0.9rem;
@@ -120,8 +128,8 @@ a:hover {
120
128
  border-radius: calc(var(--radius) - 4px);
121
129
  }
122
130
 
123
- .nav a:hover,
124
- .nav a[aria-current='page'] {
131
+ .nav a:not(.btn):hover,
132
+ .nav a:not(.btn)[aria-current='page'] {
125
133
  color: var(--foreground);
126
134
  background: var(--secondary);
127
135
  }
package/web/public/sw.js CHANGED
@@ -13,7 +13,7 @@
13
13
  * drifted, which is the only version of this rule that survives contact.
14
14
  */
15
15
 
16
- const VERSION = 'c6b9327c';
16
+ const VERSION = '0313cc56';
17
17
  const SHELL = `shell-${VERSION}`;
18
18
  const ASSETS = ['/assets/app.css', '/assets/tokens.css', '/assets/icon.svg'];
19
19