{
  "schema": "leumas.docs.page/1",
  "id": "adapter:domain/jd-writer",
  "slug": "adapters/domain/jd-writer",
  "kind": "capabilities",
  "bucket": "package",
  "title": "jd-writer (engines/adapters/domain/jd-writer)",
  "name": "jd-writer",
  "eyebrow": "engines/adapters/domain/jd-writer",
  "chip": null,
  "summary": "Job-description authoring microservice for recruiters, hiring managers and HR: generate a complete JD (summary, responsibilities, requirements, benefits, equal-opportunity statement) from {role...",
  "keywords": [
    "jd-writer",
    "job-description",
    "inclusivity",
    "bias",
    "gendered",
    "ageist",
    "ableist",
    "exclusionary"
  ],
  "audience": "both",
  "funnel": {
    "product": null,
    "cta": null
  },
  "body": "# jd-writer (`engines/adapters/domain/jd-writer`)\n\nIntelligent job-description authoring microservice. Turns `{role, level, company}` into a complete,\ninclusive job post — and audits existing ones. Hybrid: every tool has a deterministic heuristic/template\ncore that runs fully offline; generative tools optionally enrich via a reachable LLM and tag results\n`mode: 'heuristic' | 'llm'` (never require a model, never throw on a down model).\n\n## Tools\n\n| tool | input | what it does |\n|------|-------|--------------|\n| `write` | `{ role, level?, company?, remote?, industry? }` | Full JD: title, summary, experience range, responsibilities, requirements, nice-to-haves, benefits, EEO statement. |\n| `optimize` | `{ text }` | Readability (Flesch + grade level), bias flag count, concrete fix list, 0–100 score. |\n| `inclusivityCheck` | `{ text }` | Flags gendered / ageist / ableist / exclusionary / hype wording with neutral rewrites + an auto-rewritten draft and inclusivity score. |\n| `seniorityCalibrate` | `{ role, level }` | Recommends title, years range, scope, autonomy, leadership expectation for the level. |\n| `requirements` | `{ role, level }` | Must-have vs nice-to-have + a competency matrix with expected proficiency. |\n| `benefitsList` | `{ remote?, count? }` | Competitive, categorized benefits/perks list (health/time/money/growth/flexibility/culture/perks). |\n\nLevels: `intern, junior, mid, senior, lead, staff, principal, manager, director, vp` (aliases: entry→junior, sr→senior, jr→junior, mgr→manager…).\n\n## Usage\n\n```js\nimport jd from './index.js';\nawait jd.adapters.write({ role: 'Backend Engineer', level: 'senior', company: 'Acme', remote: true });\njd.adapters.inclusivityCheck({ text: 'We want a young rockstar ninja who is a great culture fit.' });\njd.adapters.seniorityCalibrate({ role: 'Product Manager', level: 'lead' });\n```\n\n## DRY boundaries\n\n- Bias/inclusivity here is **JD-domain** (biased job wording + rewrites) — not the generic text stats\n  of `a-text` / `nlp`.\n- `jd-writer` is the **write** side (author the posting); `resume-scorer` is the **read** side (score\n  candidates against a JD) and `interview-kit` is the **assess** side.\n- Self-contained: no cross-pack imports except `../_shared/llm.js` for the optional AI mode.\n",
  "source": {
    "path": "shared/engines/adapters/domain/jd-writer/README.md",
    "blobSha": "",
    "commit": "",
    "committedAt": "",
    "provenance": "no-git",
    "bytes": 2464,
    "hash": "99cc6de2770afed3d936444eb5a0cc478970187b"
  },
  "urls": {
    "html": "/p/adapters/domain/jd-writer",
    "json": "/docs/adapters/domain/jd-writer.json",
    "md": "/docs/adapters/domain/jd-writer.md"
  },
  "links": {
    "composes": [],
    "usedBy": [],
    "product": [],
    "howTo": [],
    "skills": []
  }
}
