@profullstack/agenticjobs 0.12.0 → 0.14.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 +70 -1
- package/dist/cli/args.js +1 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/index.js +78 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/client/client.d.ts +44 -0
- package/dist/client/client.js +19 -0
- package/dist/client/client.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js +1 -1
- package/dist/core/agentwriter.js +22 -5
- package/dist/core/agentwriter.js.map +1 -1
- package/dist/core/applications.js +1 -1
- package/dist/core/applications.js.map +1 -1
- package/dist/core/import.js +10 -2
- package/dist/core/import.js.map +1 -1
- package/dist/core/jobs.d.ts +24 -6
- package/dist/core/jobs.js +116 -31
- package/dist/core/jobs.js.map +1 -1
- package/dist/core/recommendations.d.ts +134 -0
- package/dist/core/recommendations.js +356 -0
- package/dist/core/recommendations.js.map +1 -0
- package/dist/core/updates.d.ts +15 -3
- package/dist/core/updates.js +58 -24
- package/dist/core/updates.js.map +1 -1
- package/dist/core/zip.js +29 -4
- package/dist/core/zip.js.map +1 -1
- package/dist/directory/federate.js +3 -1
- package/dist/directory/federate.js.map +1 -1
- package/dist/directory/fetch.d.ts +1 -1
- package/dist/markup/markdown.js +2 -1
- package/dist/markup/markdown.js.map +1 -1
- package/dist/markup/resume.js +18 -5
- package/dist/markup/resume.js.map +1 -1
- package/dist/mcp/tools.js +99 -7
- package/dist/mcp/tools.js.map +1 -1
- package/dist/schema/index.d.ts +1 -0
- package/dist/schema/index.js +1 -0
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/instance.js +29 -0
- package/dist/schema/instance.js.map +1 -1
- package/dist/schema/job.d.ts +12 -0
- package/dist/schema/job.js +17 -3
- package/dist/schema/job.js.map +1 -1
- package/dist/schema/jsonld.js +7 -6
- package/dist/schema/jsonld.js.map +1 -1
- package/dist/schema/pay.d.ts +173 -0
- package/dist/schema/pay.js +668 -0
- package/dist/schema/pay.js.map +1 -0
- package/dist/server/app.js +3 -1
- package/dist/server/app.js.map +1 -1
- package/dist/server/middleware.d.ts +11 -1
- package/dist/server/middleware.js +18 -3
- package/dist/server/middleware.js.map +1 -1
- package/dist/server/routes/api.js +153 -7
- package/dist/server/routes/api.js.map +1 -1
- package/dist/server/routes/discovery.js +10 -8
- package/dist/server/routes/discovery.js.map +1 -1
- package/dist/server/routes/openapi.js +136 -2
- package/dist/server/routes/openapi.js.map +1 -1
- package/dist/server/routes/pages.js +155 -14
- package/dist/server/routes/pages.js.map +1 -1
- package/dist/tui/views.js +9 -3
- package/dist/tui/views.js.map +1 -1
- package/dist/views/candidates.d.ts +6 -0
- package/dist/views/candidates.js +2 -1
- package/dist/views/candidates.js.map +1 -1
- package/dist/views/inbox.js +6 -6
- package/dist/views/inbox.js.map +1 -1
- package/dist/views/jobs.d.ts +16 -0
- package/dist/views/jobs.js +33 -11
- package/dist/views/jobs.js.map +1 -1
- package/dist/views/layout.d.ts +22 -0
- package/dist/views/layout.js +18 -0
- package/dist/views/layout.js.map +1 -1
- package/dist/views/me.d.ts +7 -0
- package/dist/views/me.js +3 -2
- package/dist/views/me.js.map +1 -1
- package/dist/views/post.d.ts +18 -0
- package/dist/views/post.js +39 -7
- package/dist/views/post.js.map +1 -1
- package/dist/views/recommendations.d.ts +43 -0
- package/dist/views/recommendations.js +26 -0
- package/dist/views/recommendations.js.map +1 -0
- package/dist/views/updates.js +5 -5
- package/dist/views/updates.js.map +1 -1
- package/docs/openjob.md +63 -0
- package/migrations/0015_pay_lines.sql +38 -0
- package/migrations/0016_recommendations.sql +65 -0
- package/package.json +1 -1
- package/web/public/app.css +60 -5
- package/web/public/sw.js +1 -1
package/dist/views/jobs.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "hono/jsx/jsx-runtime";
|
|
2
|
-
import { ago
|
|
2
|
+
import { ago } from "../schema/text.js";
|
|
3
|
+
import { formatMethod, formatPayLine, formatPayShort, payOfJob, payStated } from "../schema/pay.js";
|
|
3
4
|
import { EMPTY_QUERY, queryToParams } from "../schema/query.js";
|
|
4
5
|
import { EMPLOYMENT_TYPES, SENIORITIES, WORKPLACES, AGENT_POLICIES } from "../schema/job.js";
|
|
5
|
-
import { AgentPolicyBadge, Alert, Badge, Card, Empty, Field, Prose } from "./layout.js";
|
|
6
|
+
import { AgentPolicyBadge, Alert, Badge, Card, Empty, Field, MARKDOWN_HINT, Markdown, Prose, } from "./layout.js";
|
|
7
|
+
import { toPlainText } from "../markup/markdown.js";
|
|
6
8
|
import { AuthorSocial } from "./updates.js";
|
|
9
|
+
import { RecommendationList, RecommendForm } from "./recommendations.js";
|
|
7
10
|
import { MessageButton } from "./inbox.js";
|
|
8
11
|
/**
|
|
9
12
|
* Where a tag points when there is no search to add it to.
|
|
@@ -100,7 +103,7 @@ export function activeFilters(query) {
|
|
|
100
103
|
* destination instead of one enormous link with the destinations buried in it.
|
|
101
104
|
*/
|
|
102
105
|
export const JobCard = ({ job, origin, instanceName, tags = [], query }) => {
|
|
103
|
-
const salary =
|
|
106
|
+
const salary = formatPayShort(payOfJob(job));
|
|
104
107
|
const href = origin === undefined ? `/jobs/${job.slug}` : `${origin}/jobs/${job.slug}`;
|
|
105
108
|
// Tags and stack are one row of badges to a reader, so they are deduplicated
|
|
106
109
|
// together rather than shown twice when a listing puts a word in both.
|
|
@@ -134,20 +137,39 @@ export const Pagination = ({ page, query, base = '/', }) => {
|
|
|
134
137
|
};
|
|
135
138
|
return (_jsxs("nav", { class: "pagination", "aria-label": "Pages", children: [query.offset > 0 && (_jsx("a", { class: "btn btn-secondary btn-sm", href: link(previous), children: "Previous" })), _jsxs("span", { class: "small muted", style: "align-self:center", children: [query.offset + 1, "-", Math.min(page.total, next), " of ", page.total] }), next < page.total && (_jsx("a", { class: "btn btn-secondary btn-sm", href: link(next), children: "Next" }))] }));
|
|
136
139
|
};
|
|
137
|
-
export const InstallStrip = ({ publicUrl }) => (_jsxs("div", { class: "install-strip", children: [_jsxs("div", { children: [_jsx("strong", { children: "Use it from a terminal." }), ' ', _jsx("span", { class: "muted small", children: "Search, apply and post without opening a page." })] }), _jsxs("pre", { class: "code-block install-line", children: ["curl -fsSL ", publicUrl, "/install.sh | sh"] }), _jsxs("p", { class: "small muted install-note", children: ["No root, nothing outside your home directory. Then",
|
|
138
|
-
export const JobList = ({ page, query, boardName, tagline, publicUrl }) => (_jsxs("div", { class: "stack", children: [_jsxs("div", { children: [_jsx("h1", { children: boardName }), _jsx("p", { class: "lede", children: tagline })] }), _jsx(Filters, { query: query }), activeFilters(query).length > 0 && (_jsxs("p", { class: "row", style: "align-items:center;flex-wrap:wrap;gap:.5rem", children: [_jsx("span", { class: "small muted", children: "Filtering by:" }), activeFilters(query).map((filter) => (_jsxs("a", { class: "badge", title: `Remove ${filter.label}`, href: filter.href, children: [filter.label, " x"] }))), _jsx("a", { class: "small", href: "/", children: "Clear" }), _jsx("a", { class: "small", href: feedHref(query), children: "Subscribe" })] })), _jsx(InstallStrip, { publicUrl: publicUrl }), page.items.length === 0 ? (_jsxs(Empty, { children: [_jsx("p", { children: "Nothing matches that yet." }), _jsx("p", { class: "small", children: "This board only shows jobs posted to it, so an empty result means nobody has posted one like that - not that the search failed." })] })) : (_jsx("ul", { class: "job-list", children: page.items.map((job) => (_jsx(JobCard, { job: job, tags: query.tags, query: query }))) })), _jsx(Pagination, { page: page, query: query }), _jsxs("p", { class: "small muted", children: ["This search is a feed: ", _jsx("a", { href: "/feed", children: "/feed" }), ", and ", _jsx("code", { children: "/feed?tags=react,go" }), " for any set of tags. People are at ", _jsx("a", { href: "/candidates", children: "/candidates" }), ", with", ' ', _jsx("a", { href: "/candidates/feed", children: "/candidates/feed" }), ". What everyone is up to between listings is at
|
|
140
|
+
export const InstallStrip = ({ publicUrl }) => (_jsxs("div", { class: "install-strip", children: [_jsxs("div", { children: [_jsx("strong", { children: "Use it from a terminal." }), ' ', _jsx("span", { class: "muted small", children: "Search, apply and post without opening a page." })] }), _jsxs("pre", { class: "code-block install-line", children: ["curl -fsSL ", publicUrl, "/install.sh | sh"] }), _jsxs("p", { class: "small muted install-note", children: ["No root, nothing outside your home directory. Then ", _jsx("code", { children: "agenticjobs signup" }), ". Updating is ", _jsx("code", { children: "agenticjobs update" }), " and removing is ", _jsx("code", { children: "agenticjobs uninstall" }), ".", ' ', _jsx("a", { href: "/docs", children: "What it installs" }), "."] })] }));
|
|
141
|
+
export const JobList = ({ page, query, boardName, tagline, publicUrl }) => (_jsxs("div", { class: "stack", children: [_jsxs("div", { children: [_jsx("h1", { children: boardName }), _jsx("p", { class: "lede", children: tagline })] }), _jsx(Filters, { query: query }), activeFilters(query).length > 0 && (_jsxs("p", { class: "row", style: "align-items:center;flex-wrap:wrap;gap:.5rem", children: [_jsx("span", { class: "small muted", children: "Filtering by:" }), activeFilters(query).map((filter) => (_jsxs("a", { class: "badge", title: `Remove ${filter.label}`, href: filter.href, children: [filter.label, " x"] }))), _jsx("a", { class: "small", href: "/", children: "Clear" }), _jsx("a", { class: "small", href: feedHref(query), children: "Subscribe" })] })), _jsx(InstallStrip, { publicUrl: publicUrl }), page.items.length === 0 ? (_jsxs(Empty, { children: [_jsx("p", { children: "Nothing matches that yet." }), _jsx("p", { class: "small", children: "This board only shows jobs posted to it, so an empty result means nobody has posted one like that - not that the search failed." })] })) : (_jsx("ul", { class: "job-list", children: page.items.map((job) => (_jsx(JobCard, { job: job, tags: query.tags, query: query }))) })), _jsx(Pagination, { page: page, query: query }), _jsxs("p", { class: "small muted", children: ["This search is a feed: ", _jsx("a", { href: "/feed", children: "/feed" }), ", and ", _jsx("code", { children: "/feed?tags=react,go" }), " for any set of tags. People are at ", _jsx("a", { href: "/candidates", children: "/candidates" }), ", with", ' ', _jsx("a", { href: "/candidates/feed", children: "/candidates/feed" }), ". What everyone is up to between listings is at", ' ', _jsx("a", { href: "/updates", children: "/updates" }), "."] })] }));
|
|
139
142
|
export const JobDetail = ({ job, html, publicUrl, applied, problems, values, signedIn, resumes, message }) => {
|
|
140
|
-
const
|
|
141
|
-
|
|
143
|
+
const pay = payOfJob(job);
|
|
144
|
+
const salary = formatPayShort(pay);
|
|
145
|
+
return (_jsxs("div", { class: "grid-2", children: [_jsxs("article", { class: "stack", children: [_jsxs("div", { children: [_jsx("h1", { children: job.title }), _jsxs("p", { class: "lede", children: [_jsx("a", { href: `/employers/${job.org.slug}`, children: job.org.name }), job.location !== null && ` - ${job.location}`] })] }), _jsxs("div", { class: "job-meta", children: [_jsx("a", { class: "badge badge-outline", href: facetHref(undefined, { workplace: job.workplace }), children: job.workplace }), _jsx("a", { class: "badge badge-outline", href: facetHref(undefined, { employmentType: job.employmentType }), children: job.employmentType }), job.seniority !== null && (_jsx("a", { class: "badge badge-outline", href: facetHref(undefined, { seniority: job.seniority }), children: job.seniority })), _jsx("a", { class: "badge-plain", href: facetHref(undefined, { agentPolicy: job.agentPolicy }), children: _jsx(AgentPolicyBadge, { policy: job.agentPolicy }) }), salary !== null ? (_jsx(Badge, { variant: "primary", children: salary })) : (_jsx(Badge, { variant: "outline", children: "Pay not listed" }))] }), _jsx(Prose, { html: html }), job.requirements.length > 0 && (_jsxs("section", { children: [_jsx("h2", { children: "What they are asking for" }), _jsx("ul", { children: job.requirements.map((item) => (_jsx("li", { children: item }))) })] })), job.responsibilities.length > 0 && (_jsxs("section", { children: [_jsx("h2", { children: "What you would do" }), _jsx("ul", { children: job.responsibilities.map((item) => (_jsx("li", { children: item }))) })] })), (job.stack.length > 0 || job.tags.length > 0) && (_jsxs("section", { children: [_jsx("h2", { children: "Stack and tags" }), _jsx("p", { class: "small muted", children: "Each one finds the other jobs asking for it." }), _jsx("div", { class: "row", style: "flex-wrap:wrap;gap:.35rem", children: [...job.stack, ...job.tags]
|
|
142
146
|
.filter((item, index, all) => all.findIndex((other) => other.toLowerCase() === item.toLowerCase()) === index)
|
|
143
|
-
.map((item) => (_jsx("a", { class: "badge", href: jobTagHref([item]), children: item }))) })] })), _jsxs("div", { id: "apply", children: [_jsx("h2", { children: "Apply" }), applied === true ? (_jsxs(Alert, { variant: "success", children: [_jsx("strong", { children: "Sent." }), " ", job.org.name, " has your application."] })) : (_jsx(ApplyForm, { job: job, problems: problems ?? [], values: values ?? {}, signedIn: signedIn, resumes: resumes ?? [] }))] })] }), _jsxs("aside", { class: "stack", children: [_jsxs(Card, { children: [_jsxs("div", { class: "card-header", children: [_jsx("h2", { class: "card-title", children: "For agents" }), _jsx("p", { class: "card-description", children: "This job is machine readable. No scraping, no rendering." })] }), _jsx("p", { class: "small muted", children: "The form above, as data:" }), _jsxs("pre", { class: "code-block", children: ["GET ", publicUrl, "/api/v1/jobs/", job.slug, "/apply-schema"] }), _jsx("p", { class: "small muted", children: "Or over MCP, with the board connected:" }), _jsxs("pre", { class: "code-block", children: ["apply_to_job(slug: \"", job.slug, "\")"] }), _jsxs("p", { class: "small muted", children: ["Policy on this listing: ", _jsx("strong", { children: job.agentPolicy }), "."] })] }), _jsxs(Card, { children: [_jsx("div", { class: "card-header", children: _jsx("h2", { class: "card-title", children: job.org.name }) }), job.org.description !== null && _jsx(
|
|
147
|
+
.map((item) => (_jsx("a", { class: "badge", href: jobTagHref([item]), children: item }))) })] })), _jsxs("div", { id: "apply", children: [_jsx("h2", { children: "Apply" }), applied === true ? (_jsxs(Alert, { variant: "success", children: [_jsx("strong", { children: "Sent." }), " ", job.org.name, " has your application."] })) : (_jsx(ApplyForm, { job: job, problems: problems ?? [], values: values ?? {}, signedIn: signedIn, resumes: resumes ?? [] }))] })] }), _jsxs("aside", { class: "stack", children: [_jsx(PayCard, { job: job }), _jsxs(Card, { children: [_jsxs("div", { class: "card-header", children: [_jsx("h2", { class: "card-title", children: "For agents" }), _jsx("p", { class: "card-description", children: "This job is machine readable. No scraping, no rendering." })] }), _jsx("p", { class: "small muted", children: "The form above, as data:" }), _jsxs("pre", { class: "code-block", children: ["GET ", publicUrl, "/api/v1/jobs/", job.slug, "/apply-schema"] }), _jsx("p", { class: "small muted", children: "Or over MCP, with the board connected:" }), _jsxs("pre", { class: "code-block", children: ["apply_to_job(slug: \"", job.slug, "\")"] }), _jsxs("p", { class: "small muted", children: ["Policy on this listing: ", _jsx("strong", { children: job.agentPolicy }), "."] })] }), _jsxs(Card, { children: [_jsx("div", { class: "card-header", children: _jsx("h2", { class: "card-title", children: job.org.name }) }), job.org.description !== null && (_jsx(Markdown, { source: job.org.description, class: "prose-compact small" })), message !== undefined && (_jsxs("p", { children: [_jsx(MessageButton, { ...message }), ' ', _jsx("span", { class: "small muted", children: "A question about the role, privately." })] })), job.org.website !== null && (_jsx("p", { class: "small", children: _jsx("a", { href: job.org.website, rel: "nofollow noopener", children: job.org.website.replace(/^https?:\/\//, '') }) })), _jsxs("p", { class: "small muted", children: ["Posted ", ago(job.publishedAt)] })] })] })] }));
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* What it pays, every line of it.
|
|
151
|
+
*
|
|
152
|
+
* The badge in the header has room for one line; a listing that pays per
|
|
153
|
+
* task, per pull request and per post has three, and the reader deciding
|
|
154
|
+
* whether to apply needs all of them, plus what it is settled in. "Not
|
|
155
|
+
* listed" is printed rather than the card being left out, because on this
|
|
156
|
+
* board that is a fact about the employer and not a gap in the page.
|
|
157
|
+
*/
|
|
158
|
+
export const PayCard = ({ job }) => {
|
|
159
|
+
const pay = payOfJob(job);
|
|
160
|
+
const method = formatMethod(pay.method);
|
|
161
|
+
return (_jsxs(Card, { children: [_jsx("div", { class: "card-header", children: _jsx("h2", { class: "card-title", children: "Pay" }) }), pay.unpaid ? (_jsx("p", { class: "small", children: "Unpaid. The employer says so, which is different from not saying." })) : !payStated(pay) ? (_jsx("p", { class: "small muted", children: "Not listed." })) : (_jsx("ul", { class: "stack-sm pay-lines", children: pay.lines.map((line) => (_jsx("li", { children: formatPayLine(line) }))) })), method !== null && _jsxs("p", { class: "small muted", children: [method, "."] }), pay.equity !== null && _jsxs("p", { class: "small muted", children: ["Equity: ", pay.equity, "."] })] }));
|
|
144
162
|
};
|
|
145
163
|
const ApplyForm = ({ job, problems, values, signedIn, resumes }) => {
|
|
146
164
|
const errorFor = (name) => problems.find((problem) => problem.field === name)?.message;
|
|
147
|
-
return (_jsxs("form", { class: "stack", method: "post", action: `/jobs/${job.slug}/apply`, novalidate: true, children: [problems.length > 0 && (_jsx(Alert, { variant: "error", children: problems.length === 1
|
|
165
|
+
return (_jsxs("form", { class: "stack", method: "post", action: `/jobs/${job.slug}/apply`, novalidate: true, children: [problems.length > 0 && (_jsx(Alert, { variant: "error", children: problems.length === 1
|
|
166
|
+
? 'One answer needs fixing.'
|
|
167
|
+
: `${problems.length} answers need fixing.` })), job.apply.schema.fields.map((field) => (_jsx(Field, { label: field.label, name: field.name, hint: field.type === 'textarea'
|
|
168
|
+
? [field.help, MARKDOWN_HINT].filter((part) => part !== undefined).join(' ')
|
|
169
|
+
: field.help, error: errorFor(field.name), children: field.type === 'textarea' ? (_jsx("textarea", { class: "textarea", id: field.name, name: field.name, required: field.required, maxlength: field.maxLength, children: values[field.name] ?? '' })) : field.type === 'select' ? (_jsxs("select", { class: "select", id: field.name, name: field.name, required: field.required, children: [_jsx("option", { value: "", children: "Choose one" }), (field.options ?? []).map((option) => (_jsx("option", { value: option, selected: values[field.name] === option, children: option })))] })) : (_jsx("input", { class: "input", type: field.type === 'file' ? 'text' : field.type, id: field.name, name: field.name, value: values[field.name] ?? '', required: field.required, maxlength: field.maxLength })) }))), _jsxs(Field, { label: "Resume", name: "resume", hint: "Markdown, in the OpenResume.md convention. Paste it, or pick one you have saved.", error: errorFor('resume'), children: [signedIn && resumes.length > 0 && (_jsxs("select", { class: "select", name: "resumeSlug", style: "margin-bottom:.5rem", children: [_jsx("option", { value: "", children: "Paste one below instead" }), resumes.map((resume) => (_jsx("option", { value: resume.slug, children: resume.title })))] })), _jsx("textarea", { class: "textarea code", id: "resume", name: "resume", placeholder: "# Your Name", children: values['resume'] ?? '' })] }), job.agentPolicy !== 'human-only' && (_jsxs("fieldset", { children: [_jsx("legend", { children: "Did an agent write this?" }), _jsx("p", { class: "hint", style: "margin-top:0", children: job.agentPolicy === 'disclose'
|
|
148
170
|
? 'This employer asks you to say so. Saying so is not held against you; not saying so is.'
|
|
149
171
|
: 'This employer is fine either way. Answer if you like.' }), _jsx(Field, { label: "Which agent", name: "agent.name", children: _jsx("input", { class: "input", type: "text", id: "agent.name", name: "agent.name", value: values['agent.name'] ?? '', placeholder: "e.g. claude-opus-5 via agenticjobs-mcp" }) }), _jsxs("label", { class: "row small", style: "margin-top:.5rem", children: [_jsx("input", { type: "checkbox", name: "agent.supervised", value: "true" }), "A person read it before it was sent"] })] })), _jsx("button", { class: "btn btn-block", type: "submit", children: "Send application" })] }));
|
|
150
172
|
};
|
|
151
|
-
export const EmployerList = ({ orgs }) => (_jsxs("div", { class: "stack", children: [_jsx("h1", { children: "Employers" }), _jsx("p", { class: "lede", children: "Everyone with an open listing on this board." }), orgs.length === 0 ? (_jsx(Empty, { children: "No employers with open listings yet." })) : (_jsx("ul", { class: "job-list", children: orgs.map((org) => (_jsx("li", { children: _jsxs("a", { class: "card card-link", href: `/employers/${org.slug}`, children: [_jsx("h2", { class: "card-title", children: org.name }), org.description !== null && _jsx("p", { class: "card-description", children: org.description })] }) }))) }))] }));
|
|
152
|
-
export const EmployerDetail = ({ org, page, query, social }) => (_jsxs("div", { class: "stack", children: [_jsxs("div", { children: [_jsx("h1", { children: org.name }), org.website !== null && (_jsx("p", { class: "lede", children: _jsx("a", { href: org.website, rel: "nofollow noopener", children: org.website.replace(/^https?:\/\//, '') }) }))] }), org.description !== null && _jsx(
|
|
173
|
+
export const EmployerList = ({ orgs }) => (_jsxs("div", { class: "stack", children: [_jsx("h1", { children: "Employers" }), _jsx("p", { class: "lede", children: "Everyone with an open listing on this board." }), orgs.length === 0 ? (_jsx(Empty, { children: "No employers with open listings yet." })) : (_jsx("ul", { class: "job-list", children: orgs.map((org) => (_jsx("li", { children: _jsxs("a", { class: "card card-link", href: `/employers/${org.slug}`, children: [_jsx("h2", { class: "card-title", children: org.name }), org.description !== null && (_jsx("p", { class: "card-description", children: toPlainText(org.description, 200) }))] }) }))) }))] }));
|
|
174
|
+
export const EmployerDetail = ({ org, page, query, social, recommendations = [], recommend = null }) => (_jsxs("div", { class: "stack", children: [_jsxs("div", { children: [_jsx("h1", { children: org.name }), org.website !== null && (_jsx("p", { class: "lede", children: _jsx("a", { href: org.website, rel: "nofollow noopener", children: org.website.replace(/^https?:\/\//, '') }) }))] }), org.description !== null && _jsx(Markdown, { source: org.description, headingOffset: 1, images: true }), social !== undefined && _jsx(AuthorSocial, { ...social }), _jsx(RecommendationList, { items: recommendations, about: org.name }), recommend !== null && _jsx(RecommendForm, { ...recommend }), _jsxs("h2", { children: [page.total, " open ", page.total === 1 ? 'role' : 'roles'] }), page.items.length === 0 ? (_jsx(Empty, { children: "Nothing open right now." })) : (_jsx("ul", { class: "job-list", children: page.items.map((job) => (_jsx(JobCard, { job: job }))) })), _jsx(Pagination, { page: page, query: query, base: `/employers/${org.slug}` })] }));
|
|
153
175
|
//# sourceMappingURL=jobs.js.map
|
package/dist/views/jobs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/views/jobs.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/views/jobs.tsx"],"names":[],"mappings":"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"}
|
package/dist/views/layout.d.ts
CHANGED
|
@@ -30,6 +30,28 @@ export declare const Prose: FC<{
|
|
|
30
30
|
html: string;
|
|
31
31
|
class?: string;
|
|
32
32
|
}>;
|
|
33
|
+
/** The hint under every box that takes prose. One wording, so it reads as one rule. */
|
|
34
|
+
export declare const MARKDOWN_HINT = "Plain text or Markdown.";
|
|
35
|
+
/**
|
|
36
|
+
* Something a person typed, rendered as Markdown.
|
|
37
|
+
*
|
|
38
|
+
* Every content box on the board takes plain text or Markdown, and this is
|
|
39
|
+
* the one way either is shown. Plain text comes out as it went in: a line
|
|
40
|
+
* break stays a line break and a blank line starts a paragraph, so a pasted
|
|
41
|
+
* email reads as it was written. Markdown gets its lists, links and emphasis.
|
|
42
|
+
* Nothing typed ever becomes a tag; the renderer escapes before it marks up.
|
|
43
|
+
*
|
|
44
|
+
* Headings are pushed down two levels by default because these bodies sit
|
|
45
|
+
* inside a page that already has its h1 and h2. Images are off by default
|
|
46
|
+
* because most of these are read by strangers, and an image is a request to a
|
|
47
|
+
* server the author chose.
|
|
48
|
+
*/
|
|
49
|
+
export declare const Markdown: FC<{
|
|
50
|
+
source: string;
|
|
51
|
+
class?: string;
|
|
52
|
+
headingOffset?: number;
|
|
53
|
+
images?: boolean;
|
|
54
|
+
}>;
|
|
33
55
|
export declare const Card: FC<PropsWithChildren<{
|
|
34
56
|
class?: string;
|
|
35
57
|
id?: string;
|
package/dist/views/layout.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "hono/jsx/jsx-runtime";
|
|
2
2
|
import { raw } from 'hono/html';
|
|
3
3
|
import { jsonForScript } from "../markup/escape.js";
|
|
4
|
+
import { renderMarkdown } from "../markup/markdown.js";
|
|
4
5
|
export const Layout = (props) => {
|
|
5
6
|
const { title, description, viewer, boardName, publicUrl, path, jsonld, canonical, noindex, isDirectory, unread = 0, children, } = props;
|
|
6
7
|
const full = title === boardName ? title : `${title} - ${boardName}`;
|
|
@@ -13,6 +14,23 @@ export const Layout = (props) => {
|
|
|
13
14
|
};
|
|
14
15
|
/** Rendered Markdown. The only place already-escaped HTML enters a page. */
|
|
15
16
|
export const Prose = ({ html, class: className }) => (_jsx("div", { class: className === undefined ? 'prose' : `prose ${className}`, children: raw(html) }));
|
|
17
|
+
/** The hint under every box that takes prose. One wording, so it reads as one rule. */
|
|
18
|
+
export const MARKDOWN_HINT = 'Plain text or Markdown.';
|
|
19
|
+
/**
|
|
20
|
+
* Something a person typed, rendered as Markdown.
|
|
21
|
+
*
|
|
22
|
+
* Every content box on the board takes plain text or Markdown, and this is
|
|
23
|
+
* the one way either is shown. Plain text comes out as it went in: a line
|
|
24
|
+
* break stays a line break and a blank line starts a paragraph, so a pasted
|
|
25
|
+
* email reads as it was written. Markdown gets its lists, links and emphasis.
|
|
26
|
+
* Nothing typed ever becomes a tag; the renderer escapes before it marks up.
|
|
27
|
+
*
|
|
28
|
+
* Headings are pushed down two levels by default because these bodies sit
|
|
29
|
+
* inside a page that already has its h1 and h2. Images are off by default
|
|
30
|
+
* because most of these are read by strangers, and an image is a request to a
|
|
31
|
+
* server the author chose.
|
|
32
|
+
*/
|
|
33
|
+
export const Markdown = ({ source, class: className, headingOffset = 2, images = false }) => (_jsx(Prose, { html: renderMarkdown(source, { headingOffset, noImages: !images }), class: className }));
|
|
16
34
|
export const Card = ({ class: className, id, hidden, children, }) => (_jsx("div", { class: className === undefined ? 'card' : `card ${className}`, id: id, hidden: hidden, children: children }));
|
|
17
35
|
export const Alert = ({ variant = 'info', children }) => (_jsx("div", { class: `alert alert-${variant}`, role: variant === 'error' ? 'alert' : undefined, children: children }));
|
|
18
36
|
export const Badge = ({ variant, class: className, children, }) => (_jsx("span", { class: ['badge', variant ? `badge-${variant}` : '', className ?? ''].filter(Boolean).join(' '), children: children }));
|
package/dist/views/layout.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/views/layout.tsx"],"names":[],"mappings":";AAUA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/views/layout.tsx"],"names":[],"mappings":"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"}
|
package/dist/views/me.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import type { Job, Organisation } from '../schema/index.ts';
|
|
|
7
7
|
import type { Resume } from '../core/resumes.ts';
|
|
8
8
|
import type { Viewer } from '../core/auth.ts';
|
|
9
9
|
import type { Following, Update } from '../core/updates.ts';
|
|
10
|
+
import type { Recommendation } from '../core/recommendations.ts';
|
|
10
11
|
export declare const MePage: FC<PropsWithChildren<{
|
|
11
12
|
viewer: Viewer;
|
|
12
13
|
orgs: Organisation[];
|
|
@@ -28,6 +29,12 @@ export declare const MePage: FC<PropsWithChildren<{
|
|
|
28
29
|
*/
|
|
29
30
|
candidateSlug: string | null;
|
|
30
31
|
updateMax: number;
|
|
32
|
+
/** About you and your employers, and what you wrote about others. */
|
|
33
|
+
recommendations?: {
|
|
34
|
+
received: Recommendation[];
|
|
35
|
+
given: Recommendation[];
|
|
36
|
+
error?: string;
|
|
37
|
+
};
|
|
31
38
|
}>>;
|
|
32
39
|
export declare const ResumeEditor: FC<{
|
|
33
40
|
resume: Resume | null;
|
package/dist/views/me.js
CHANGED
|
@@ -2,9 +2,10 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "hono/jsx/jsx-
|
|
|
2
2
|
import { ago } from "../schema/text.js";
|
|
3
3
|
import { Alert, Badge, Card, Empty, Field, Prose } from "./layout.js";
|
|
4
4
|
import { UpdateComposer, UpdateList } from "./updates.js";
|
|
5
|
-
|
|
5
|
+
import { RecommendationsSection } from "./recommendations.js";
|
|
6
|
+
export const MePage = ({ viewer, orgs, jobs, resumes, applications, updates, following, candidateSlug, updateMax, recommendations = { received: [], given: [] }, children, }) => (_jsxs("div", { class: "stack", children: [_jsxs("div", { children: [_jsx("h1", { children: "You" }), _jsx("p", { class: "lede", children: viewer.email })] }), _jsxs("section", { class: "stack", children: [_jsxs("div", { class: "spread", children: [_jsx("h2", { children: "Resumes" }), _jsx("a", { class: "btn btn-sm", href: "/me/resumes/new", children: "New resume" })] }), _jsx("p", { class: "small muted", children: "Markdown, in the OpenResume.md convention. Upload a PDF or a Word file and it is converted for you; what you keep is the Markdown." }), resumes.length === 0 ? (_jsx(Empty, { children: "No resumes yet." })) : (_jsx("ul", { class: "job-list", children: resumes.map((resume) => (_jsx("li", { children: _jsxs("a", { class: "card card-link", href: `/me/resumes/${resume.slug}`, children: [_jsxs("div", { class: "spread", children: [_jsx("h3", { class: "card-title", children: resume.title }), _jsx(Badge, { variant: resume.visibility === 'private' ? 'outline' : 'primary', children: resume.visibility })] }), _jsxs("p", { class: "small muted", children: ["Updated ", ago(resume.updatedAt), resume.sourceName !== null && ` - from ${resume.sourceName}`] })] }) }))) }))] }), _jsxs("section", { class: "stack", children: [_jsx("h2", { children: "Updates" }), candidateSlug === null ? (_jsx("p", { class: "small muted", children: "Publish a resume and you can post updates as yourself: what you shipped, when you are free next. They appear on your candidate page and in the board's feed." })) : (_jsxs(_Fragment, { children: [_jsx(UpdateComposer, { action: "/me/updates", as: viewer.name ?? viewer.email, max: updateMax }), updates.length > 0 && _jsx(UpdateList, { updates: updates, showAuthor: false })] })), following.length > 0 && (_jsxs("p", { class: "small muted", children: ["You follow", ' ', following.map((entry, index) => (_jsxs(_Fragment, { children: [index > 0 && ', ', entry.slug === null ? (entry.name) : (_jsx("a", { href: entry.kind === 'employer'
|
|
6
7
|
? `/employers/${entry.slug}`
|
|
7
|
-
: `/candidates/${entry.slug}`, children: entry.name }))] }))), ". ", _jsx("a", { href: "/updates", children: "
|
|
8
|
+
: `/candidates/${entry.slug}`, children: entry.name }))] }))), ". ", _jsx("a", { href: "/updates", children: "Read their updates" }), "."] }))] }), _jsx(RecommendationsSection, { received: recommendations.received, given: recommendations.given, ...(recommendations.error === undefined ? {} : { error: recommendations.error }) }), _jsxs("section", { class: "stack", children: [_jsxs("div", { class: "spread", children: [_jsx("h2", { children: "Employers" }), _jsx("a", { class: "btn btn-sm btn-secondary", href: "/me/employers/new", children: "Add an employer" })] }), orgs.length === 0 ? (_jsx(Empty, { children: "You cannot post a job until you add the employer it is for." })) : (_jsx("div", { class: "row", children: orgs.map((org) => (_jsx("a", { class: "badge badge-primary", href: `/employers/${org.slug}`, children: org.name }))) }))] }), _jsxs("section", { class: "stack", children: [_jsxs("div", { class: "spread", children: [_jsx("h2", { children: "Your listings" }), orgs.length > 0 && (_jsx("a", { class: "btn btn-sm", href: "/post", children: "Post a job" }))] }), jobs.length === 0 ? (_jsx(Empty, { children: "Nothing posted yet." })) : (_jsx("ul", { class: "job-list", children: jobs.map((job) => (_jsx("li", { children: _jsxs("a", { class: "card card-link", href: `/me/jobs/${job.slug}`, children: [_jsxs("div", { class: "spread", children: [_jsx("h3", { class: "card-title", children: job.title }), _jsx(Badge, { variant: job.status === 'published' ? 'primary' : 'outline', children: job.status })] }), _jsxs("p", { class: "small muted", children: [job.org.name, " - ", job.status === 'published' ? ago(job.publishedAt) : 'not live'] })] }) }))) }))] }), _jsxs("section", { class: "stack", children: [_jsx("h2", { children: "Applications you have sent" }), applications.length === 0 ? (_jsx(Empty, { children: "None yet." })) : (_jsx("ul", { class: "job-list", children: applications.map((application) => (_jsx("li", { children: _jsxs("a", { class: "card card-link", href: `/jobs/${application.jobSlug}`, children: [_jsxs("div", { class: "spread", children: [_jsx("h3", { class: "card-title", children: application.jobTitle }), _jsx(Badge, { variant: "outline", children: application.status })] }), _jsxs("p", { class: "small muted", children: ["Sent ", ago(application.createdAt)] })] }) }))) }))] }), _jsxs(Card, { children: [_jsxs("div", { class: "card-header", children: [_jsx("h2", { class: "card-title", children: "Terminals and agents" }), _jsxs("p", { class: "card-description", children: [_jsx("code", { children: "agenticjobs login" }), " asks this board for a code; approve it at", ' ', _jsx("a", { href: "/device", children: "/device" }), ". A terminal token can read and apply, and is never an administrator."] })] }), _jsx("button", { class: "btn btn-secondary btn-sm", type: "button", id: "passkey-add", hidden: true, children: "Add a passkey to this account" }), _jsx("p", { class: "small error-text", id: "passkey-add-error", hidden: true }), _jsx("form", { method: "post", action: "/logout", style: "margin-top:.75rem", children: _jsx("button", { class: "btn btn-ghost btn-sm", type: "submit", children: "Sign out of this browser" }) })] }), children] }));
|
|
8
9
|
export const ResumeEditor = ({ resume, html, warnings, error, saved }) => (
|
|
9
10
|
/*
|
|
10
11
|
* The preview sits below the editor, not beside it.
|
package/dist/views/me.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"me.js","sourceRoot":"","sources":["../../src/views/me.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,aAAc,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAe,CAAC;AAG3D,MAAM,CAAC,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"me.js","sourceRoot":"","sources":["../../src/views/me.tsx"],"names":[],"mappings":"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"}
|
package/dist/views/post.d.ts
CHANGED
|
@@ -20,6 +20,24 @@ export declare const ManageJobPage: FC<{
|
|
|
20
20
|
resumeTitle: string | null;
|
|
21
21
|
})[];
|
|
22
22
|
publicUrl: string;
|
|
23
|
+
/** Why the last publish or pay change was refused, shown where it happened. */
|
|
24
|
+
error?: string;
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* The pay fields, shared by the post form and the manage page.
|
|
28
|
+
*
|
|
29
|
+
* One line per price, typed the way it is said: "$120k - $150k a year",
|
|
30
|
+
* "$0.25 per task", "0.01 SOL per PR that fixes a bug", "10% revenue share".
|
|
31
|
+
* A textarea rather than four inputs and a select, because the old four
|
|
32
|
+
* could describe exactly one salary range and nothing this board is for.
|
|
33
|
+
*
|
|
34
|
+
* `values` may carry the old flat fields (an agent draft, a re-rendered
|
|
35
|
+
* form): they are folded into the text so nothing typed is lost.
|
|
36
|
+
*/
|
|
37
|
+
export declare const PayFields: FC<{
|
|
38
|
+
values: Record<string, string>;
|
|
39
|
+
/** Without the fieldset and its legend, for a card that already has a title. */
|
|
40
|
+
bare?: boolean;
|
|
23
41
|
}>;
|
|
24
42
|
export declare const NewEmployerPage: FC<{
|
|
25
43
|
error?: string;
|
package/dist/views/post.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "hono/jsx/jsx-runtime";
|
|
2
|
-
import { AGENT_POLICIES, APPLICATION_DECISIONS, EMPLOYMENT_TYPES,
|
|
2
|
+
import { AGENT_POLICIES, APPLICATION_DECISIONS, EMPLOYMENT_TYPES, SENIORITIES, WORKPLACES, } from "../schema/job.js";
|
|
3
|
+
import { PAYMENT_COINS, PAYMENT_RAILS, PAY_LINE_EXAMPLES, formatPay, formatMethod, normalisePay, payOfJob, payStated, payToText, } from "../schema/pay.js";
|
|
3
4
|
import { ago } from "../schema/text.js";
|
|
4
|
-
import { Alert, Badge, Card, Empty, Field, Prose } from "./layout.js";
|
|
5
|
-
export const PostJobPage = ({ orgs, error, values = {}, canDraft = false, brief = '' }) => (_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(_Fragment, { children: [canDraft && (_jsxs("form", { class: "stack-sm", method: "post", action: "/post/draft", children: [_jsx(Field, { label: "Write it with an agent", name: "brief", hint: "A sentence or two is enough. It fills the form in below and posts nothing: you read and edit every field, and it still stays a draft after that.", children: _jsx("textarea", { class: "textarea", id: "brief", name: "brief", rows: 3, placeholder: "Senior Go engineer, remote in European timezones, to own our payments service.", children: brief }) }), _jsxs("div", { class: "row", children: [_jsx("button", { class: "btn btn-secondary", type: "submit", children: "Draft it" }), _jsx("span", { class: "small muted", children: "It will not invent a salary. Pay comes from what you write here, or stays empty." })] })] })), _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:
|
|
5
|
+
import { Alert, Badge, Card, Empty, Field, MARKDOWN_HINT, Markdown, Prose } from "./layout.js";
|
|
6
|
+
export const PostJobPage = ({ orgs, error, values = {}, canDraft = false, brief = '' }) => (_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(_Fragment, { children: [canDraft && (_jsxs("form", { class: "stack-sm", method: "post", action: "/post/draft", children: [_jsx(Field, { label: "Write it with an agent", name: "brief", hint: "A sentence or two is enough. It fills the form in below and posts nothing: you read and edit every field, and it still stays a draft after that.", children: _jsx("textarea", { class: "textarea", id: "brief", name: "brief", rows: 3, placeholder: "Senior Go engineer, remote in European timezones, to own our payments service.", children: brief }) }), _jsxs("div", { class: "row", children: [_jsx("button", { class: "btn btn-secondary", type: "submit", children: "Draft it" }), _jsx("span", { class: "small muted", children: "It will not invent a salary. Pay comes from what you write here, or stays empty." })] })] })), _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_HINT} 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'] ?? '' }) }), _jsx(PayFields, { values: values }), _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" })] }) })] }));
|
|
6
7
|
const POLICY_LABEL = {
|
|
7
8
|
welcome: 'Agents welcome',
|
|
8
9
|
disclose: 'Agents, if disclosed',
|
|
@@ -26,8 +27,39 @@ const DECISION_VERBS = {
|
|
|
26
27
|
rejected: 'Reject',
|
|
27
28
|
hired: 'Hire',
|
|
28
29
|
};
|
|
29
|
-
export const ManageJobPage = ({ job, html, applications, publicUrl
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
export const ManageJobPage = ({ job, html, applications, publicUrl, error }) => {
|
|
31
|
+
const pay = payOfJob(job);
|
|
32
|
+
return (_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 }), formatPay(pay) !== null && (_jsxs(_Fragment, { children: [' ', "- ", formatPay(pay), formatMethod(pay.method) !== null &&
|
|
33
|
+
`, ${formatMethod(pay.method)?.toLowerCase()}`] }))] })] }), _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" }) })] })) })] }), error !== undefined && _jsx(Alert, { variant: "error", children: error }), 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." })), !payStated(pay) && (_jsxs(Alert, { variant: "warning", children: [_jsx("strong", { children: "This listing does not say what it pays." }), ' ', job.status === 'published'
|
|
34
|
+
? 'It is live, but pay is now required, so say it below.'
|
|
35
|
+
: 'It cannot be published until it does.'] })), _jsxs(Card, { id: "pay", children: [_jsxs("div", { class: "card-header", children: [_jsx("h2", { class: "card-title", children: "Pay" }), _jsx("p", { class: "card-description", children: "Required to publish. Change it here without rewriting the rest of the listing." })] }), _jsxs("form", { class: "stack-sm", method: "post", action: `/me/jobs/${job.slug}/pay`, children: [_jsx(PayFields, { values: {
|
|
36
|
+
pay: payToText(pay),
|
|
37
|
+
payMethod: pay.method ?? '',
|
|
38
|
+
payEquity: pay.equity ?? '',
|
|
39
|
+
salaryUnpaid: pay.unpaid ? 'on' : '',
|
|
40
|
+
}, bare: true }), _jsx("div", { class: "row", children: _jsx("button", { class: "btn btn-secondary btn-sm", type: "submit", children: "Save pay" }) })] })] }), _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)
|
|
41
|
+
.filter(([key]) => !['name', 'email'].includes(key))
|
|
42
|
+
.map(([key, value]) =>
|
|
43
|
+
// A box the applicant could write prose in is shown as prose. A
|
|
44
|
+
// one-line answer stays on its line.
|
|
45
|
+
job.apply.schema.fields.some((field) => field.name === key && field.type === 'textarea') ? (_jsxs("div", { class: "small", children: [_jsxs("strong", { children: [key, ":"] }), _jsx(Markdown, { source: value, class: "prose-compact answer-body" })] })) : (_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] })] })] })] }));
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* The pay fields, shared by the post form and the manage page.
|
|
49
|
+
*
|
|
50
|
+
* One line per price, typed the way it is said: "$120k - $150k a year",
|
|
51
|
+
* "$0.25 per task", "0.01 SOL per PR that fixes a bug", "10% revenue share".
|
|
52
|
+
* A textarea rather than four inputs and a select, because the old four
|
|
53
|
+
* could describe exactly one salary range and nothing this board is for.
|
|
54
|
+
*
|
|
55
|
+
* `values` may carry the old flat fields (an agent draft, a re-rendered
|
|
56
|
+
* form): they are folded into the text so nothing typed is lost.
|
|
57
|
+
*/
|
|
58
|
+
export const PayFields = ({ values, bare = false }) => {
|
|
59
|
+
const folded = normalisePay(values);
|
|
60
|
+
const text = values['pay'] ?? (typeof folded === 'string' ? '' : payToText(folded));
|
|
61
|
+
const body = (_jsxs(_Fragment, { children: [!bare && (_jsx("p", { class: "hint", style: "margin-top:0", children: "Required before the listing can be published. A listing that does not say what it pays gets fewer and worse applications, and an agent reading it cannot tell whether to bother." })), _jsx(Field, { label: "What it pays", name: "pay", hint: `One price per line, the way you would say it: ${PAY_LINE_EXAMPLES}. Several lines are fine: "$0.25 per task" and "$0.25 per PR that fixes a bug" are two.`, children: _jsx("textarea", { class: "textarea", id: "pay", name: "pay", rows: 3, placeholder: '$120k - $150k a year\n$0.25 per task', children: text }) }), _jsxs("div", { class: "row", style: "flex-wrap:wrap;gap:.75rem;align-items:flex-start", children: [_jsxs(Field, { label: "Paid in", name: "payMethod", hint: "A coin, or a rail: bank transfer, PayPal, payroll.", children: [_jsx("input", { class: "input", type: "text", id: "payMethod", name: "payMethod", list: "pay-methods", maxlength: 40, placeholder: "SOL, USDC, bank transfer", value: values['payMethod'] ?? '' }), _jsx("datalist", { id: "pay-methods", children: [...PAYMENT_COINS, ...PAYMENT_RAILS].map((method) => (_jsx("option", { value: method }))) })] }), _jsx(Field, { label: "Equity", name: "payEquity", hint: "Optional, as text.", children: _jsx("input", { class: "input", type: "text", id: "payEquity", name: "payEquity", maxlength: 60, placeholder: "0.1% - 0.4%", value: values['payEquity'] ?? values['salaryEquity'] ?? '' }) })] }), _jsxs("p", { class: "hint", style: "margin-top:0", children: [_jsxs("label", { children: [_jsx("input", { type: "checkbox", name: "salaryUnpaid", value: "on", checked: values['salaryUnpaid'] === 'on' }), ' ', "This role is unpaid"] }), ' ', "An unpaid internship or volunteer post says so here. It reads as Unpaid rather than as a listing whose author skipped the question, and any line above is ignored."] })] }));
|
|
62
|
+
return bare ? (_jsx("div", { class: "stack-sm", children: body })) : (_jsxs("fieldset", { children: [_jsx("legend", { children: "Pay" }), body] }));
|
|
63
|
+
};
|
|
64
|
+
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_HINT, children: _jsx("textarea", { class: "textarea", id: "description", name: "description" }) }), _jsx("button", { class: "btn btn-block", type: "submit", children: "Add employer" })] }) })] }) }));
|
|
33
65
|
//# sourceMappingURL=post.js.map
|