@profullstack/agenticjobs 0.6.1 → 0.8.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.
- package/README.md +5 -0
- package/dist/cli/index.js +22 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js +1 -1
- package/dist/core/applications.d.ts +24 -2
- package/dist/core/applications.js +40 -5
- package/dist/core/applications.js.map +1 -1
- package/dist/core/candidates.d.ts +27 -0
- package/dist/core/candidates.js +26 -0
- package/dist/core/candidates.js.map +1 -1
- package/dist/directory/fetch.d.ts +1 -1
- package/dist/markup/resume.d.ts +33 -0
- package/dist/markup/resume.js +67 -0
- package/dist/markup/resume.js.map +1 -1
- package/dist/mcp/tools.js +30 -0
- package/dist/mcp/tools.js.map +1 -1
- package/dist/schema/job.d.ts +13 -0
- package/dist/schema/job.js +12 -0
- package/dist/schema/job.js.map +1 -1
- package/dist/server/routes/api.js +44 -4
- package/dist/server/routes/api.js.map +1 -1
- package/dist/server/routes/discovery.js +5 -0
- package/dist/server/routes/discovery.js.map +1 -1
- package/dist/server/routes/openapi.js +20 -1
- package/dist/server/routes/openapi.js.map +1 -1
- package/dist/server/routes/pages.js +40 -8
- package/dist/server/routes/pages.js.map +1 -1
- package/dist/views/candidates.d.ts +2 -0
- package/dist/views/candidates.js +1 -1
- package/dist/views/candidates.js.map +1 -1
- package/dist/views/post.js +16 -3
- package/dist/views/post.js.map +1 -1
- package/migrations/0011_application_decisions.sql +29 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
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;AAG/D,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;AAWD;;;;;;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,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,
|
|
1
|
+
{"version":3,"file":"candidates.js","sourceRoot":"","sources":["../../src/views/candidates.tsx"],"names":[],"mappings":"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"}
|
package/dist/views/post.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "hono/jsx/jsx-runtime";
|
|
2
|
-
import { AGENT_POLICIES, EMPLOYMENT_TYPES, SALARY_PERIODS, SENIORITIES, WORKPLACES, } from "../schema/job.js";
|
|
2
|
+
import { AGENT_POLICIES, APPLICATION_DECISIONS, EMPLOYMENT_TYPES, SALARY_PERIODS, SENIORITIES, WORKPLACES, } from "../schema/job.js";
|
|
3
3
|
import { ago } from "../schema/text.js";
|
|
4
4
|
import { Alert, Badge, Card, Empty, Field, Prose } from "./layout.js";
|
|
5
5
|
export const PostJobPage = ({ orgs, error, values = {} }) => (_jsxs("div", { class: "grid-2", children: [_jsxs("div", { class: "stack", children: [_jsx("h1", { children: "Post a job" }), _jsx("p", { class: "lede", children: "It stays a draft until you publish it, so nothing goes live by accident." }), error !== undefined && _jsx(Alert, { variant: "error", children: error }), orgs.length === 0 ? (_jsxs(Alert, { variant: "info", children: ["Add the employer first: ", _jsx("a", { href: "/me/employers/new", children: "add an employer" }), "."] })) : (_jsxs("form", { class: "stack", method: "post", action: "/post", children: [_jsx(Field, { label: "Employer", name: "org", children: _jsx("select", { class: "select", id: "org", name: "org", required: true, children: orgs.map((org) => (_jsx("option", { value: org.slug, selected: values['org'] === org.slug, children: org.name }))) }) }), _jsx(Field, { label: "Title", name: "title", children: _jsx("input", { class: "input", type: "text", id: "title", name: "title", value: values['title'] ?? '', required: true, maxlength: 140 }) }), _jsx(Field, { label: "Description", name: "description", hint: "Markdown. Headings, lists, links and tables all work.", children: _jsx("textarea", { class: "textarea", id: "description", name: "description", required: true, children: values['description'] ?? '' }) }), _jsxs("div", { class: "row", children: [_jsx(Field, { label: "Type", name: "employmentType", children: _jsx("select", { class: "select", id: "employmentType", name: "employmentType", children: EMPLOYMENT_TYPES.map((type) => (_jsx("option", { value: type, selected: values['employmentType'] === type, children: type }))) }) }), _jsx(Field, { label: "Where", name: "workplace", children: _jsx("select", { class: "select", id: "workplace", name: "workplace", children: WORKPLACES.map((place) => (_jsx("option", { value: place, selected: values['workplace'] === place, children: place }))) }) }), _jsx(Field, { label: "Level", name: "seniority", children: _jsxs("select", { class: "select", id: "seniority", name: "seniority", children: [_jsx("option", { value: "", children: "unspecified" }), SENIORITIES.map((level) => (_jsx("option", { value: level, selected: values['seniority'] === level, children: level })))] }) })] }), _jsx(Field, { label: "Location", name: "location", hint: 'Free text: "Berlin", "US timezones".', children: _jsx("input", { class: "input", type: "text", id: "location", name: "location", value: values['location'] ?? '' }) }), _jsxs("fieldset", { children: [_jsx("legend", { children: "Pay" }), _jsx("p", { class: "hint", style: "margin-top:0", children: "A listing without a number gets fewer and worse applications. Say the range." }), _jsxs("div", { class: "row", children: [_jsx("input", { class: "input", type: "number", name: "salaryMin", placeholder: "from", style: "width:8rem", value: values['salaryMin'] ?? '' }), _jsx("input", { class: "input", type: "number", name: "salaryMax", placeholder: "to", style: "width:8rem", value: values['salaryMax'] ?? '' }), _jsx("input", { class: "input", type: "text", name: "salaryCurrency", placeholder: "USD", maxlength: 3, style: "width:6rem", value: values['salaryCurrency'] ?? 'USD' }), _jsx("select", { class: "select", name: "salaryPeriod", style: "width:auto", children: SALARY_PERIODS.map((period) => (_jsxs("option", { value: period, selected: (values['salaryPeriod'] ?? 'year') === period, children: ["per ", period] }))) })] })] }), _jsx(Field, { label: "Stack", name: "stack", hint: "Comma separated. Also what people search on.", children: _jsx("input", { class: "input", type: "text", id: "stack", name: "stack", value: values['stack'] ?? '', placeholder: "typescript, postgres, hono" }) }), _jsx(Field, { label: "Tags", name: "tags", hint: "Comma separated.", children: _jsx("input", { class: "input", type: "text", id: "tags", name: "tags", value: values['tags'] ?? '', placeholder: "backend, remote-first" }) }), _jsxs("fieldset", { children: [_jsx("legend", { children: "Agent policy" }), _jsx("p", { class: "hint", style: "margin-top:0", children: "Required. Candidates increasingly use an agent to write applications; this says where you stand, instead of them finding out by being rejected without a reason." }), AGENT_POLICIES.map((policy) => (_jsxs("label", { class: "row", style: "align-items:flex-start;margin-top:.5rem", children: [_jsx("input", { type: "radio", name: "agentPolicy", value: policy, checked: (values['agentPolicy'] ?? 'disclose') === policy, style: "margin-top:.35rem" }), _jsxs("span", { children: [_jsx("strong", { children: POLICY_LABEL[policy] }), _jsx("br", {}), _jsx("span", { class: "hint", children: POLICY_HELP[policy] })] })] })))] }), _jsxs("fieldset", { children: [_jsx("legend", { children: "How to apply" }), _jsx("p", { class: "small muted", children: "Applications are taken on this board, so an agent can complete one without a browser and you get every application in one place. There is no offsite link." })] }), _jsx("button", { class: "btn btn-block", type: "submit", children: "Create draft" })] }))] }), _jsx("aside", { class: "stack", children: _jsxs(Card, { children: [_jsx("div", { class: "card-header", children: _jsx("h2", { class: "card-title", children: "Or post it from anywhere else" }) }), _jsx("pre", { class: "code-block", children: "agenticjobs post --org acme job.md" }), _jsx("p", { class: "small muted", children: "Over MCP, with the board connected:" }), _jsx("pre", { class: "code-block", children: "post_job(org: \"acme\", ...)" }), _jsx("p", { class: "small muted", children: "Through myna, alongside the rest of a launch:" }), _jsx("pre", { class: "code-block", children: "myna jobs post --to jobs:acme job.md" })] }) })] }));
|
|
@@ -13,8 +13,21 @@ const POLICY_HELP = {
|
|
|
13
13
|
disclose: 'Fine by you, as long as it says so. The application carries a structured disclosure you can filter on.',
|
|
14
14
|
'human-only': 'You want a person to have written it. This is a request the board states plainly; it cannot verify it, and says so.',
|
|
15
15
|
};
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* What the button says, as against what the column stores.
|
|
18
|
+
*
|
|
19
|
+
* The status is a state the application is in; the button is an act the
|
|
20
|
+
* employer is about to perform, and labelling a button with the noun makes
|
|
21
|
+
* the reader work out the verb. Nothing here notifies the candidate, so no
|
|
22
|
+
* label may imply a message was sent.
|
|
23
|
+
*/
|
|
24
|
+
const DECISION_VERBS = {
|
|
25
|
+
reviewing: 'Reviewing',
|
|
26
|
+
rejected: 'Reject',
|
|
27
|
+
hired: 'Hire',
|
|
28
|
+
};
|
|
29
|
+
export const ManageJobPage = ({ job, html, applications, publicUrl }) => (_jsxs("div", { class: "stack", children: [_jsxs("div", { class: "spread", children: [_jsxs("div", { children: [_jsx("h1", { children: job.title }), _jsxs("p", { class: "lede", children: [job.org.name, " - ", _jsx(Badge, { variant: job.status === 'published' ? 'primary' : 'outline', children: job.status })] })] }), _jsx("div", { class: "row", children: job.status !== 'published' ? (_jsx("form", { method: "post", action: `/me/jobs/${job.slug}/publish`, children: _jsx("button", { class: "btn", type: "submit", children: "Publish" }) })) : (_jsxs(_Fragment, { children: [_jsx("a", { class: "btn btn-secondary", href: `/jobs/${job.slug}`, children: "View live" }), _jsx("form", { method: "post", action: `/me/jobs/${job.slug}/close`, children: _jsx("button", { class: "btn btn-secondary", type: "submit", children: "Close" }) })] })) })] }), job.status === 'draft' && (_jsx(Alert, { variant: "info", children: "This is a draft. It is not in the list, not in the feed, not in the API and not visible to any other instance until you publish it." })), _jsxs("section", { class: "stack", children: [_jsxs("h2", { children: [applications.length, " ", applications.length === 1 ? 'application' : 'applications'] }), applications.length === 0 ? (_jsx(Empty, { children: "Nobody yet." })) : (applications.map((application) => (_jsxs(Card, { children: [_jsxs("div", { class: "spread", children: [_jsxs("h3", { class: "card-title", children: [application.answers['name'] ?? 'Someone', ' ', application.answers['email'] !== undefined && (_jsx("a", { class: "small", href: `mailto:${application.answers['email']}`, children: application.answers['email'] }))] }), _jsxs("span", { class: "row", children: [application.agent !== null && (_jsxs(Badge, { variant: "disclose", children: ["agent: ", application.agent.name, application.agent.supervised ? ', supervised' : ''] })), _jsx(Badge, { variant: application.status === 'hired' ? 'primary' : 'outline', children: application.status }), _jsx(Badge, { variant: "outline", children: ago(application.createdAt) })] })] }), Object.entries(application.answers)
|
|
17
30
|
.filter(([key]) => !['name', 'email'].includes(key))
|
|
18
|
-
.map(([key, value]) => (_jsxs("p", { class: "small", children: [_jsxs("strong", { children: [key, ":"] }), " ", value] }))), application.resume !== null && (_jsxs("details", { children: [_jsx("summary", { class: "small", children: "Resume" }), _jsx(Prose, { html: application.resume })] }))] }))))] }), _jsxs("details", { children: [_jsx("summary", { children: "The listing as it stands" }), _jsx(Prose, { html: html }), _jsxs("p", { class: "small muted", children: ["Machine readable at ", _jsxs("code", { children: [publicUrl, "/api/v1/jobs/", job.slug] })] })] })] }));
|
|
31
|
+
.map(([key, value]) => (_jsxs("p", { class: "small", children: [_jsxs("strong", { children: [key, ":"] }), " ", value] }))), application.resume !== null && (_jsxs("details", { children: [_jsx("summary", { class: "small", children: "Resume" }), _jsx(Prose, { html: application.resume })] })), _jsx("div", { class: "row", children: APPLICATION_DECISIONS.filter((decision) => decision !== application.status).map((decision) => (_jsxs("form", { method: "post", action: `/me/jobs/${job.slug}/applications/${application.id}/decision`, children: [_jsx("input", { type: "hidden", name: "status", value: decision }), _jsx("button", { class: "btn btn-secondary btn-sm", type: "submit", children: DECISION_VERBS[decision] })] }))) })] }))))] }), _jsxs("details", { children: [_jsx("summary", { children: "The listing as it stands" }), _jsx(Prose, { html: html }), _jsxs("p", { class: "small muted", children: ["Machine readable at ", _jsxs("code", { children: [publicUrl, "/api/v1/jobs/", job.slug] })] })] })] }));
|
|
19
32
|
export const NewEmployerPage = ({ error }) => (_jsx("div", { style: "max-width:32rem;margin:0 auto", children: _jsxs("div", { class: "stack", children: [_jsx("h1", { children: "Add an employer" }), _jsx("p", { class: "lede", children: "You post jobs under an employer, not under your own name." }), error !== undefined && _jsx(Alert, { variant: "error", children: error }), _jsx(Card, { children: _jsxs("form", { class: "stack", method: "post", action: "/me/employers/new", children: [_jsx(Field, { label: "Name", name: "name", children: _jsx("input", { class: "input", type: "text", id: "name", name: "name", required: true, maxlength: 120 }) }), _jsx(Field, { label: "Website", name: "website", children: _jsx("input", { class: "input", type: "url", id: "website", name: "website", placeholder: "https://" }) }), _jsx(Field, { label: "About", name: "description", hint: "Markdown.", children: _jsx("textarea", { class: "textarea", id: "description", name: "description" }) }), _jsx("button", { class: "btn btn-block", type: "submit", children: "Add employer" })] }) })] }) }));
|
|
20
33
|
//# sourceMappingURL=post.js.map
|
package/dist/views/post.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post.js","sourceRoot":"","sources":["../../src/views/post.tsx"],"names":[],"mappings":";AAMA,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,UAAU,
|
|
1
|
+
{"version":3,"file":"post.js","sourceRoot":"","sources":["../../src/views/post.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
-- The employer's half of the conversation.
|
|
2
|
+
--
|
|
3
|
+
-- `applications.status` has carried five values since 0001, but only two were
|
|
4
|
+
-- ever reachable: a candidate's draft became `new` on submit and stopped
|
|
5
|
+
-- there. `reviewing`, `rejected` and `hired` were declared, rendered as a
|
|
6
|
+
-- badge on the employer's page, and set by no code path in the web app, the
|
|
7
|
+
-- REST API, the CLI or the MCP server. An employer could read what came in
|
|
8
|
+
-- and could do nothing about it, so every applicant sat at `new` forever and
|
|
9
|
+
-- the badge told them nothing.
|
|
10
|
+
--
|
|
11
|
+
-- Two columns rather than one, because a decision that cannot be attributed
|
|
12
|
+
-- is not much of a record. An employer is a group: `memberships` can hold
|
|
13
|
+
-- several people, and "who moved this to rejected" is the first question
|
|
14
|
+
-- asked when one of them disagrees.
|
|
15
|
+
--
|
|
16
|
+
-- `decided_by` does not cascade with the user. Deleting an account should not
|
|
17
|
+
-- silently rewrite the history of a decision it made, so the reference is set
|
|
18
|
+
-- null instead and `decided_at` survives to say a decision happened.
|
|
19
|
+
|
|
20
|
+
alter table applications add column if not exists decided_at timestamptz;
|
|
21
|
+
alter table applications add column if not exists decided_by uuid references users (id) on delete set null;
|
|
22
|
+
|
|
23
|
+
-- Rows that already carry a decision predate this column. There are none on
|
|
24
|
+
-- any instance today, for the reason described above, but a backfill that is
|
|
25
|
+
-- a no-op is cheaper than an instance that disagrees with its own history.
|
|
26
|
+
update applications
|
|
27
|
+
set decided_at = created_at
|
|
28
|
+
where decided_at is null
|
|
29
|
+
and status in ('reviewing', 'rejected', 'hired');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@profullstack/agenticjobs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.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",
|