@juicedresume/mcp 0.3.0 → 0.3.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.
- package/dist/index.js +23 -7
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -215,6 +215,23 @@ var TEMPLATE_IDS = [
|
|
|
215
215
|
"oneline",
|
|
216
216
|
"rolodex"
|
|
217
217
|
];
|
|
218
|
+
var MULTI_COLUMN_TEMPLATES = [
|
|
219
|
+
"aurora",
|
|
220
|
+
"coral",
|
|
221
|
+
"prism",
|
|
222
|
+
"deedy",
|
|
223
|
+
"nova",
|
|
224
|
+
"axis",
|
|
225
|
+
"kintsugi",
|
|
226
|
+
"portrait",
|
|
227
|
+
"cameo",
|
|
228
|
+
"bauhaus",
|
|
229
|
+
"europass",
|
|
230
|
+
"rolodex"
|
|
231
|
+
];
|
|
232
|
+
function isMultiColumnTemplate(template) {
|
|
233
|
+
return !!template && MULTI_COLUMN_TEMPLATES.includes(template);
|
|
234
|
+
}
|
|
218
235
|
var Styling = z.object({
|
|
219
236
|
template: z.enum(TEMPLATE_IDS).default("aurora"),
|
|
220
237
|
colorMode: z.enum(["light", "dark"]).default("light"),
|
|
@@ -1499,16 +1516,15 @@ function dobAgePenalty(resume) {
|
|
|
1499
1516
|
};
|
|
1500
1517
|
}
|
|
1501
1518
|
function singleColumnHard(resume) {
|
|
1502
|
-
const
|
|
1503
|
-
const twoCol = resume.sections.some((s) => s.columns === 2) || layout === "two-column" || layout === "sidebar-left" || layout === "sidebar-right";
|
|
1519
|
+
const twoCol = isMultiColumnTemplate(resume.styling?.template);
|
|
1504
1520
|
return {
|
|
1505
1521
|
dim: "ats",
|
|
1506
1522
|
check: hardCheck(
|
|
1507
1523
|
"AT12.single-column-hard",
|
|
1508
1524
|
"Single-column layout (ATS-critical)",
|
|
1509
1525
|
twoCol ? 0 : 1,
|
|
1510
|
-
twoCol ? "Two-column / sidebar
|
|
1511
|
-
"Switch to a single-column template (Jake, Harvard, Classic). Multi-column is
|
|
1526
|
+
twoCol ? "Two-column / sidebar template \u2014 a top cause of ATS parse failure. Workday can concatenate columns into gibberish. (The ATS-PDF export is always single-column, but the visual PDF is not.)" : "Single-column layout \u2014 every ATS parses this cleanly.",
|
|
1527
|
+
"Switch to a single-column template (Jake, Harvard, Classic) in the Templates tab. Multi-column is a top score-destroyer in ATS systems."
|
|
1512
1528
|
)
|
|
1513
1529
|
};
|
|
1514
1530
|
}
|
|
@@ -2524,7 +2540,7 @@ function atsChecks(resume, b) {
|
|
|
2524
2540
|
const s = resume.styling;
|
|
2525
2541
|
const p = resume.personal;
|
|
2526
2542
|
const allText = b.bullets.map((x) => x.text).join(" ");
|
|
2527
|
-
const isSingleCol = s.
|
|
2543
|
+
const isSingleCol = !isMultiColumnTemplate(s.template);
|
|
2528
2544
|
const isSafeFont = SAFE_FONTS.has(s.fontHeading) && SAFE_FONTS.has(s.fontBody);
|
|
2529
2545
|
const fontSizeOK = s.fontSize >= 9.5 && s.fontSize <= 12;
|
|
2530
2546
|
const safeBullet = SAFE_BULLET_GLYPHS.has(s.bulletGlyph === "disc" ? "\u2022" : s.bulletGlyph === "dash" ? "-" : "");
|
|
@@ -2563,7 +2579,7 @@ function atsChecks(resume, b) {
|
|
|
2563
2579
|
isSingleCol ? 1 : 0,
|
|
2564
2580
|
isSingleCol ? "Layout is single-column." : "Multi-column layout \u2014 many ATS parsers scramble reading order.",
|
|
2565
2581
|
[],
|
|
2566
|
-
!isSingleCol ? "
|
|
2582
|
+
!isSingleCol ? "Pick a single-column template (e.g. Jake, Harvard, Classic) in the Templates tab." : void 0,
|
|
2567
2583
|
!isSingleCol ? "hard" : "soft"
|
|
2568
2584
|
),
|
|
2569
2585
|
mk(
|
|
@@ -3325,7 +3341,7 @@ function runOnce(cmd, args, cwd) {
|
|
|
3325
3341
|
import { promises as fs3 } from "fs";
|
|
3326
3342
|
import path3 from "path";
|
|
3327
3343
|
var server = new Server(
|
|
3328
|
-
{ name: "juiced-resume", version: "0.3.
|
|
3344
|
+
{ name: "juiced-resume", version: "0.3.1" },
|
|
3329
3345
|
{ capabilities: { tools: {} } }
|
|
3330
3346
|
);
|
|
3331
3347
|
var idArg = z2.object({ id: z2.string() });
|
package/package.json
CHANGED