{"id":"b763a61d-af5d-4ea8-9678-6437f357df41","shortId":"kec3rw","kind":"skill","title":"resumx","tagline":"Work with Resumx, a Markdown-to-PDF resume renderer. Use when creating, editing, converting, building, styling, or tailoring resumes. Covers syntax, CLI, style options, icons, tags, views, variables, multi-language, page fitting, validation, custom CSS, and AI-assisted resume wri","description":"# Resumx\n\nMarkdown → PDF/HTML/PNG/DOCX resume renderer. Auto-fits to target page count, tags + views for tailored output from one source file.\n\n**Coming from another renderer or builder?** Convert and quickstart in one step: [resumx.dev/#import](https://resumx.dev/#import). Drop PDF, DOCX, LaTeX, JSON Resume, or RenderCV YAML to get Markdown you can edit and render with Resumx.\n\n## Resources\n\n| Resource                                         | When                                                              |\n| ------------------------------------------------ | ----------------------------------------------------------------- |\n| [writing-resume.md](resources/writing-resume.md) | Interactive step-by-step resume creation                          |\n| [tagging-resume.md](resources/tagging-resume.md) | Systematic tagging for tailored output, hierarchical tag taxonomy |\n\n## Markdown Syntax\n\nStandard Markdown + inline columns, bracketed spans, fenced divs.\n\n**Structure:** `# Name` → `email | github | linkedin` (contact) → `## Section` → `### Title || Date` → `_Subtitle_ || Location` → `- Bullets` → definition lists for skills (`Term` + `: values`).\n\n**Inline columns:** `||` splits into left/right columns. `### Google || Jan 2020 - Present`, `_Senior SWE_ || San Francisco, CA`. 3+ columns: `A || B || C`. Escape: `\\||`.\n\n**Formatting:** `**Bold**`, `_Italic_`, `H~2~O` (sub), `E = mc^2^` (super), `--`/`---` (en/em-dash).\n\n**Tables:** Standard markdown tables.\n\n## Classes, IDs & Fenced Divs\n\n**Bracketed spans:** `[text]{.class}` → `<span>`. Example: `### Google [2022 - Present]{.right}`.\n\n**Element attributes:** `{...}` at end of block applies to whole element: `- Built dashboards {.@frontend}`.\n\n**Fenced divs:** `:::` wraps block content. Single child = no wrapper div; multiple = auto `<div>`. Prefix tag name: `::: footer {.text-center}`.\n\n```markdown\n::: {.grid .grid-cols-3}\n\n- JavaScript\n- TypeScript\n  :::\n```\n\n## Frontmatter\n\nYAML (`---`) or TOML (`+++`). CLI flags always override.\n\n| Field          | Type                                    | Default      | Description                                               |\n| -------------- | --------------------------------------- | ------------ | --------------------------------------------------------- |\n| `css`          | `string \\| string[]`                    | None         | CSS path(s) or inline (`.css` suffix = file, else inline) |\n| `output`       | `string`                                | Input stem   | Output path/template (`{view}`, `{lang}`, `{format}`)     |\n| `pages`        | `positive integer`                      | No clamping  | Target page count                                         |\n| `sections`     | `{ hide?: string[], pin?: string[] }`   | Source order | Section visibility/ordering                               |\n| `bullet-order` | `none \\| tag`                           | `none`       | Bullet ordering strategy                                  |\n| `style`        | `Record<string, string>`                | —            | Style option overrides                                    |\n| `tags`         | `Record<string, string[] \\| TagConfig>` | —            | Tag composition / tag view config                         |\n| `vars`         | `Record<string, string>`                | —            | Template variables for `{{ }}`                            |\n| `icons`        | `Record<string, string>`                | —            | Custom icons (SVG, URL, base64)                           |\n| `extra`        | `Record<string, unknown>`               | —            | Arbitrary user data (unknown keys error otherwise)        |\n\n**Validation** (`validate` key): `extends` (default `recommended`; presets: `recommended`, `minimal`, `strict`, `none`). Rules: `missing-name`, `missing-contact`, `no-sections`, `no-entries`, `empty-bullet`, `long-bullet`, `single-bullet-section`, `unknown-fenced-div-tag`, `non-pt-font-size`.\n\n```yaml\n---\npages: 1\noutput: ./out/Jane_Smith-{view}\nbullet-order: tag\nstyle:\n  link-color: '#0ea5e9'\ntags:\n  fullstack: [frontend, backend]\n  leadership: false\nvars:\n  tagline: 'Full-stack engineer with 8 years of experience'\nvalidate:\n  extends: recommended\n  rules:\n    long-bullet: warning\n    single-bullet-section: off\nextra:\n  name: Jane Smith\n  target-role: Senior SWE\n---\n```\n\n## CLI\n\n```bash\nresumx <file>           # Render (defaults to resume.md, PDF)\nresumx init [filename]   # Create template\n```\n\n**⚠ Always run with `required_permissions: [\"all\"]`.** Playwright/Chromium needs syscalls blocked by Cursor's sandbox. Without this, rendering fails with \"Chromium not found\".\n\n**Flags:** `--css <path>` (repeatable, comma-sep), `-o/--output <value>`, `-f/--format <pdf|html|docx|png>` (repeatable, comma-sep), `-s/--style <k=v>` (repeatable), `--for <name-or-glob>` (tag/custom view name, glob, or `default`), `-v/--var <k=v>` (repeatable), `--hide <list>`, `--pin <list>`, `--bullet-order <none|tag>`, `-l/--lang <bcp47>` (repeatable, comma-sep), `-p/--pages <n>`, `-w/--watch`, `--check` (validate only), `--no-check`, `--strict`, `--min-severity <level>`.\n\n**Stdin:** `cat resume.md | resumx` or `git show HEAD~3:resume.md | resumx -o old`.\n\n**Output naming:** no view/langs → `resume.pdf`; with view → `resume-frontend.pdf`; with lang → `resume-en.pdf`; both → `frontend/resume-en.pdf`. Template vars: `{view}`, `{lang}`, `{format}`.\n\n## Style Options\n\nOverride via `style:` or `--style`.\n\n- **Typography:** `font-family`, `title-font-family`, `content-font-family`, `font-size` (11pt), `line-height` (1.4)\n- **Colors:** `text-color`, `link-color`, `background-color`\n- **Headings:** `name-size`, `name-caps` (small-caps/all-small-caps/petite-caps/unicase/normal), `name-weight`, `name-italic`, `name-color`, `section-title-size`, `section-title-caps`, `section-title-weight`, `section-title-italic`, `section-title-color`, `section-title-border`, `header-align`, `section-title-align`, `entry-title-size`, `entry-title-weight`, `entry-title-italic`\n- **Links:** `link-underline` (underline/none)\n- **Spacing:** `gap` (unitless scale), `page-margin-x`, `page-margin-y`, `section-gap`, `entry-gap`, `row-gap`, `col-gap`, `list-indent`\n- **Lists:** `bullet-style` (disc/circle/square/none)\n- **Features:** `auto-icons` (inline/none)\n\n### Custom CSS\n\nCascades on top of defaults. Reference: `css: my-styles.css` or `--css`. Inline: `css: | h2 { letter-spacing: 0.05em; }`. Mix in array:\n\n```yaml\ncss:\n  - base.css\n  - |\n    h2::after { content: ''; flex: 1; border-bottom: var(--section-title-border); }\n```\n\nBundled `@import` modules: `common/base.css` (reset, typography, layout), `common/icons.css`, `common/utilities.css` (`.small-caps`, `.sr-only`, `.max-N`).\n\n## Fit to Page\n\n`pages: N` auto-fits. Shrink order (least visible first): 1) Gaps 2) Line height 3) Font size 4) Margins (last resort). For `pages: 1`, gaps also expand to fill.\n\n**Minimums:** font-size 9pt, line-height 1.15, section-gap 4px, entry-gap 1px, page-margin-y 0.3in, page-margin-x 0.35in. With `pages:` set, `style:` values are starting points that may shrink. Without `pages:`, applied as-is.\n\n## Icons\n\n`:icon-name:` (built-in), `:set/name:` (Iconify, 200k+), emoji shortcodes as fallback. Resolver: Frontmatter > Built-in > Iconify > Emoji.\n\n**Auto-icons** on links: `mailto:`, `tel:`, `linkedin.com`, `github.com`, `gitlab.com`, `bitbucket.org`, `stackoverflow.com`, `x.com`/`twitter.com`, `youtube.com`/`youtu.be`, `dribbble.com`, `behance.net`, `medium.com`, `dev.to`, `codepen.io`, `marketplace.visualstudio.com`. Disable: `style: { auto-icons: none }`.\n\n**Custom icons:** `icons: { mycompany: '<svg>...</svg>', partner: 'https://example.com/logo.svg' }`.\n\n## Tailwind CSS\n\nTailwind v4 compiled on-the-fly. Apply via `{.class}`: `[React]{.bg-blue-100 .text-blue-800 .px-2 .rounded}`. Works on spans, element attrs, fenced divs. Arbitrary values: `.text-[#ff6600]`. Built-in: `.small-caps`, `.sr-only`, `.max-1`–`.max-16`.\n\n## Tags\n\n`{.@name}` filters content for audiences. Untagged always passes. Tagged appears only for matching tag. Multiple: `{.@backend .@frontend}`. Render: `--for frontend`.\n\n**Hierarchical:** `/` nesting (`{.@backend/node}`). A view includes ancestors + self + descendants + untagged; siblings excluded. `--for backend/node` → `@backend` + `@backend/node` + untagged (no `@backend/jvm`). `--for backend` → all descendants + untagged. Unlimited depth.\n\n**Composition** in frontmatter: `fullstack: [frontend, backend]`. Hierarchical works as constituents, lineage expands per constituent. Recursive expansion (`startup-cto` includes `frontend`/`backend` via `fullstack`). Typos error with suggestion.\n\n```yaml\ntags:\n  fullstack: [frontend, backend]\n  node-fullstack: [frontend, backend/node]\n  tech-lead: [backend, leadership]\n  startup-cto: [fullstack, leadership, architecture]\n```\n\n## Views\n\nTags = what to show. Views = how to show it. Every render uses a view.\n\n| Kind      | Where                     | Nature                      |\n| --------- | ------------------------- | --------------------------- |\n| Default   | Frontmatter render fields | Base config                 |\n| Tag view  | `tags:` expanded form     | Per-tag overrides, implicit |\n| Custom    | `.view.yaml` files        | Per-application             |\n| Ephemeral | CLI flags                 | One-off                     |\n\n**Tag views:** Every tag auto-generates a view. Expanded form adds render overrides. Shorthand `fullstack: [frontend, backend]` = `fullstack: { extends: [frontend, backend] }`.\n\n```yaml\ntags:\n  frontend:\n    sections: { hide: [publications], pin: [skills, projects] }\n    pages: 1\n  fullstack:\n    extends: [frontend, backend]\n    sections: { pin: [work, skills] }\n    pages: 2\n```\n\n**Custom views:** `.view.yaml` files, auto-discovered recursively. Fields: `selects` (tags to include), `sections`, `pages`, `bullet-order`, `vars`, `style`, `css`, `format`, `output`. No `selects` = all content; `selects: []` = untagged only. Render: `--for stripe-swe`. Batch: `--for '*'`/`--for 'stripe-*'`. `--for default` = default view (no filtering); combine: `--for default,frontend`. Don't name a view `default`.\n\n```yaml\n# stripe.view.yaml\nstripe-swe:\n  selects: [backend, distributed-systems, leadership]\n  sections: { hide: [publications], pin: [skills, work] }\n  vars:\n    tagline: 'Stream Processing, Event-Driven Architecture, Go, Kafka'\n```\n\n**Ephemeral:** CLI flags inline: `resumx resume.md --for backend -v tagline=\"Stream Processing, Go\" --pin skills,work -o stripe.pdf`.\n\n**Cascade:** Built-in defaults → Default view → Tag/Custom view → Ephemeral (CLI).\n\n## Template Variables\n\n`{{ name }}` placeholders. Define in `vars:`, custom view, or `-v`. Undefined/empty → line removed. Values can contain markdown. Variable with no matching placeholder → error.\n\n```markdown\n# Jane Doe\n\njane@example.com | github.com/jane\n{{ tagline }}\n```\n\n## Sections\n\n`sections: { hide: [publications, volunteer], pin: [skills, work] }`. `hide` removes, `pin` moves to top in order, rest follow source order. Values: `work`, `education`, `skills`, `projects`, `awards`, `certificates`, `publications`, `volunteer`, `languages`, `interests`, `references`, `basics`. CLI: `--hide publications --pin skills,work`.\n\n## Multi-Language\n\n`{lang=xx}` (BCP 47). Untagged appears in all. Combine with tags: `{lang=en .@backend}`. Filter: `--lang en` or `--lang en,fr`. Dimensions multiply: 2 langs × 2 tags = 4 PDFs.\n\n```markdown\n## [Experience]{lang=en} [Expérience]{lang=fr}\n\n### Google\n\n- [Reduced API latency by 60%]{lang=en}\n  [Réduction de la latence API de 60%]{lang=fr}\n```\n\n## Semantic Selectors\n\nAuto-generated HTML attributes: **Header:** `[data-field='name|email|phone|profiles|location|url']`, `[data-network='github']`. **Sections:** `section[data-section='work|education|skills|projects|awards|certificates|publications|volunteer|languages|interests|references|basics']` (fuzzy keyword match). **Entries:** `.entries` (container), `.entry` (`<article>`). **Dates:** `<time datetime=\"ISO8601\">`, `.date-range`.\n\n## Git Integration\n\nSetup alias (once):\n\n```bash\ngit config alias.resumx '!f() { spec=\"$1\"; shift; case \"$spec\" in *:*) ;; *) spec=\"$spec:resume.md\";; esac; tag=\"${spec%%:*}\"; header=$(git tag -l --format=\"%(refname:short)\" \"$tag\" 2>/dev/null); subject=$(git tag -l --format=\"%(contents:subject)\" \"$tag\" 2>/dev/null); [ -n \"$header\" ] && printf \"\\033[2m%s\\033[0m\\n\\033[1m%s\\033[0m\\n\\n\" \"$header\" \"$subject\"; git show \"$spec\" | resumx \"$@\"; }; f'\n```\n\nTag applications: `git tag -a sent/stripe-2026-02 -m \"Tailored for L5 infra, emphasized Kafka + distributed systems\"`. Annotated tags print name + note before rendering.\n\n```bash\ngit resumx sent/stripe-2026-02:resume.md              # from tag\ngit resumx HEAD~3:resume.md --css my-styles.css -o stripe  # past commit\ngit show :resume.md | resumx -o staged                # staged changes\n```\n\n### Resume Template\n\n```markdown\n---\npages: 1\n---\n\n# Full Name\n\nemail@example.com | [linkedin.com/in/user](https://linkedin.com/in/user) | [github.com/user](https://github.com/user)\n\n{{ tagline }}\n\n## Education\n\n### University Name || Sept 2019 - June 2024\n\n_Degree Name_\n\n- GPA: 3.85\n\n## Work Experience\n\n### Company Name || Start - End\n\n_Job Title_\n\n- Achievement with quantified impact using `Technology`\n\n## Projects\n\n### Project Name _(Individual/Group)_\n\n- Description of what was built\n\n## Technical Skills\n\nLanguages\n: Java, Python, TypeScript\n\nFrameworks\n: React, Node.js, FastAPI\n```","tags":["resumx","skills","agent-skills","resume"],"capabilities":["skill","source-resumx","skill-resumx","topic-agent-skills","topic-resume","topic-skills"],"categories":["skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/resumx/skills/resumx","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add resumx/skills","source_repo":"https://github.com/resumx/skills","install_from":"skills.sh"}},"qualityScore":"0.460","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 21 github stars · SKILL.md body (13,499 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T01:01:54.304Z","embedding":null,"createdAt":"2026-04-18T23:06:06.052Z","updatedAt":"2026-04-22T01:01:54.304Z","lastSeenAt":"2026-04-22T01:01:54.304Z","tsv":"'-1':951 '-16':953 '-2':928 '/#import](https://resumx.dev/#import).':80 '/all-small-caps/petite-caps/unicase/normal':618 '/dev/null':1457,1467 '/in/user](https://linkedin.com/in/user)':1549 '/jane':1280 '/logo.svg''':905 '/out/jane_smith-':393 '/user](https://github.com/user)':1552 '0.05':731 '0.3':824 '0.35':830 '033':1471,1474,1477,1480 '0ea5e9':403 '0m':1475,1481 '1':391,743,783,797,1128,1437,1543 '1.15':811 '1.4':597 '100':922 '11pt':593 '1m':1478 '1px':819 '2':180,785,1138,1347,1349,1456,1466 '200k':858 '2019':1558 '2020':158 '2022':197 '2024':1560 '2m':1472 '3':165,237,788 '3.85':1564 '4':791,1351 '47':1327 '4px':815 '60':1365,1374 '8':417 '800':926 '9pt':807 'achiev':1573 'add':1107 'ai':41 'ai-assist':40 'alia':1429 'alias.resumx':1434 'align':654,658 'also':799 'alway':246,456,961 'ancestor':981 'annot':1506 'anoth':68 'api':1362,1372 'appear':964,1329 'appli':206,845,915 'applic':1089,1492 'arbitrari':338,937 'architectur':1049,1218 'array':735 'as-i':846 'assist':42 'attr':934 'attribut':201,1383 'audienc':959 'auto':51,224,710,776,871,895,1101,1144,1380 'auto-discov':1143 'auto-fit':50,775 'auto-gener':1100,1379 'auto-icon':709,870,894 'award':1307,1407 'b':168 'backend':407,970,989,995,1006,1022,1033,1042,1113,1117,1132,1200,1228,1337 'backend/jvm':993 'backend/node':977,988,990,1038 'background':606 'background-color':605 'base':1072 'base.css':738 'base64':333 'bash':444,1431,1513 'basic':1314,1414 'batch':1174 'bcp':1326 'behance.net':887 'bg':920 'bg-blue':919 'bitbucket.org':880 'block':205,216,465 'blue':921,925 'bold':172 'border':651,745,751 'border-bottom':744 'bottom':746 'bracket':128,191 'build':17 'builder':71 'built':210,854,866,942,1241,1587 'built-in':853,865,941,1240 'bullet':143,293,298,371,374,377,396,427,431,516,705,1155 'bullet-ord':292,395,515,1154 'bullet-styl':704 'bundl':752 'c':169 'ca':164 'cap':614,617,635,763,946 'cascad':715,1239 'case':1439 'cat':541 'center':231 'certif':1308,1408 'chang':1538 'check':530,535 'child':219 'chromium':475 'clamp':279 'class':187,194,917 'cli':24,244,443,1091,1222,1249,1315 'codepen.io':890 'col':236,698 'col-gap':697 'color':402,598,601,604,607,627,647 'column':127,151,155,166 'combin':1184,1332 'come':66 'comma':482,494,524 'comma-sep':481,493,523 'commit':1530 'common/base.css':755 'common/icons.css':759 'common/utilities.css':760 'compani':1567 'compil':910 'composit':314,1001 'config':317,1073,1433 'constitu':1010,1014 'contact':137,362 'contain':1266,1420 'content':217,587,741,957,1165,1463 'content-font-famili':586 'convert':16,72 'count':56,282 'cover':22 'creat':14,454 'creation':111 'css':38,252,256,261,479,714,721,724,726,737,907,1159,1525 'cto':1019,1046 'cursor':467 'custom':37,329,713,898,1084,1139,1257 'dashboard':211 'data':340,1386,1395,1401 'data-field':1385 'data-network':1394 'data-sect':1400 'date':140,1422,1424 'date-rang':1423 'de':1369,1373 'default':250,349,447,507,719,1068,1179,1180,1186,1193,1243,1244 'defin':1254 'definit':144 'degre':1561 'depth':1000 'descend':983,997 'descript':251,1583 'dev.to':889 'dimens':1345 'disabl':892 'disc/circle/square/none':707 'discov':1145 'distribut':1202,1504 'distributed-system':1201 'div':131,190,214,222,382,936 'docx':83,490 'doe':1276 'dribbble.com':886 'driven':1217 'drop':81 'e':178 'edit':15,95 'educ':1304,1404,1554 'element':200,209,933 'els':264 'em':732 'email':134,1389 'email@example.com':1546 'emoji':859,869 'emphas':1502 'empti':370 'empty-bullet':369 'en':1336,1340,1343,1356,1367 'en/em-dash':182 'end':203,1570 'engin':415 'entri':368,660,664,668,692,817,1418,1419,1421 'entry-gap':691,816 'entry-title-ital':667 'entry-title-s':659 'entry-title-weight':663 'ephemer':1090,1221,1248 'error':343,1026,1273 'esac':1445 'escap':170 'event':1216 'event-driven':1215 'everi':1060,1098 'exampl':195 'example.com':904 'example.com/logo.svg''':903 'exclud':986 'expand':800,1012,1077,1105 'expans':1016 'experi':420,1354,1566 'expérienc':1357 'extend':348,422,1115,1130 'extra':334,434 'f':486,1435,1490 'fail':473 'fallback':862 'fals':409 'famili':581,585,589 'fastapi':1597 'featur':708 'fenc':130,189,213,381,935 'ff6600':940 'field':248,1071,1147,1387 'file':65,263,1086,1142 'filenam':453 'fill':802 'filter':956,1183,1338 'first':782 'fit':35,52,770,777 'flag':245,478,1092,1223 'flex':742 'fli':914 'follow':1299 'font':387,580,584,588,591,789,805 'font-famili':579 'font-siz':590,804 'footer':228 'form':1078,1106 'format':171,274,487,570,1160,1452,1462 'found':477 'fr':1344,1359,1376 'framework':1594 'francisco':163 'frontend':212,406,971,974,1005,1021,1032,1037,1112,1116,1120,1131,1187 'frontend/resume-en.pdf':565 'frontmatt':240,864,1003,1069 'full':413,1544 'full-stack':412 'fullstack':405,1004,1024,1031,1036,1047,1111,1114,1129 'fuzzi':1415 'gap':677,690,693,696,699,784,798,814,818 'generat':1102,1381 'get':91 'git':545,1426,1432,1449,1459,1486,1493,1514,1520,1531 'github':135,1397 'github.com':878,1279,1551 'github.com/jane':1278 'github.com/user](https://github.com/user)':1550 'gitlab.com':879 'glob':505 'go':1219,1233 'googl':156,196,1360 'gpa':1563 'grid':233,235 'grid-col':234 'h':174 'h2':727,739 'head':547,608,1522 'header':653,1384,1448,1469,1484 'header-align':652 'height':596,787,810 'hide':284,513,1122,1206,1284,1290,1316 'hierarch':119,975,1007 'html':489,1382 'icon':27,325,330,711,849,851,872,896,899,900 'icon-nam':850 'iconifi':857,868 'id':188 'impact':1576 'implicit':1083 'import':753 'includ':980,1020,1151 'indent':702 'individual/group':1582 'infra':1501 'init':452 'inlin':126,150,260,265,725,1224 'inline/none':712 'input':268 'integ':277 'integr':1427 'interact':105 'interest':1312,1412 'ital':173,624,643,670 'jan':157 'jane':436,1275 'jane@example.com':1277 'java':1591 'javascript':238 'job':1571 'json':85 'june':1559 'k':498,510 'kafka':1220,1503 'key':342,347 'keyword':1416 'kind':1065 'l':520,1451,1461 'l5':1500 'la':1370 'lang':273,521,562,569,1324,1335,1339,1342,1348,1355,1358,1366,1375 'languag':33,1311,1323,1411,1590 'last':793 'latenc':1363,1371 'latex':84 'layout':758 'lead':1041 'leadership':408,1043,1048,1204 'least':780 'left/right':154 'letter':729 'letter-spac':728 'line':595,786,809,1262 'line-height':594,808 'lineag':1011 'link':401,603,671,673,874 'link-color':400,602 'link-underlin':672 'linkedin':136 'linkedin.com':877,1548 'linkedin.com/in/user](https://linkedin.com/in/user)':1547 'list':145,701,703 'list-ind':700 'locat':142,1392 'long':373,426 'long-bullet':372,425 'm':1497 'mailto':875 'margin':682,686,792,822,828 'markdown':7,46,92,122,125,185,232,1267,1274,1353,1541 'markdown-to-pdf':6 'marketplace.visualstudio.com':891 'match':967,1271,1417 'max':768,950,952 'max-n':767 'may':841 'mc':179 'medium.com':888 'min':538 'min-sever':537 'minim':353 'minimum':803 'miss':358,361 'missing-contact':360 'missing-nam':357 'mix':733 'modul':754 'move':1293 'multi':32,1322 'multi-languag':31,1321 'multipl':223,969 'multipli':1346 'my-styles.css':722,1526 'mycompani':901 'n':769,774,1468,1476,1482,1483 'name':133,227,359,435,504,554,610,613,620,623,626,852,955,1190,1252,1388,1509,1545,1556,1562,1568,1581 'name-cap':612 'name-color':625 'name-ital':622 'name-s':609 'name-weight':619 'natur':1067 'need':463 'nest':976 'network':1396 'no-check':533 'no-entri':366 'no-sect':363 'node':1035 'node-fullstack':1034 'node.js':1596 'non':385 'non-pt-font-s':384 'none':255,295,297,355,518,897 'note':1510 'o':484,551,1237,1527,1535 'old':552 'on-the-fli':911 'one':63,76,1094 'one-off':1093 'option':26,306,572 'order':289,294,299,397,517,779,1156,1297,1301 'otherwis':344 'output':61,118,266,270,392,485,553,1161 'overrid':247,307,573,1082,1109 'p':526 'page':34,55,275,281,390,527,681,685,772,773,796,821,827,833,844,1127,1137,1153,1542 'page-margin-i':684,820 'page-margin-x':680,826 'partner':902 'pass':962 'past':1529 'path':257 'path/template':271 'pdf':9,82,450,488 'pdf/html/png/docx':47 'pdfs':1352 'per':1013,1080,1088 'per-appl':1087 'per-tag':1079 'permiss':460 'phone':1390 'pin':286,514,1124,1134,1208,1234,1287,1292,1318 'placehold':1253,1272 'playwright/chromium':462 'png':491 'point':839 'posit':276 'prefix':225 'present':159,198 'preset':351 'print':1508 'printf':1470 'process':1214,1232 'profil':1391 'project':1126,1306,1406,1579,1580 'pt':386 'public':1123,1207,1285,1309,1317,1409 'px':927 'python':1592 'quantifi':1575 'quickstart':74 'rang':1425 'react':918,1595 'recommend':350,352,423 'record':302,309,319,326,335 'recurs':1015,1146 'reduc':1361 'refer':720,1313,1413 'refnam':1453 'remov':1263,1291 'render':11,49,69,97,446,472,972,1061,1070,1108,1169,1512 'rendercv':88 'repeat':480,492,500,512,522 'requir':459 'reset':756 'resolv':863 'resort':794 'resourc':100,101 'resources/tagging-resume.md':113 'resources/writing-resume.md':104 'rest':1298 'resum':10,21,43,48,86,110,1539 'resume-en.pdf':563 'resume-frontend.pdf':560 'resume.md':449,542,549,1226,1444,1517,1524,1533 'resume.pdf':557 'resumx':1,4,45,99,445,451,543,550,1225,1489,1515,1521,1534 'resumx.dev':79 'resumx.dev/#import](https://resumx.dev/#import).':78 'right':199 'role':440 'round':929 'row':695 'row-gap':694 'rule':356,424 'run':457 'réduction':1368 'san':162 'sandbox':469 'scale':679 'section':138,283,290,365,378,432,629,633,637,641,645,649,656,689,749,813,1121,1133,1152,1205,1282,1283,1398,1399,1402 'section-gap':688,812 'section-title-align':655 'section-title-bord':648,748 'section-title-cap':632 'section-title-color':644 'section-title-ital':640 'section-title-s':628 'section-title-weight':636 'select':1148,1163,1166,1199 'selector':1378 'self':982 'semant':1377 'senior':160,441 'sent/stripe-2026-02':1496,1516 'sep':483,495,525 'sept':1557 'set':834 'set/name':856 'setup':1428 'sever':539 'shift':1438 'short':1454 'shortcod':860 'shorthand':1110 'show':546,1054,1058,1487,1532 'shrink':778,842 'sibl':985 'singl':218,376,430 'single-bullet-sect':375,429 'size':388,592,611,631,662,790,806 'skill':147,1125,1136,1209,1235,1288,1305,1319,1405,1589 'skill-resumx' 'small':616,762,945 'small-cap':615,761,944 'smith':437 'sourc':64,288,1300 'source-resumx' 'space':676,730 'span':129,192,932 'spec':1436,1440,1442,1443,1447,1488 'split':152 'sr':765,948 'sr-on':764,947 'stack':414 'stackoverflow.com':881 'stage':1536,1537 'standard':124,184 'start':838,1569 'startup':1018,1045 'startup-cto':1017,1044 'stdin':540 'stem':269 'step':77,107,109 'step-by-step':106 'strategi':300 'stream':1213,1231 'strict':354,536 'string':253,254,267,285,287,303,304,310,311,320,321,327,328,336 'stripe':1172,1177,1197,1528 'stripe-sw':1171,1196 'stripe.pdf':1238 'stripe.view.yaml':1195 'structur':132 'style':18,25,301,305,399,497,571,575,577,706,835,893,1158 'sub':177 'subject':1458,1464,1485 'subtitl':141 'suffix':262 'suggest':1028 'super':181 'svg':331 'swe':161,442,1173,1198 'syntax':23,123 'syscal':464 'system':1203,1505 'systemat':114 'tabl':183,186 'tag':28,57,115,120,226,296,308,313,315,383,398,404,519,954,963,968,1030,1051,1074,1076,1081,1096,1099,1119,1149,1334,1350,1446,1450,1455,1460,1465,1491,1494,1507,1519 'tag/custom':502,1246 'tagconfig':312 'tagging-resume.md':112 'taglin':411,1212,1230,1281,1553 'tailor':20,60,117,1498 'tailwind':906,908 'target':54,280,439 'target-rol':438 'taxonomi':121 'tech':1040 'tech-lead':1039 'technic':1588 'technolog':1578 'tel':876 'templat':322,455,566,1250,1540 'term':148 'text':193,230,600,924,939 'text-blu':923 'text-cent':229 'text-color':599 'titl':139,583,630,634,638,642,646,650,657,661,665,669,750,1572 'title-font-famili':582 'toml':243 'top':717,1295 'topic-agent-skills' 'topic-resume' 'topic-skills' 'twitter.com':883 'type':249 'typescript':239,1593 'typo':1025 'typographi':578,757 'undefined/empty':1261 'underlin':674 'underline/none':675 'unitless':678 'univers':1555 'unknown':337,341,380 'unknown-fenced-div-tag':379 'unlimit':999 'untag':960,984,991,998,1167,1328 'url':332,1393 'use':12,1062,1577 'user':339 'v':499,508,511,1229,1260 'v4':909 'valid':36,345,346,421,531 'valu':149,836,938,1264,1302 'var':318,410,509,567,747,1157,1211,1256 'variabl':30,323,1251,1268 'via':574,916,1023 'view':29,58,272,316,394,503,559,568,979,1050,1055,1064,1075,1097,1104,1140,1181,1192,1245,1247,1258 'view.yaml':1085,1141 'view/langs':556 'visibility/ordering':291 'visibl':781 'volunt':1286,1310,1410 'w':528 'warn':428 'watch':529 'weight':621,639,666 'whole':208 'without':470,843 'work':2,930,1008,1135,1210,1236,1289,1303,1320,1403,1565 'wrap':215 'wrapper':221 'wri':44 'writing-resume.md':103 'x':683,829 'x.com':882 'xx':1325 'y':687,823 'yaml':89,241,389,736,1029,1118,1194 'year':418 'youtu.be':885 'youtube.com':884 '~2':175 '~3':548,1523 '~o':176","prices":[{"id":"888cd411-452b-49cb-836d-cf960c9cbba2","listingId":"b763a61d-af5d-4ea8-9678-6437f357df41","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"resumx","category":"skills","install_from":"skills.sh"},"createdAt":"2026-04-18T23:06:06.052Z"}],"sources":[{"listingId":"b763a61d-af5d-4ea8-9678-6437f357df41","source":"github","sourceId":"resumx/skills/resumx","sourceUrl":"https://github.com/resumx/skills/tree/main/skills/resumx","isPrimary":false,"firstSeenAt":"2026-04-18T23:06:06.052Z","lastSeenAt":"2026-04-22T01:01:54.304Z"}],"details":{"listingId":"b763a61d-af5d-4ea8-9678-6437f357df41","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"resumx","slug":"resumx","github":{"repo":"resumx/skills","stars":21,"topics":["agent-skills","cv","resume","skills"],"license":"mit","html_url":"https://github.com/resumx/skills","pushed_at":"2026-03-13T04:12:33Z","description":"Research-backed agentic skills for writing resumes.","skill_md_sha":"73ebb874e518405f1910216447cfd8971595975b","skill_md_path":"skills/resumx/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/resumx/skills/tree/main/skills/resumx"},"layout":"multi","source":"github","category":"skills","frontmatter":{"name":"resumx","description":"Work with Resumx, a Markdown-to-PDF resume renderer. Use when creating, editing, converting, building, styling, or tailoring resumes. Covers syntax, CLI, style options, icons, tags, views, variables, multi-language, page fitting, validation, custom CSS, and AI-assisted resume writing."},"skills_sh_url":"https://skills.sh/resumx/skills/resumx"},"updatedAt":"2026-04-22T01:01:54.304Z"}}