@profullstack/agenticjobs 0.2.0 → 0.4.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 +20 -0
- package/dist/cli/index.d.ts +9 -1
- package/dist/cli/index.js +99 -13
- package/dist/cli/index.js.map +1 -1
- package/dist/client/client.d.ts +16 -0
- package/dist/client/client.js +8 -0
- package/dist/client/client.js.map +1 -1
- package/dist/config.d.ts +12 -2
- package/dist/config.js +44 -4
- package/dist/config.js.map +1 -1
- package/dist/core/applications.js +4 -1
- package/dist/core/applications.js.map +1 -1
- package/dist/core/auth.d.ts +2 -0
- package/dist/core/auth.js +2 -1
- package/dist/core/auth.js.map +1 -1
- package/dist/core/candidates.d.ts +42 -0
- package/dist/core/candidates.js +143 -0
- package/dist/core/candidates.js.map +1 -0
- package/dist/core/import-job.d.ts +36 -0
- package/dist/core/import-job.js +221 -0
- package/dist/core/import-job.js.map +1 -0
- package/dist/core/jobs.d.ts +29 -0
- package/dist/core/jobs.js +101 -31
- package/dist/core/jobs.js.map +1 -1
- package/dist/core/mail.d.ts +64 -0
- package/dist/core/mail.js +125 -0
- package/dist/core/mail.js.map +1 -0
- package/dist/core/resumes.d.ts +23 -1
- package/dist/core/resumes.js +86 -9
- package/dist/core/resumes.js.map +1 -1
- package/dist/directory/fetch.d.ts +11 -1
- package/dist/directory/fetch.js +23 -8
- package/dist/directory/fetch.js.map +1 -1
- package/dist/directory/registry.d.ts +1 -0
- package/dist/directory/registry.js +17 -1
- package/dist/directory/registry.js.map +1 -1
- package/dist/markup/resume.js +7 -1
- package/dist/markup/resume.js.map +1 -1
- package/dist/schema/job.d.ts +13 -10
- package/dist/schema/job.js.map +1 -1
- package/dist/schema/query.js +8 -4
- package/dist/schema/query.js.map +1 -1
- package/dist/schema/text.d.ts +12 -1
- package/dist/schema/text.js +14 -3
- package/dist/schema/text.js.map +1 -1
- package/dist/server/app.d.ts +6 -1
- package/dist/server/app.js +7 -2
- package/dist/server/app.js.map +1 -1
- package/dist/server/deps.d.ts +3 -0
- package/dist/server/routes/api.js +201 -24
- package/dist/server/routes/api.js.map +1 -1
- package/dist/server/routes/discovery.js +162 -1
- package/dist/server/routes/discovery.js.map +1 -1
- package/dist/server/routes/pages.js +44 -5
- package/dist/server/routes/pages.js.map +1 -1
- package/dist/server/serve.js +22 -7
- package/dist/server/serve.js.map +1 -1
- package/dist/views/auth.d.ts +1 -1
- package/dist/views/auth.js +3 -1
- package/dist/views/auth.js.map +1 -1
- package/dist/views/candidates.d.ts +47 -0
- package/dist/views/candidates.js +21 -0
- package/dist/views/candidates.js.map +1 -0
- package/dist/views/jobs.d.ts +13 -0
- package/dist/views/jobs.js +35 -10
- package/dist/views/jobs.js.map +1 -1
- package/dist/views/layout.js +2 -2
- package/dist/views/layout.js.map +1 -1
- package/dist/views/me.js +3 -1
- package/dist/views/me.js.map +1 -1
- package/dist/views/post.js +1 -1
- package/dist/views/post.js.map +1 -1
- package/docs/openjob.md +16 -9
- package/migrations/0006_board_only_applications.sql +34 -0
- package/migrations/0007_public_resumes.sql +24 -0
- package/migrations/0008_backfill_public_slugs.sql +57 -0
- package/migrations/0009_shorten_runaway_slugs.sql +21 -0
- package/package.json +16 -17
- package/web/public/app.css +45 -2
- package/web/public/sw.js +29 -5
package/dist/views/jobs.js
CHANGED
|
@@ -3,10 +3,39 @@ import { ago, formatSalary } from "../schema/text.js";
|
|
|
3
3
|
import { queryToParams } from "../schema/query.js";
|
|
4
4
|
import { EMPLOYMENT_TYPES, SENIORITIES, WORKPLACES, AGENT_POLICIES } from "../schema/job.js";
|
|
5
5
|
import { AgentPolicyBadge, Alert, Badge, Card, Empty, Field, Prose } from "./layout.js";
|
|
6
|
-
|
|
6
|
+
/** Where a job tag points. Tags accumulate, so they narrow the search. */
|
|
7
|
+
export function jobTagHref(tags) {
|
|
8
|
+
return tags.length === 0 ? '/' : `/?tags=${encodeURIComponent(tags.join(','))}`;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* A job, as a row.
|
|
12
|
+
*
|
|
13
|
+
* The whole card used to be one anchor. That is why its tags were plain text:
|
|
14
|
+
* an anchor cannot contain another anchor, so a tag inside it could never be a
|
|
15
|
+
* link. The title carries the link now and the card is an ordinary element, so
|
|
16
|
+
* every tag on it goes somewhere, and a screen reader is offered one link per
|
|
17
|
+
* destination instead of one enormous link with the destinations buried in it.
|
|
18
|
+
*/
|
|
19
|
+
export const JobCard = ({ job, origin, instanceName, tags = [] }) => {
|
|
7
20
|
const salary = formatSalary(job.salary);
|
|
8
21
|
const href = origin === undefined ? `/jobs/${job.slug}` : `${origin}/jobs/${job.slug}`;
|
|
9
|
-
|
|
22
|
+
// Tags and stack are one row of badges to a reader, so they are deduplicated
|
|
23
|
+
// together rather than shown twice when a listing puts a word in both.
|
|
24
|
+
const seen = new Set();
|
|
25
|
+
const badges = [...job.tags, ...job.stack].filter((item) => {
|
|
26
|
+
const key = item.toLowerCase();
|
|
27
|
+
if (seen.has(key))
|
|
28
|
+
return false;
|
|
29
|
+
seen.add(key);
|
|
30
|
+
return true;
|
|
31
|
+
});
|
|
32
|
+
const add = (tag) => tags.some((item) => item.toLowerCase() === tag.toLowerCase()) ? tags : [...tags, tag];
|
|
33
|
+
return (_jsx("li", { children: _jsxs("div", { class: "card job-card", children: [_jsxs("div", { class: "spread", children: [_jsx("h2", { class: "job-title", children: _jsx("a", { href: href, children: job.title }) }), salary !== null && _jsx("span", { class: "job-salary", children: salary })] }), _jsxs("div", { class: "job-org", children: [job.org.name, job.location !== null && ` - ${job.location}`] }), _jsxs("div", { class: "job-meta", children: [_jsx(Badge, { variant: "outline", children: job.workplace }), _jsx(Badge, { variant: "outline", children: job.employmentType }), job.seniority !== null && _jsx(Badge, { variant: "outline", children: job.seniority }), _jsx(AgentPolicyBadge, { policy: job.agentPolicy }), origin === undefined
|
|
34
|
+
? badges.slice(0, 6).map((item) => (_jsx("a", { class: "badge", href: jobTagHref(add(item)), children: item })))
|
|
35
|
+
: // A job on another board is not filterable from here, so its
|
|
36
|
+
// tags stay plain rather than linking to a search of ours that
|
|
37
|
+
// would return nothing.
|
|
38
|
+
badges.slice(0, 6).map((item) => _jsx(Badge, { children: item }))] }), _jsxs("div", { class: "small muted", children: [ago(job.publishedAt), instanceName !== undefined && ` - on ${instanceName}`] })] }) }));
|
|
10
39
|
};
|
|
11
40
|
export const Filters = ({ query, action = '/' }) => (_jsxs("form", { class: "filters", method: "get", action: action, children: [_jsxs("div", { class: "filters-inline", children: [_jsx(Field, { label: "Search", name: "q", children: _jsx("input", { class: "input", type: "search", id: "q", name: "q", value: query.q ?? '', placeholder: "title, stack, anything" }) }), _jsx("button", { class: "btn", type: "submit", children: "Search" })] }), _jsxs("div", { class: "row", children: [_jsx(Select, { name: "workplace", label: "Anywhere", value: query.workplace, options: WORKPLACES }), _jsx(Select, { name: "employmentType", label: "Any type", value: query.employmentType, options: EMPLOYMENT_TYPES }), _jsx(Select, { name: "seniority", label: "Any level", value: query.seniority, options: SENIORITIES }), _jsx(Select, { name: "agentPolicy", label: "Any agent policy", value: query.agentPolicy, options: AGENT_POLICIES }), _jsx(Select, { name: "sort", label: "Newest", value: query.sort === 'recent' ? null : query.sort, options: ['relevant', 'salary'] }), _jsx("button", { class: "btn btn-secondary btn-sm", type: "submit", children: "Apply filters" })] })] }));
|
|
12
41
|
const Select = ({ name, label, value, options }) => (_jsxs("select", { class: "select", name: name, "aria-label": label, style: "width:auto;min-width:9rem", children: [_jsx("option", { value: "", children: label }), options.map((option) => (_jsx("option", { value: option, selected: value === option, children: option })))] }));
|
|
@@ -23,18 +52,14 @@ export const Pagination = ({ page, query, base = '/', }) => {
|
|
|
23
52
|
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" }))] }));
|
|
24
53
|
};
|
|
25
54
|
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" }), "."] })] }));
|
|
26
|
-
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 }), _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 }))) })), _jsx(Pagination, { page: page, query: query })] }));
|
|
55
|
+
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 }), query.tags.length > 0 && (_jsxs("p", { class: "row", style: "align-items:center;flex-wrap:wrap;gap:.5rem", children: [_jsx("span", { class: "small muted", children: "Tagged:" }), query.tags.map((tag) => (_jsxs("a", { class: "badge", title: `Remove ${tag}`, href: jobTagHref(query.tags.filter((other) => other !== tag)), children: [tag, " x"] }))), _jsx("a", { class: "small", href: "/", children: "Clear" }), _jsx("a", { class: "small", href: `/feed?tags=${encodeURIComponent(query.tags.join(','))}`, 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 }))) })), _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" }), "."] })] }));
|
|
27
56
|
export const JobDetail = ({ job, html, publicUrl, applied, problems, values, signedIn, resumes }) => {
|
|
28
57
|
const salary = formatSalary(job.salary);
|
|
29
|
-
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(Badge, { variant: "outline", children: job.workplace }), _jsx(Badge, { variant: "outline", children: job.employmentType }), job.seniority !== null && _jsx(Badge, { variant: "outline", children: job.seniority }), _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
|
|
58
|
+
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(Badge, { variant: "outline", children: job.workplace }), _jsx(Badge, { variant: "outline", children: job.employmentType }), job.seniority !== null && _jsx(Badge, { variant: "outline", children: job.seniority }), _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]
|
|
59
|
+
.filter((item, index, all) => all.findIndex((other) => other.toLowerCase() === item.toLowerCase()) === index)
|
|
60
|
+
.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 }), 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)] })] })] })] }));
|
|
30
61
|
};
|
|
31
62
|
const ApplyForm = ({ job, problems, values, signedIn, resumes }) => {
|
|
32
|
-
if (job.apply.via === 'url') {
|
|
33
|
-
return (_jsxs(Card, { children: [_jsx("p", { children: "This employer takes applications on their own site." }), _jsxs("a", { class: "btn", href: job.apply.url, rel: "nofollow noopener", children: ["Apply at ", new URL(job.apply.url).hostname] })] }));
|
|
34
|
-
}
|
|
35
|
-
if (job.apply.via === 'email') {
|
|
36
|
-
return (_jsxs(Card, { children: [_jsx("p", { children: "This employer takes applications by email." }), _jsxs("a", { class: "btn", href: `mailto:${job.apply.email}?subject=${encodeURIComponent(job.title)}`, children: ["Email ", job.apply.email] })] }));
|
|
37
|
-
}
|
|
38
63
|
const errorFor = (name) => problems.find((problem) => problem.field === name)?.message;
|
|
39
64
|
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'
|
|
40
65
|
? 'This employer asks you to say so. Saying so is not held against you; not saying so is.'
|
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.js
CHANGED
|
@@ -5,11 +5,11 @@ export const Layout = (props) => {
|
|
|
5
5
|
const { title, description, viewer, boardName, publicUrl, path, jsonld, canonical, noindex, isDirectory, children, } = props;
|
|
6
6
|
const full = title === boardName ? title : `${title} - ${boardName}`;
|
|
7
7
|
const url = canonical ?? `${publicUrl}${path}`;
|
|
8
|
-
return (_jsxs("html", { lang: "en", children: [_jsxs("head", { children: [_jsx("meta", { charset: "utf-8" }), _jsx("meta", { name: "viewport", content: "width=device-width, initial-scale=1, viewport-fit=cover" }), _jsx("title", { children: full }), description !== undefined && _jsx("meta", { name: "description", content: description }), _jsx("link", { rel: "canonical", href: url }), noindex === true && _jsx("meta", { name: "robots", content: "noindex, nofollow" }), _jsx("meta", { property: "og:title", content: full }), description !== undefined && _jsx("meta", { property: "og:description", content: description }), _jsx("meta", { property: "og:url", content: url }), _jsx("meta", { property: "og:type", content: "website" }), _jsx("meta", { property: "og:site_name", content: boardName }), _jsx("meta", { name: "twitter:card", content: "summary" }), _jsx("meta", { name: "theme-color", media: "(prefers-color-scheme: light)", content: "#ffffff" }), _jsx("meta", { name: "theme-color", media: "(prefers-color-scheme: dark)", content: "#111318" }), _jsx("link", { rel: "stylesheet", href: "/assets/app.css" }), _jsx("link", { rel: "manifest", href: "/manifest.webmanifest" }), _jsx("link", { rel: "icon", href: "/assets/icon.svg", type: "image/svg+xml" }), _jsx("link", { rel: "alternate", type: "application/json", href: "/jobs.json", title: `${boardName} jobs` }), _jsx("link", { rel: "alternate", type: "application/rss+xml", href: "/jobs
|
|
8
|
+
return (_jsxs("html", { lang: "en", children: [_jsxs("head", { children: [_jsx("meta", { charset: "utf-8" }), _jsx("meta", { name: "viewport", content: "width=device-width, initial-scale=1, viewport-fit=cover" }), _jsx("title", { children: full }), description !== undefined && _jsx("meta", { name: "description", content: description }), _jsx("link", { rel: "canonical", href: url }), noindex === true && _jsx("meta", { name: "robots", content: "noindex, nofollow" }), _jsx("meta", { property: "og:title", content: full }), description !== undefined && _jsx("meta", { property: "og:description", content: description }), _jsx("meta", { property: "og:url", content: url }), _jsx("meta", { property: "og:type", content: "website" }), _jsx("meta", { property: "og:site_name", content: boardName }), _jsx("meta", { name: "twitter:card", content: "summary" }), _jsx("meta", { name: "theme-color", media: "(prefers-color-scheme: light)", content: "#ffffff" }), _jsx("meta", { name: "theme-color", media: "(prefers-color-scheme: dark)", content: "#111318" }), _jsx("link", { rel: "stylesheet", href: "/assets/app.css" }), _jsx("link", { rel: "manifest", href: "/manifest.webmanifest" }), _jsx("link", { rel: "icon", href: "/assets/icon.svg", type: "image/svg+xml" }), _jsx("link", { rel: "alternate", type: "application/json", href: "/jobs.json", title: `${boardName} jobs` }), _jsx("link", { rel: "alternate", type: "application/rss+xml", href: "/feed", title: `${boardName} jobs` }), _jsx("link", { rel: "alternate", type: "application/rss+xml", href: "/candidates/feed", title: `${boardName} candidates` }), _jsx("link", { rel: "alternate", type: "application/rss+xml", href: "/feed.rss", title: boardName }), jsonld !== undefined && (_jsx("script", { type: "application/ld+json",
|
|
9
9
|
// Interpolating JSON into a script element without escaping the
|
|
10
10
|
// angle brackets is stored XSS the first time a job title contains
|
|
11
11
|
// the word "script".
|
|
12
|
-
dangerouslySetInnerHTML: { __html: jsonForScript(jsonld) } }))] }), _jsxs("body", { children: [_jsx("a", { class: "skip-link", href: "#main", children: "Skip to content" }), _jsx("header", { class: "site-header", children: _jsxs("div", { class: "container", children: [_jsxs("a", { class: "brand", href: "/", children: [_jsx("span", { class: "brand-mark", "aria-hidden": "true", children: "aj" }), boardName] }), _jsxs("nav", { class: "nav", "aria-label": "Main", children: [_jsx("a", { href: "/", "aria-current": path === '/' ? 'page' : undefined, children: "Jobs" }), _jsx("a", { href: "/employers", "aria-current": path.startsWith('/employers') ? 'page' : undefined, children: "Employers" }), isDirectory === true && (_jsx("a", { href: "/network", "aria-current": path.startsWith('/network') ? 'page' : undefined, children: "Network" })), _jsx("a", { href: "/docs", "aria-current": path.startsWith('/docs') ? 'page' : undefined, children: "For agents" }), viewer === null ? (_jsx("a", { class: "btn btn-sm", href: "/login", children: "Sign in" })) : (_jsxs(_Fragment, { children: [_jsx("a", { href: "/me", "aria-current": path.startsWith('/me') ? 'page' : undefined, children: "You" }), _jsx("a", { class: "btn btn-sm", href: "/post", children: "Post a job" })] }))] })] }) }), _jsx("main", { id: "main", children: _jsx("div", { class: "container", children: children }) }), _jsx("footer", { class: "site-footer", children: _jsxs("div", { class: "container", children: [_jsxs("span", { children: [boardName, " runs on", ' ', _jsx("a", { href: "https://github.com/profullstack/agenticjobs", children: "agenticjobs" }), ", MIT licensed."] }), _jsx("a", { href: "/docs", children: "API" }), _jsx("a", { href: "/api/v1/openapi.json", children: "OpenAPI" }), _jsx("a", { href: "/.well-known/agenticjobs", children: "Instance" }), _jsx("a", { href: "/jobs.json", children: "Feed" }), _jsx("a", { href: "/llms.txt", children: "llms.txt" })] }) }), _jsx("script", { src: "/assets/app.js", defer: true })] })] }));
|
|
12
|
+
dangerouslySetInnerHTML: { __html: jsonForScript(jsonld) } }))] }), _jsxs("body", { children: [_jsx("a", { class: "skip-link", href: "#main", children: "Skip to content" }), _jsx("header", { class: "site-header", children: _jsxs("div", { class: "container", children: [_jsxs("a", { class: "brand", href: "/", children: [_jsx("span", { class: "brand-mark", "aria-hidden": "true", children: "aj" }), boardName] }), _jsxs("nav", { class: "nav", "aria-label": "Main", children: [_jsx("a", { href: "/", "aria-current": path === '/' ? 'page' : undefined, children: "Jobs" }), _jsx("a", { href: "/candidates", "aria-current": path.startsWith('/candidates') ? 'page' : undefined, children: "Candidates" }), _jsx("a", { href: "/employers", "aria-current": path.startsWith('/employers') ? 'page' : undefined, children: "Employers" }), isDirectory === true && (_jsx("a", { href: "/network", "aria-current": path.startsWith('/network') ? 'page' : undefined, children: "Network" })), _jsx("a", { href: "/docs", "aria-current": path.startsWith('/docs') ? 'page' : undefined, children: "For agents" }), viewer === null ? (_jsx("a", { class: "btn btn-sm", href: "/login", children: "Sign in" })) : (_jsxs(_Fragment, { children: [_jsx("a", { href: "/me", "aria-current": path.startsWith('/me') ? 'page' : undefined, children: "You" }), _jsx("a", { class: "btn btn-sm", href: "/post", children: "Post a job" })] }))] })] }) }), _jsx("main", { id: "main", children: _jsx("div", { class: "container", children: children }) }), _jsx("footer", { class: "site-footer", children: _jsxs("div", { class: "container", children: [_jsxs("span", { children: [boardName, " runs on", ' ', _jsx("a", { href: "https://github.com/profullstack/agenticjobs", children: "agenticjobs" }), ", MIT licensed."] }), _jsx("a", { href: "/docs", children: "API" }), _jsx("a", { href: "/api/v1/openapi.json", children: "OpenAPI" }), _jsx("a", { href: "/.well-known/agenticjobs", children: "Instance" }), _jsx("a", { href: "/jobs.json", children: "Feed" }), _jsx("a", { href: "/llms.txt", children: "llms.txt" })] }) }), _jsx("script", { src: "/assets/app.js", defer: true })] })] }));
|
|
13
13
|
};
|
|
14
14
|
/** Rendered Markdown. The only place already-escaped HTML enters a page. */
|
|
15
15
|
export const Prose = ({ html, class: className }) => (_jsx("div", { class: className === undefined ? 'prose' : `prose ${className}`, children: raw(html) }));
|
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;AAiBpD,MAAM,CAAC,MAAM,MAAM,GAAqC,CAAC,KAAK,EAAE,EAAE;IAChE,MAAM,EACJ,KAAK,EACL,WAAW,EACX,MAAM,EACN,SAAS,EACT,SAAS,EACT,IAAI,EACJ,MAAM,EACN,SAAS,EACT,OAAO,EACP,WAAW,EACX,QAAQ,GACT,GAAG,KAAK,CAAC;IAEV,MAAM,IAAI,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,SAAS,EAAE,CAAC;IACrE,MAAM,GAAG,GAAG,SAAS,IAAI,GAAG,SAAS,GAAG,IAAI,EAAE,CAAC;IAE/C,OAAO,CACL,gBAAM,IAAI,EAAC,IAAI,aACb,2BACE,eAAM,OAAO,EAAC,OAAO,GAAG,EACxB,eAAM,IAAI,EAAC,UAAU,EAAC,OAAO,EAAC,yDAAyD,GAAG,EAC1F,0BAAQ,IAAI,GAAS,EACpB,WAAW,KAAK,SAAS,IAAI,eAAM,IAAI,EAAC,aAAa,EAAC,OAAO,EAAE,WAAW,GAAI,EAC/E,eAAM,GAAG,EAAC,WAAW,EAAC,IAAI,EAAE,GAAG,GAAI,EAClC,OAAO,KAAK,IAAI,IAAI,eAAM,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,mBAAmB,GAAG,EACvE,eAAM,QAAQ,EAAC,UAAU,EAAC,OAAO,EAAE,IAAI,GAAI,EAC1C,WAAW,KAAK,SAAS,IAAI,eAAM,QAAQ,EAAC,gBAAgB,EAAC,OAAO,EAAE,WAAW,GAAI,EACtF,eAAM,QAAQ,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,GAAI,EACxC,eAAM,QAAQ,EAAC,SAAS,EAAC,OAAO,EAAC,SAAS,GAAG,EAC7C,eAAM,QAAQ,EAAC,cAAc,EAAC,OAAO,EAAE,SAAS,GAAI,EACpD,eAAM,IAAI,EAAC,cAAc,EAAC,OAAO,EAAC,SAAS,GAAG,EAG9C,eAAM,IAAI,EAAC,aAAa,EAAC,KAAK,EAAC,+BAA+B,EAAC,OAAO,EAAC,SAAS,GAAG,EACnF,eAAM,IAAI,EAAC,aAAa,EAAC,KAAK,EAAC,8BAA8B,EAAC,OAAO,EAAC,SAAS,GAAG,EAClF,eAAM,GAAG,EAAC,YAAY,EAAC,IAAI,EAAC,iBAAiB,GAAG,EAChD,eAAM,GAAG,EAAC,UAAU,EAAC,IAAI,EAAC,uBAAuB,GAAG,EACpD,eAAM,GAAG,EAAC,MAAM,EAAC,IAAI,EAAC,kBAAkB,EAAC,IAAI,EAAC,eAAe,GAAG,EAChE,eAAM,GAAG,EAAC,WAAW,EAAC,IAAI,EAAC,kBAAkB,EAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAE,GAAG,SAAS,OAAO,GAAI,
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/views/layout.tsx"],"names":[],"mappings":"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"}
|
package/dist/views/me.js
CHANGED
|
@@ -2,5 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "hono/jsx/jsx-runtime";
|
|
|
2
2
|
import { ago } from "../schema/text.js";
|
|
3
3
|
import { Alert, Badge, Card, Empty, Field, Prose } from "./layout.js";
|
|
4
4
|
export const MePage = ({ viewer, orgs, jobs, resumes, applications }) => (_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: [_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" }) })] })] }));
|
|
5
|
-
export const ResumeEditor = ({ resume, html, warnings, error, saved }) => (_jsxs("div", { class: "grid-2", children: [_jsxs("div", { class: "stack", children: [_jsx("h1", { children: resume === null ? 'New resume' : resume.title }), error !== undefined && _jsx(Alert, { variant: "error", children: error }), saved === true && _jsx(Alert, { variant: "success", children: "Saved." }), resume === null && (_jsxs(Card, { children: [_jsxs("div", { class: "card-header", children: [_jsx("h2", { class: "card-title", children: "Start from a file" }), _jsx("p", { class: "card-description", children: "PDF, Word, plain text or Markdown. It is converted to Markdown you can then edit - the Markdown is what gets kept and what employers read." })] }), _jsxs("form", { method: "post", action: "/me/resumes/import", enctype: "multipart/form-data", class: "stack", children: [_jsx("input", { class: "input", type: "file", name: "file", accept: ".md,.markdown,.txt,.pdf,.docx,.doc,.odt,.rtf", required: true }), _jsx("button", { class: "btn", type: "submit", children: "Convert to Markdown" })] })] })), _jsxs("form", { class: "stack", method: "post", action: resume === null ? '/me/resumes/new' : `/me/resumes/${resume.slug}`, children: [_jsx(Field, { label: "Title", name: "title", hint: "Only you see this. Name it after the kind of role.", children: _jsx("input", { class: "input", type: "text", id: "title", name: "title", value: resume?.title ?? '', placeholder: "Backend, senior" }) }), _jsx(Field, { label: "Resume", name: "markdown", hint: "OpenResume.md: an h1 with your name, a bullet list of contact details, then ## sections.", children: _jsx("textarea", { class: "textarea code", id: "markdown", name: "markdown", spellcheck: false, children: resume?.markdown ?? '' }) }), _jsx(Field, { label: "Who can see it", name: "visibility", children: _jsxs("select", { class: "select", id: "visibility", name: "visibility", children: [_jsx("option", { value: "private", selected: resume?.visibility === 'private', children: "Private - only you, and employers you apply to" }), _jsx("option", { value: "link", selected: resume?.visibility === 'link', children: "Anyone with the link" }), _jsx("option", { value: "public", selected: resume?.visibility === 'public', children: "Public" })] }) }), _jsxs("div", { class: "row", children: [_jsx("button", { class: "btn", type: "submit", children: "Save" }), resume !== null && (_jsx("a", { class: "btn btn-secondary", href: `/api/v1/resumes/${resume.slug}`, children: "As JSON" }))] })] }), resume !== null && (_jsx("form", { method: "post", action: `/me/resumes/${resume.slug}/delete`, children: _jsx("button", { class: "btn btn-destructive btn-sm", type: "submit", children: "Delete this resume" }) }))] }), _jsxs("aside", { class: "stack", children: [
|
|
5
|
+
export const ResumeEditor = ({ resume, html, warnings, error, saved }) => (_jsxs("div", { class: "grid-2", children: [_jsxs("div", { class: "stack", children: [_jsx("h1", { children: resume === null ? 'New resume' : resume.title }), error !== undefined && _jsx(Alert, { variant: "error", children: error }), saved === true && _jsx(Alert, { variant: "success", children: "Saved." }), resume === null && (_jsxs(Card, { children: [_jsxs("div", { class: "card-header", children: [_jsx("h2", { class: "card-title", children: "Start from a file" }), _jsx("p", { class: "card-description", children: "PDF, Word, plain text or Markdown. It is converted to Markdown you can then edit - the Markdown is what gets kept and what employers read." })] }), _jsxs("form", { method: "post", action: "/me/resumes/import", enctype: "multipart/form-data", class: "stack", children: [_jsx("input", { class: "input", type: "file", name: "file", accept: ".md,.markdown,.txt,.pdf,.docx,.doc,.odt,.rtf", required: true }), _jsx("button", { class: "btn", type: "submit", children: "Convert to Markdown" })] })] })), _jsxs("form", { class: "stack", method: "post", action: resume === null ? '/me/resumes/new' : `/me/resumes/${resume.slug}`, children: [_jsx(Field, { label: "Title", name: "title", hint: "Only you see this. Name it after the kind of role.", children: _jsx("input", { class: "input", type: "text", id: "title", name: "title", value: resume?.title ?? '', placeholder: "Backend, senior" }) }), _jsx(Field, { label: "Resume", name: "markdown", hint: "OpenResume.md: an h1 with your name, a bullet list of contact details, then ## sections.", children: _jsx("textarea", { class: "textarea code", id: "markdown", name: "markdown", spellcheck: false, children: resume?.markdown ?? '' }) }), _jsx(Field, { label: "Who can see it", name: "visibility", hint: "Sharing puts your resume, including the contact details in it, on a page anyone can open.", children: _jsxs("select", { class: "select", id: "visibility", name: "visibility", children: [_jsx("option", { value: "private", selected: resume?.visibility === 'private', children: "Private - only you, and employers you apply to" }), _jsx("option", { value: "link", selected: resume?.visibility === 'link', children: "Anyone with the link - not listed anywhere" }), _jsx("option", { value: "public", selected: resume?.visibility === 'public', children: "Public - listed in Candidates" })] }) }), _jsxs("div", { class: "row", children: [_jsx("button", { class: "btn", type: "submit", children: "Save" }), resume !== null && (_jsx("a", { class: "btn btn-secondary", href: `/api/v1/resumes/${resume.slug}`, children: "As JSON" }))] })] }), resume !== null && (_jsx("form", { method: "post", action: `/me/resumes/${resume.slug}/delete`, children: _jsx("button", { class: "btn btn-destructive btn-sm", type: "submit", children: "Delete this resume" }) }))] }), _jsxs("aside", { class: "stack", children: [resume !== null && resume.visibility !== 'private' && resume.publicSlug !== null && (_jsxs(Card, { children: [_jsxs("div", { class: "card-header", children: [_jsx("h2", { class: "card-title", children: resume.visibility === 'public' ? 'Listed in Candidates' : 'Shared by link' }), _jsx("p", { class: "card-description", children: resume.visibility === 'public'
|
|
6
|
+
? 'Anyone can find this from the candidate directory.'
|
|
7
|
+
: 'Anyone with this address can read it. It is not listed.' })] }), _jsx("p", { class: "small", children: _jsxs("a", { href: `/candidates/${resume.publicSlug}`, children: ["/candidates/", resume.publicSlug] }) })] })), warnings.length > 0 && (_jsxs(Alert, { variant: "warning", children: [_jsx("strong", { children: "Worth a look:" }), _jsx("ul", { style: "margin:.5rem 0 0;padding-left:1.1rem", children: warnings.map((warning) => (_jsx("li", { children: warning }))) })] })), _jsxs(Card, { children: [_jsx("div", { class: "card-header", children: _jsx("h2", { class: "card-title", children: "Preview" }) }), _jsx(Prose, { html: html })] })] })] }));
|
|
6
8
|
//# sourceMappingURL=me.js.map
|
package/dist/views/me.js.map
CHANGED
|
@@ -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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"}
|
package/dist/views/post.js
CHANGED
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "hono/jsx/jsx-
|
|
|
2
2
|
import { AGENT_POLICIES, EMPLOYMENT_TYPES, SALARY_PERIODS, SENIORITIES, WORKPLACES, } from "../schema/job.js";
|
|
3
3
|
import { ago } from "../schema/text.js";
|
|
4
4
|
import { Alert, Badge, Card, Empty, Field, Prose } from "./layout.js";
|
|
5
|
-
export const PostJobPage = ({ orgs, error, values = {} }) => (_jsxs("div", { class: "grid-2", children: [_jsxs("div", { class: "stack", children: [_jsx("h1", { children: "Post a job" }), _jsx("p", { class: "lede", children: "It stays a draft until you publish it, so nothing goes live by accident." }), error !== undefined && _jsx(Alert, { variant: "error", children: error }), orgs.length === 0 ? (_jsxs(Alert, { variant: "info", children: ["Add the employer first: ", _jsx("a", { href: "/me/employers/new", children: "add an employer" }), "."] })) : (_jsxs("form", { class: "stack", method: "post", action: "/post", children: [_jsx(Field, { label: "Employer", name: "org", children: _jsx("select", { class: "select", id: "org", name: "org", required: true, children: orgs.map((org) => (_jsx("option", { value: org.slug, selected: values['org'] === org.slug, children: org.name }))) }) }), _jsx(Field, { label: "Title", name: "title", children: _jsx("input", { class: "input", type: "text", id: "title", name: "title", value: values['title'] ?? '', required: true, maxlength: 140 }) }), _jsx(Field, { label: "Description", name: "description", hint: "Markdown. Headings, lists, links and tables all work.", children: _jsx("textarea", { class: "textarea", id: "description", name: "description", required: true, children: values['description'] ?? '' }) }), _jsxs("div", { class: "row", children: [_jsx(Field, { label: "Type", name: "employmentType", children: _jsx("select", { class: "select", id: "employmentType", name: "employmentType", children: EMPLOYMENT_TYPES.map((type) => (_jsx("option", { value: type, selected: values['employmentType'] === type, children: type }))) }) }), _jsx(Field, { label: "Where", name: "workplace", children: _jsx("select", { class: "select", id: "workplace", name: "workplace", children: WORKPLACES.map((place) => (_jsx("option", { value: place, selected: values['workplace'] === place, children: place }))) }) }), _jsx(Field, { label: "Level", name: "seniority", children: _jsxs("select", { class: "select", id: "seniority", name: "seniority", children: [_jsx("option", { value: "", children: "unspecified" }), SENIORITIES.map((level) => (_jsx("option", { value: level, selected: values['seniority'] === level, children: level })))] }) })] }), _jsx(Field, { label: "Location", name: "location", hint: 'Free text: "Berlin", "US timezones".', children: _jsx("input", { class: "input", type: "text", id: "location", name: "location", value: values['location'] ?? '' }) }), _jsxs("fieldset", { children: [_jsx("legend", { children: "Pay" }), _jsx("p", { class: "hint", style: "margin-top:0", children: "A listing without a number gets fewer and worse applications. Say the range." }), _jsxs("div", { class: "row", children: [_jsx("input", { class: "input", type: "number", name: "salaryMin", placeholder: "from", style: "width:8rem", value: values['salaryMin'] ?? '' }), _jsx("input", { class: "input", type: "number", name: "salaryMax", placeholder: "to", style: "width:8rem", value: values['salaryMax'] ?? '' }), _jsx("input", { class: "input", type: "text", name: "salaryCurrency", placeholder: "USD", maxlength: 3, style: "width:6rem", value: values['salaryCurrency'] ?? 'USD' }), _jsx("select", { class: "select", name: "salaryPeriod", style: "width:auto", children: SALARY_PERIODS.map((period) => (_jsxs("option", { value: period, selected: (values['salaryPeriod'] ?? 'year') === period, children: ["per ", period] }))) })] })] }), _jsx(Field, { label: "Stack", name: "stack", hint: "Comma separated. Also what people search on.", children: _jsx("input", { class: "input", type: "text", id: "stack", name: "stack", value: values['stack'] ?? '', placeholder: "typescript, postgres, hono" }) }), _jsx(Field, { label: "Tags", name: "tags", hint: "Comma separated.", children: _jsx("input", { class: "input", type: "text", id: "tags", name: "tags", value: values['tags'] ?? '', placeholder: "backend, remote-first" }) }), _jsxs("fieldset", { children: [_jsx("legend", { children: "Agent policy" }), _jsx("p", { class: "hint", style: "margin-top:0", children: "Required. Candidates increasingly use an agent to write applications; this says where you stand, instead of them finding out by being rejected without a reason." }), AGENT_POLICIES.map((policy) => (_jsxs("label", { class: "row", style: "align-items:flex-start;margin-top:.5rem", children: [_jsx("input", { type: "radio", name: "agentPolicy", value: policy, checked: (values['agentPolicy'] ?? 'disclose') === policy, style: "margin-top:.35rem" }), _jsxs("span", { children: [_jsx("strong", { children: POLICY_LABEL[policy] }), _jsx("br", {}), _jsx("span", { class: "hint", children: POLICY_HELP[policy] })] })] })))] }), _jsxs("fieldset", { children: [_jsx("legend", { children: "How to apply" }),
|
|
5
|
+
export const PostJobPage = ({ orgs, error, values = {} }) => (_jsxs("div", { class: "grid-2", children: [_jsxs("div", { class: "stack", children: [_jsx("h1", { children: "Post a job" }), _jsx("p", { class: "lede", children: "It stays a draft until you publish it, so nothing goes live by accident." }), error !== undefined && _jsx(Alert, { variant: "error", children: error }), orgs.length === 0 ? (_jsxs(Alert, { variant: "info", children: ["Add the employer first: ", _jsx("a", { href: "/me/employers/new", children: "add an employer" }), "."] })) : (_jsxs("form", { class: "stack", method: "post", action: "/post", children: [_jsx(Field, { label: "Employer", name: "org", children: _jsx("select", { class: "select", id: "org", name: "org", required: true, children: orgs.map((org) => (_jsx("option", { value: org.slug, selected: values['org'] === org.slug, children: org.name }))) }) }), _jsx(Field, { label: "Title", name: "title", children: _jsx("input", { class: "input", type: "text", id: "title", name: "title", value: values['title'] ?? '', required: true, maxlength: 140 }) }), _jsx(Field, { label: "Description", name: "description", hint: "Markdown. Headings, lists, links and tables all work.", children: _jsx("textarea", { class: "textarea", id: "description", name: "description", required: true, children: values['description'] ?? '' }) }), _jsxs("div", { class: "row", children: [_jsx(Field, { label: "Type", name: "employmentType", children: _jsx("select", { class: "select", id: "employmentType", name: "employmentType", children: EMPLOYMENT_TYPES.map((type) => (_jsx("option", { value: type, selected: values['employmentType'] === type, children: type }))) }) }), _jsx(Field, { label: "Where", name: "workplace", children: _jsx("select", { class: "select", id: "workplace", name: "workplace", children: WORKPLACES.map((place) => (_jsx("option", { value: place, selected: values['workplace'] === place, children: place }))) }) }), _jsx(Field, { label: "Level", name: "seniority", children: _jsxs("select", { class: "select", id: "seniority", name: "seniority", children: [_jsx("option", { value: "", children: "unspecified" }), SENIORITIES.map((level) => (_jsx("option", { value: level, selected: values['seniority'] === level, children: level })))] }) })] }), _jsx(Field, { label: "Location", name: "location", hint: 'Free text: "Berlin", "US timezones".', children: _jsx("input", { class: "input", type: "text", id: "location", name: "location", value: values['location'] ?? '' }) }), _jsxs("fieldset", { children: [_jsx("legend", { children: "Pay" }), _jsx("p", { class: "hint", style: "margin-top:0", children: "A listing without a number gets fewer and worse applications. Say the range." }), _jsxs("div", { class: "row", children: [_jsx("input", { class: "input", type: "number", name: "salaryMin", placeholder: "from", style: "width:8rem", value: values['salaryMin'] ?? '' }), _jsx("input", { class: "input", type: "number", name: "salaryMax", placeholder: "to", style: "width:8rem", value: values['salaryMax'] ?? '' }), _jsx("input", { class: "input", type: "text", name: "salaryCurrency", placeholder: "USD", maxlength: 3, style: "width:6rem", value: values['salaryCurrency'] ?? 'USD' }), _jsx("select", { class: "select", name: "salaryPeriod", style: "width:auto", children: SALARY_PERIODS.map((period) => (_jsxs("option", { value: period, selected: (values['salaryPeriod'] ?? 'year') === period, children: ["per ", period] }))) })] })] }), _jsx(Field, { label: "Stack", name: "stack", hint: "Comma separated. Also what people search on.", children: _jsx("input", { class: "input", type: "text", id: "stack", name: "stack", value: values['stack'] ?? '', placeholder: "typescript, postgres, hono" }) }), _jsx(Field, { label: "Tags", name: "tags", hint: "Comma separated.", children: _jsx("input", { class: "input", type: "text", id: "tags", name: "tags", value: values['tags'] ?? '', placeholder: "backend, remote-first" }) }), _jsxs("fieldset", { children: [_jsx("legend", { children: "Agent policy" }), _jsx("p", { class: "hint", style: "margin-top:0", children: "Required. Candidates increasingly use an agent to write applications; this says where you stand, instead of them finding out by being rejected without a reason." }), AGENT_POLICIES.map((policy) => (_jsxs("label", { class: "row", style: "align-items:flex-start;margin-top:.5rem", children: [_jsx("input", { type: "radio", name: "agentPolicy", value: policy, checked: (values['agentPolicy'] ?? 'disclose') === policy, style: "margin-top:.35rem" }), _jsxs("span", { children: [_jsx("strong", { children: POLICY_LABEL[policy] }), _jsx("br", {}), _jsx("span", { class: "hint", children: POLICY_HELP[policy] })] })] })))] }), _jsxs("fieldset", { children: [_jsx("legend", { children: "How to apply" }), _jsx("p", { class: "small muted", children: "Applications are taken on this board, so an agent can complete one without a browser and you get every application in one place. There is no offsite link." })] }), _jsx("button", { class: "btn btn-block", type: "submit", children: "Create draft" })] }))] }), _jsx("aside", { class: "stack", children: _jsxs(Card, { children: [_jsx("div", { class: "card-header", children: _jsx("h2", { class: "card-title", children: "Or post it from anywhere else" }) }), _jsx("pre", { class: "code-block", children: "agenticjobs post --org acme job.md" }), _jsx("p", { class: "small muted", children: "Over MCP, with the board connected:" }), _jsx("pre", { class: "code-block", children: "post_job(org: \"acme\", ...)" }), _jsx("p", { class: "small muted", children: "Through myna, alongside the rest of a launch:" }), _jsx("pre", { class: "code-block", children: "myna jobs post --to jobs:acme job.md" })] }) })] }));
|
|
6
6
|
const POLICY_LABEL = {
|
|
7
7
|
welcome: 'Agents welcome',
|
|
8
8
|
disclose: 'Agents, if disclosed',
|
package/dist/views/post.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post.js","sourceRoot":"","sources":["../../src/views/post.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"post.js","sourceRoot":"","sources":["../../src/views/post.tsx"],"names":[],"mappings":";AAMA,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,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;AAEvE,MAAM,CAAC,MAAM,WAAW,GAInB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CACrC,eAAK,KAAK,EAAC,QAAQ,aACjB,eAAK,KAAK,EAAC,OAAO,aAChB,sCAAmB,EACnB,YAAG,KAAK,EAAC,MAAM,yFAEX,EACH,KAAK,KAAK,SAAS,IAAI,KAAC,KAAK,IAAC,OAAO,EAAC,OAAO,YAAE,KAAK,GAAS,EAE7D,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACnB,MAAC,KAAK,IAAC,OAAO,EAAC,MAAM,yCACK,YAAG,IAAI,EAAC,mBAAmB,gCAAoB,SACjE,CACT,CAAC,CAAC,CAAC,CACF,gBAAM,KAAK,EAAC,OAAO,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,aAC9C,KAAC,KAAK,IAAC,KAAK,EAAC,UAAU,EAAC,IAAI,EAAC,KAAK,YAChC,iBAAQ,KAAK,EAAC,QAAQ,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,QAAQ,kBAChD,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACjB,iBAAQ,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,YAC1D,GAAG,CAAC,IAAI,GACF,CACV,CAAC,GACK,GACH,EAER,KAAC,KAAK,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,YAC/B,gBACE,KAAK,EAAC,OAAO,EACb,IAAI,EAAC,MAAM,EACX,EAAE,EAAC,OAAO,EACV,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAC5B,QAAQ,QACR,SAAS,EAAE,GAAG,GACd,GACI,EAER,KAAC,KAAK,IACJ,KAAK,EAAC,aAAa,EACnB,IAAI,EAAC,aAAa,EAClB,IAAI,EAAC,uDAAuD,YAE5D,mBAAU,KAAK,EAAC,UAAU,EAAC,EAAE,EAAC,aAAa,EAAC,IAAI,EAAC,aAAa,EAAC,QAAQ,kBACpE,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,GACnB,GACL,EAER,eAAK,KAAK,EAAC,KAAK,aACd,KAAC,KAAK,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,gBAAgB,YACvC,iBAAQ,KAAK,EAAC,QAAQ,EAAC,EAAE,EAAC,gBAAgB,EAAC,IAAI,EAAC,gBAAgB,YAC7D,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC9B,iBAAQ,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,gBAAgB,CAAC,KAAK,IAAI,YAC7D,IAAI,GACE,CACV,CAAC,GACK,GACH,EACR,KAAC,KAAK,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,WAAW,YACnC,iBAAQ,KAAK,EAAC,QAAQ,EAAC,EAAE,EAAC,WAAW,EAAC,IAAI,EAAC,WAAW,YACnD,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACzB,iBAAQ,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,KAAK,YAC1D,KAAK,GACC,CACV,CAAC,GACK,GACH,EACR,KAAC,KAAK,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,WAAW,YACnC,kBAAQ,KAAK,EAAC,QAAQ,EAAC,EAAE,EAAC,WAAW,EAAC,IAAI,EAAC,WAAW,aACpD,iBAAQ,KAAK,EAAC,EAAE,4BAAqB,EACpC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC1B,iBAAQ,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,KAAK,YAC1D,KAAK,GACC,CACV,CAAC,IACK,GACH,IACJ,EAEN,KAAC,KAAK,IAAC,KAAK,EAAC,UAAU,EAAC,IAAI,EAAC,UAAU,EAAC,IAAI,EAAC,sCAAsC,YACjF,gBAAO,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,EAAE,EAAC,UAAU,EAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,GAAI,GAC5F,EAER,+BACE,mCAAoB,EACpB,YAAG,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,cAAc,6FAEhC,EACJ,eAAK,KAAK,EAAC,KAAK,aACd,gBAAO,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,WAAW,EAAC,WAAW,EAAC,MAAM,EAAC,KAAK,EAAC,YAAY,EAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,GAAI,EAC9H,gBAAO,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,WAAW,EAAC,WAAW,EAAC,IAAI,EAAC,KAAK,EAAC,YAAY,EAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,GAAI,EAC5H,gBAAO,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,gBAAgB,EAAC,WAAW,EAAC,KAAK,EAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAC,YAAY,EAAC,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,IAAI,KAAK,GAAI,EACtJ,iBAAQ,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,cAAc,EAAC,KAAK,EAAC,YAAY,YAC1D,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC9B,kBAAQ,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,KAAK,MAAM,qBACvE,MAAM,IACJ,CACV,CAAC,GACK,IACL,IACG,EAEX,KAAC,KAAK,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,8CAA8C,YACnF,gBAAO,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,EAAE,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,WAAW,EAAC,4BAA4B,GAAG,GAC5H,EAER,KAAC,KAAK,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,kBAAkB,YACrD,gBAAO,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,EAAE,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,WAAW,EAAC,uBAAuB,GAAG,GACpH,EAER,+BACE,4CAA6B,EAC7B,YAAG,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,cAAc,iLAGhC,EACH,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC9B,iBAAO,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,yCAAyC,aAChE,gBACE,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,aAAa,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,KAAK,MAAM,EACzD,KAAK,EAAC,mBAAmB,GACzB,EACF,2BACE,2BAAS,YAAY,CAAC,MAAM,CAAC,GAAU,EACvC,cAAM,EACN,eAAM,KAAK,EAAC,MAAM,YAAE,WAAW,CAAC,MAAM,CAAC,GAAQ,IAC1C,IACD,CACT,CAAC,IACO,EAEX,+BACE,4CAA6B,EAC7B,YAAG,KAAK,EAAC,aAAa,2KAGlB,IACK,EAEX,iBAAQ,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,QAAQ,6BAElC,IACJ,CACR,IACG,EAEN,gBAAO,KAAK,EAAC,OAAO,YAClB,MAAC,IAAI,eACH,cAAK,KAAK,EAAC,aAAa,YACtB,aAAI,KAAK,EAAC,YAAY,8CAAmC,GACrD,EACN,cAAK,KAAK,EAAC,YAAY,mDAAyC,EAChE,YAAG,KAAK,EAAC,aAAa,oDAAwC,EAC9D,cAAK,KAAK,EAAC,YAAY,6CAAiC,EACxD,YAAG,KAAK,EAAC,aAAa,8DAAkD,EACxE,cAAK,KAAK,EAAC,YAAY,qDAA2C,IAC7D,GACD,IACJ,CACP,CAAC;AAEF,MAAM,YAAY,GAA2B;IAC3C,OAAO,EAAE,gBAAgB;IACzB,QAAQ,EAAE,sBAAsB;IAChC,YAAY,EAAE,qBAAqB;CACpC,CAAC;AAEF,MAAM,WAAW,GAA2B;IAC1C,OAAO,EAAE,oEAAoE;IAC7E,QAAQ,EACN,wGAAwG;IAC1G,YAAY,EACV,qHAAqH;CACxH,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAKrB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAC/C,eAAK,KAAK,EAAC,OAAO,aAChB,eAAK,KAAK,EAAC,QAAQ,aACjB,0BACE,uBAAK,GAAG,CAAC,KAAK,GAAM,EACpB,aAAG,KAAK,EAAC,MAAM,aACZ,GAAG,CAAC,GAAG,CAAC,IAAI,SAAI,KAAC,KAAK,IAAC,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,YAAG,GAAG,CAAC,MAAM,GAAS,IACvG,IACA,EACN,cAAK,KAAK,EAAC,KAAK,YACb,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAC5B,eAAM,MAAM,EAAC,MAAM,EAAC,MAAM,EAAE,YAAY,GAAG,CAAC,IAAI,UAAU,YACxD,iBAAQ,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,QAAQ,wBAExB,GACJ,CACR,CAAC,CAAC,CAAC,CACF,8BACE,YAAG,KAAK,EAAC,mBAAmB,EAAC,IAAI,EAAE,SAAS,GAAG,CAAC,IAAI,EAAE,0BAElD,EACJ,eAAM,MAAM,EAAC,MAAM,EAAC,MAAM,EAAE,YAAY,GAAG,CAAC,IAAI,QAAQ,YACtD,iBAAQ,KAAK,EAAC,mBAAmB,EAAC,IAAI,EAAC,QAAQ,sBAEtC,GACJ,IACN,CACJ,GACG,IACF,EAEL,GAAG,CAAC,MAAM,KAAK,OAAO,IAAI,CACzB,KAAC,KAAK,IAAC,OAAO,EAAC,MAAM,oJAGb,CACT,EAED,mBAAS,KAAK,EAAC,OAAO,aACpB,yBACG,YAAY,CAAC,MAAM,OAAG,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,IAC9E,EACJ,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC3B,KAAC,KAAK,8BAAoB,CAC3B,CAAC,CAAC,CAAC,CACF,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAChC,MAAC,IAAI,eACH,eAAK,KAAK,EAAC,QAAQ,aACjB,cAAI,KAAK,EAAC,YAAY,aACnB,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,SAAS,EAAE,GAAG,EAC7C,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,SAAS,IAAI,CAC7C,YAAG,KAAK,EAAC,OAAO,EAAC,IAAI,EAAE,UAAU,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,YAC5D,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,GAC3B,CACL,IACE,EACL,gBAAM,KAAK,EAAC,KAAK,aACd,WAAW,CAAC,KAAK,KAAK,IAAI,IAAI,CAC7B,MAAC,KAAK,IAAC,OAAO,EAAC,UAAU,wBACf,WAAW,CAAC,KAAK,CAAC,IAAI,EAC7B,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,IAC7C,CACT,EACD,KAAC,KAAK,IAAC,OAAO,EAAC,SAAS,YAAE,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,GAAS,IACxD,IACH,EACL,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;6BACjC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;6BACnD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACrB,aAAG,KAAK,EAAC,OAAO,aACd,6BAAS,GAAG,SAAW,OAAE,KAAK,IAC5B,CACL,CAAC,EACH,WAAW,CAAC,MAAM,KAAK,IAAI,IAAI,CAC9B,8BACE,kBAAS,KAAK,EAAC,OAAO,uBAAiB,EACvC,KAAC,KAAK,IAAC,IAAI,EAAE,WAAW,CAAC,MAAM,GAAI,IAC3B,CACX,IACI,CACR,CAAC,CACH,IACO,EAEV,8BACE,yDAA2C,EAC3C,KAAC,KAAK,IAAC,IAAI,EAAE,IAAI,GAAI,EACrB,aAAG,KAAK,EAAC,aAAa,qCACA,2BAAO,SAAS,mBAAe,GAAG,CAAC,IAAI,IAAQ,IACjE,IACI,IACN,CACP,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAA2B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACpE,cAAK,KAAK,EAAC,+BAA+B,YACxC,eAAK,KAAK,EAAC,OAAO,aAChB,2CAAwB,EACxB,YAAG,KAAK,EAAC,MAAM,0EAA8D,EAC5E,KAAK,KAAK,SAAS,IAAI,KAAC,KAAK,IAAC,OAAO,EAAC,OAAO,YAAE,KAAK,GAAS,EAC9D,KAAC,IAAI,cACH,gBAAM,KAAK,EAAC,OAAO,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,mBAAmB,aAC1D,KAAC,KAAK,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,YAC7B,gBAAO,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,EAAE,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,QAAC,SAAS,EAAE,GAAG,GAAI,GAC5E,EACR,KAAC,KAAK,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,YACnC,gBAAO,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC,WAAW,EAAC,UAAU,GAAG,GAC/E,EACR,KAAC,KAAK,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,aAAa,EAAC,IAAI,EAAC,WAAW,YACtD,mBAAU,KAAK,EAAC,UAAU,EAAC,EAAE,EAAC,aAAa,EAAC,IAAI,EAAC,aAAa,GAAY,GACpE,EACR,iBAAQ,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,QAAQ,6BAElC,IACJ,GACF,IACH,GACF,CACP,CAAC"}
|
package/docs/openjob.md
CHANGED
|
@@ -84,17 +84,23 @@ wants to know, and wanting to know is the reason to answer honestly.
|
|
|
84
84
|
|
|
85
85
|
## apply
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
One shape. An application is a POST against a published schema, which is the only
|
|
88
|
+
kind an agent can complete without a browser.
|
|
88
89
|
|
|
89
90
|
```json
|
|
90
91
|
{ "via": "board", "schema": { "fields": [ ... ] } }
|
|
91
|
-
{ "via": "url", "url": "https://example.com/careers/123" }
|
|
92
|
-
{ "via": "email", "email": "jobs@example.com" }
|
|
93
92
|
```
|
|
94
93
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
an agent
|
|
94
|
+
Earlier drafts of this spec also allowed `{ "via": "url" }` and
|
|
95
|
+
`{ "via": "email" }`, on the reasoning that a listing saying so was at least being
|
|
96
|
+
honest that an agent could not finish the job. That was the wrong trade. A board
|
|
97
|
+
where some listings are applicable and some are links is one an agent has to filter,
|
|
98
|
+
and the listings it filters out are exactly the ones an employer cared enough to
|
|
99
|
+
cross-post. Offsite applications are gone.
|
|
100
|
+
|
|
101
|
+
A URL still has a use, but it points the other way: give the board a URL to a job
|
|
102
|
+
posting and it imports it, so the listing lives here and is applicable here. It is a
|
|
103
|
+
source, never a destination.
|
|
98
104
|
|
|
99
105
|
### The application schema
|
|
100
106
|
|
|
@@ -160,9 +166,10 @@ both - the JSON-LD for search engines, the OpenJob document for everything else.
|
|
|
160
166
|
| `expiresAt` | `validThrough` |
|
|
161
167
|
| `apply.via === "board"` | `directApply: true` |
|
|
162
168
|
|
|
163
|
-
The
|
|
164
|
-
|
|
165
|
-
|
|
169
|
+
The two fields with no equivalent - `agentPolicy` and the address of the application
|
|
170
|
+
schema - travel in `additionalProperty`, which is the vocabulary's own escape hatch
|
|
171
|
+
and passes every validator. `directApply` is always `true`, because every listing is
|
|
172
|
+
applied to here.
|
|
166
173
|
|
|
167
174
|
One trap worth naming, because it catches almost everyone: a remote role needs
|
|
168
175
|
`jobLocationType: "TELECOMMUTE"` **and** a location the hire may sit in. A remote
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
-- Applications are taken on the board, never offsite.
|
|
2
|
+
--
|
|
3
|
+
-- A listing that sent applicants to a careers portal or a mailbox is a link to
|
|
4
|
+
-- a job rather than a job, and an agent cannot complete a form it cannot
|
|
5
|
+
-- reach, so those listings quietly excluded the readers this board exists for.
|
|
6
|
+
--
|
|
7
|
+
-- Rows written before the change are converted rather than deleted: the
|
|
8
|
+
-- listing is still a real opening posted by a real employer, and the only part
|
|
9
|
+
-- that was wrong is where the application went. A converted row keeps a null
|
|
10
|
+
-- apply_schema on purpose: `toApplyMethod` already reads null as
|
|
11
|
+
-- DEFAULT_APPLY_SCHEMA, so the default lives in one place and cannot drift
|
|
12
|
+
-- from a copy pasted into a migration.
|
|
13
|
+
--
|
|
14
|
+
-- The old target is kept in `apply_source_url` instead of being dropped. It is
|
|
15
|
+
-- where the listing came from, which is worth keeping for provenance and is
|
|
16
|
+
-- what a URL is allowed to mean here now.
|
|
17
|
+
|
|
18
|
+
alter table jobs add column if not exists apply_source_url text;
|
|
19
|
+
|
|
20
|
+
update jobs
|
|
21
|
+
set apply_source_url = coalesce(
|
|
22
|
+
apply_source_url,
|
|
23
|
+
case
|
|
24
|
+
when apply_via = 'url' then apply_url
|
|
25
|
+
when apply_via = 'email' then 'mailto:' || apply_email
|
|
26
|
+
end
|
|
27
|
+
)
|
|
28
|
+
where apply_via in ('url', 'email');
|
|
29
|
+
|
|
30
|
+
update jobs
|
|
31
|
+
set apply_via = 'board',
|
|
32
|
+
apply_url = null,
|
|
33
|
+
apply_email = null
|
|
34
|
+
where apply_via <> 'board';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
-- Candidates, so a resume that says "public" is actually somewhere.
|
|
2
|
+
--
|
|
3
|
+
-- `visibility` has had three values since the resumes table was written, and
|
|
4
|
+
-- the column comment says what they mean: "private: only the owner. link:
|
|
5
|
+
-- anyone with the URL. public: listed". Nothing ever listed them and nothing
|
|
6
|
+
-- served a URL, so choosing either of the last two did nothing at all.
|
|
7
|
+
--
|
|
8
|
+
-- A resume slug is unique per user, deliberately, because two people may both
|
|
9
|
+
-- have a "backend" one. That is fine for /me/resumes/<slug> and useless for a
|
|
10
|
+
-- public address, so a shared resume gets a second slug that is unique across
|
|
11
|
+
-- the board. It is minted when a resume is first shared rather than for every
|
|
12
|
+
-- resume, so a private resume claims no name in a namespace everyone shares.
|
|
13
|
+
|
|
14
|
+
alter table resumes add column if not exists public_slug text;
|
|
15
|
+
|
|
16
|
+
create unique index if not exists resumes_public_slug_key
|
|
17
|
+
on resumes (public_slug)
|
|
18
|
+
where public_slug is not null;
|
|
19
|
+
|
|
20
|
+
-- Listing the directory is "the public ones, newest first", so it reads by
|
|
21
|
+
-- visibility and orders by when the resume was last touched.
|
|
22
|
+
create index if not exists resumes_visibility_idx
|
|
23
|
+
on resumes (visibility, updated_at desc)
|
|
24
|
+
where visibility = 'public';
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
-- Give the resumes that were already shared their public address.
|
|
2
|
+
--
|
|
3
|
+
-- 0007 added public_slug and the application mints it when a resume is saved
|
|
4
|
+
-- as shared. That leaves every resume shared BEFORE the candidate directory
|
|
5
|
+
-- existed with a null slug, and `listPublicResumes` requires one, so a resume
|
|
6
|
+
-- its owner had already set to "public" stayed invisible. They are the exact
|
|
7
|
+
-- resumes the directory was built for: someone asked to be listed and the
|
|
8
|
+
-- board had nowhere to list them.
|
|
9
|
+
--
|
|
10
|
+
-- Named after the person, like the application does, falling back to the
|
|
11
|
+
-- resume title and then to "candidate". Duplicates get a numeric suffix, and
|
|
12
|
+
-- the whole thing is guarded by `not exists` so it can never collide with a
|
|
13
|
+
-- slug the application has already handed out.
|
|
14
|
+
--
|
|
15
|
+
-- This is deliberately a one-time correction rather than a rule: new resumes
|
|
16
|
+
-- get their slug from ensurePublicSlug on save.
|
|
17
|
+
|
|
18
|
+
with base as (
|
|
19
|
+
select
|
|
20
|
+
id,
|
|
21
|
+
trim(
|
|
22
|
+
both '-' from
|
|
23
|
+
lower(
|
|
24
|
+
regexp_replace(
|
|
25
|
+
coalesce(nullif(parsed ->> 'name', ''), nullif(title, ''), 'candidate'),
|
|
26
|
+
'[^a-zA-Z0-9]+', '-', 'g'
|
|
27
|
+
)
|
|
28
|
+
)
|
|
29
|
+
) as raw
|
|
30
|
+
from resumes
|
|
31
|
+
where visibility in ('link', 'public')
|
|
32
|
+
and public_slug is null
|
|
33
|
+
),
|
|
34
|
+
named as (
|
|
35
|
+
select id, case when raw = '' then 'candidate' else raw end as slug from base
|
|
36
|
+
),
|
|
37
|
+
numbered as (
|
|
38
|
+
select
|
|
39
|
+
id,
|
|
40
|
+
slug,
|
|
41
|
+
row_number() over (partition by slug order by id) as position
|
|
42
|
+
from named
|
|
43
|
+
)
|
|
44
|
+
update resumes as r
|
|
45
|
+
set public_slug = case
|
|
46
|
+
when numbered.position = 1 then numbered.slug
|
|
47
|
+
else numbered.slug || '-' || numbered.position
|
|
48
|
+
end
|
|
49
|
+
from numbered
|
|
50
|
+
where r.id = numbered.id
|
|
51
|
+
and not exists (
|
|
52
|
+
select 1 from resumes as taken
|
|
53
|
+
where taken.public_slug = case
|
|
54
|
+
when numbered.position = 1 then numbered.slug
|
|
55
|
+
else numbered.slug || '-' || numbered.position
|
|
56
|
+
end
|
|
57
|
+
);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
-- Clear the public slugs that came out of a flattened resume.
|
|
2
|
+
--
|
|
3
|
+
-- 0008 built each slug from the resume's parsed name. A resume saved before
|
|
4
|
+
-- job descriptions, resumes and cover letters stopped having their newlines
|
|
5
|
+
-- flattened parses as one h1 holding the entire document, so "the name" was
|
|
6
|
+
-- the whole CV and the slug it produced was thousands of characters long.
|
|
7
|
+
--
|
|
8
|
+
-- Those slugs are machine-made from a bug rather than an address anybody has
|
|
9
|
+
-- ever been given, so clearing them costs nothing and leaving them means a
|
|
10
|
+
-- candidate page whose URL is a paragraph. Nulling them lets ensurePublicSlug
|
|
11
|
+
-- mint a sane one on the next save, now that it is bounded and checks that a
|
|
12
|
+
-- name is name-shaped.
|
|
13
|
+
--
|
|
14
|
+
-- The cutoff is generous on purpose: a real name that slugifies past 80
|
|
15
|
+
-- characters is not something to guess at, and the application caps new ones
|
|
16
|
+
-- at 60, so nothing it mints can be caught by this.
|
|
17
|
+
|
|
18
|
+
update resumes
|
|
19
|
+
set public_slug = null
|
|
20
|
+
where public_slug is not null
|
|
21
|
+
and length(public_slug) > 80;
|