@profullstack/agenticjobs 0.12.0 → 0.14.1

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 (102) hide show
  1. package/README.md +70 -1
  2. package/dist/cli/args.js +1 -1
  3. package/dist/cli/args.js.map +1 -1
  4. package/dist/cli/index.js +78 -5
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/client/client.d.ts +44 -0
  7. package/dist/client/client.js +19 -0
  8. package/dist/client/client.js.map +1 -1
  9. package/dist/client/config.js +4 -3
  10. package/dist/client/config.js.map +1 -1
  11. package/dist/client/fanout.js +13 -4
  12. package/dist/client/fanout.js.map +1 -1
  13. package/dist/client/login.js +9 -2
  14. package/dist/client/login.js.map +1 -1
  15. package/dist/config.d.ts +1 -1
  16. package/dist/config.js +1 -1
  17. package/dist/core/agentwriter.js +22 -5
  18. package/dist/core/agentwriter.js.map +1 -1
  19. package/dist/core/applications.js +1 -1
  20. package/dist/core/applications.js.map +1 -1
  21. package/dist/core/capacity.js +7 -3
  22. package/dist/core/capacity.js.map +1 -1
  23. package/dist/core/import.js +10 -2
  24. package/dist/core/import.js.map +1 -1
  25. package/dist/core/jobs.d.ts +24 -6
  26. package/dist/core/jobs.js +116 -31
  27. package/dist/core/jobs.js.map +1 -1
  28. package/dist/core/recommendations.d.ts +134 -0
  29. package/dist/core/recommendations.js +356 -0
  30. package/dist/core/recommendations.js.map +1 -0
  31. package/dist/core/updates.d.ts +15 -3
  32. package/dist/core/updates.js +58 -24
  33. package/dist/core/updates.js.map +1 -1
  34. package/dist/core/zip.js +29 -4
  35. package/dist/core/zip.js.map +1 -1
  36. package/dist/directory/federate.js +3 -1
  37. package/dist/directory/federate.js.map +1 -1
  38. package/dist/directory/fetch.d.ts +1 -1
  39. package/dist/markup/markdown.js +2 -1
  40. package/dist/markup/markdown.js.map +1 -1
  41. package/dist/markup/resume.js +18 -5
  42. package/dist/markup/resume.js.map +1 -1
  43. package/dist/mcp/tools.js +99 -7
  44. package/dist/mcp/tools.js.map +1 -1
  45. package/dist/schema/index.d.ts +1 -0
  46. package/dist/schema/index.js +1 -0
  47. package/dist/schema/index.js.map +1 -1
  48. package/dist/schema/instance.js +29 -0
  49. package/dist/schema/instance.js.map +1 -1
  50. package/dist/schema/job.d.ts +12 -0
  51. package/dist/schema/job.js +17 -3
  52. package/dist/schema/job.js.map +1 -1
  53. package/dist/schema/jsonld.js +7 -6
  54. package/dist/schema/jsonld.js.map +1 -1
  55. package/dist/schema/pay.d.ts +173 -0
  56. package/dist/schema/pay.js +668 -0
  57. package/dist/schema/pay.js.map +1 -0
  58. package/dist/schema/query.js +1 -1
  59. package/dist/schema/query.js.map +1 -1
  60. package/dist/server/app.js +3 -1
  61. package/dist/server/app.js.map +1 -1
  62. package/dist/server/middleware.d.ts +11 -1
  63. package/dist/server/middleware.js +18 -3
  64. package/dist/server/middleware.js.map +1 -1
  65. package/dist/server/routes/api.js +153 -7
  66. package/dist/server/routes/api.js.map +1 -1
  67. package/dist/server/routes/discovery.js +10 -8
  68. package/dist/server/routes/discovery.js.map +1 -1
  69. package/dist/server/routes/openapi.js +136 -2
  70. package/dist/server/routes/openapi.js.map +1 -1
  71. package/dist/server/routes/pages.js +155 -14
  72. package/dist/server/routes/pages.js.map +1 -1
  73. package/dist/tui/views.js +9 -3
  74. package/dist/tui/views.js.map +1 -1
  75. package/dist/views/candidates.d.ts +6 -0
  76. package/dist/views/candidates.js +2 -1
  77. package/dist/views/candidates.js.map +1 -1
  78. package/dist/views/inbox.js +6 -6
  79. package/dist/views/inbox.js.map +1 -1
  80. package/dist/views/jobs.d.ts +16 -0
  81. package/dist/views/jobs.js +33 -11
  82. package/dist/views/jobs.js.map +1 -1
  83. package/dist/views/layout.d.ts +22 -0
  84. package/dist/views/layout.js +18 -0
  85. package/dist/views/layout.js.map +1 -1
  86. package/dist/views/me.d.ts +7 -0
  87. package/dist/views/me.js +3 -2
  88. package/dist/views/me.js.map +1 -1
  89. package/dist/views/post.d.ts +18 -0
  90. package/dist/views/post.js +39 -7
  91. package/dist/views/post.js.map +1 -1
  92. package/dist/views/recommendations.d.ts +43 -0
  93. package/dist/views/recommendations.js +26 -0
  94. package/dist/views/recommendations.js.map +1 -0
  95. package/dist/views/updates.js +5 -5
  96. package/dist/views/updates.js.map +1 -1
  97. package/docs/openjob.md +63 -0
  98. package/migrations/0015_pay_lines.sql +38 -0
  99. package/migrations/0016_recommendations.sql +65 -0
  100. package/package.json +1 -1
  101. package/web/public/app.css +60 -5
  102. package/web/public/sw.js +6 -2
@@ -1,9 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "hono/jsx/jsx-runtime";
2
- import { ago, formatSalary } from "../schema/text.js";
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 = formatSalary(job.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", ' ', _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" }), "."] })] }));
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 ", _jsx("a", { href: "/updates", children: "/updates" }), "."] })] }));
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 salary = formatSalary(job.salary);
141
- 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(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]
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("p", { class: "small", children: job.org.description }), 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)] })] })] })] }));
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 ? 'One answer needs fixing.' : `${problems.length} answers need fixing.` })), job.apply.schema.fields.map((field) => (_jsx(Field, { label: field.label, name: field.name, hint: 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'
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("p", { children: org.description }), social !== undefined && _jsx(AuthorSocial, { ...social }), _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}` })] }));
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
@@ -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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"}
@@ -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;
@@ -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 }));
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/views/layout.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/views/layout.tsx"],"names":[],"mappings":"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"}
@@ -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
- export const MePage = ({ viewer, orgs, jobs, resumes, applications, updates, following, candidateSlug, updateMax, 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: ["Following", ' ', following.map((entry, index) => (_jsxs(_Fragment, { children: [index > 0 && ', ', entry.slug === null ? (entry.name) : (_jsx("a", { href: entry.kind === 'employer'
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: "Their updates" }), "."] }))] }), _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
+ : `/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.
@@ -1 +1 @@
1
- {"version":3,"file":"me.js","sourceRoot":"","sources":["../../src/views/me.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"me.js","sourceRoot":"","sources":["../../src/views/me.tsx"],"names":[],"mappings":"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"}
@@ -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;
@@ -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, SALARY_PERIODS, SENIORITIES, WORKPLACES, } from "../schema/job.js";
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: "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("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 range below is ignored."] }), _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" })] }) })] }));
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 }) => (_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)
30
- .filter(([key]) => !['name', 'email'].includes(key))
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] })] })] })] }));
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" })] }) })] }) }));
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