From a2901bfb2e32b36082d79e3c6c82a4b312e06b35 Mon Sep 17 00:00:00 2001 From: Amruth Pillai Date: Tue, 28 Jul 2026 08:08:29 +0200 Subject: [PATCH] docs: plan SEO comparison content cluster --- ...26-07-28-seo-comparison-content-cluster.md | 1005 +++++++++++++++++ 1 file changed, 1005 insertions(+) create mode 100644 docs/superpowers/plans/2026-07-28-seo-comparison-content-cluster.md diff --git a/docs/superpowers/plans/2026-07-28-seo-comparison-content-cluster.md b/docs/superpowers/plans/2026-07-28-seo-comparison-content-cluster.md new file mode 100644 index 000000000..2e054a5d2 --- /dev/null +++ b/docs/superpowers/plans/2026-07-28-seo-comparison-content-cluster.md @@ -0,0 +1,1005 @@ +# SEO Comparison Content Cluster Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Publish 17 neutral, first-party-sourced comparison pages that target high-intent resume-builder searches and +give appropriate readers a distinct reason to try Reactive Resume. + +**Architecture:** Add one MDX page per competitor under `docs/comparisons/`, using a consistent decision-oriented +information order but unique claims, trade-offs, sources, and calls to action. Add the completed set to one visible +Mintlify navigation group, then validate frontmatter uniqueness, structural requirements, JSON configuration, internal +links, and Mintlify links without introducing new dependencies or shared abstractions. + +**Tech Stack:** Mintlify, MDX, `docs.json`, Node.js 24, `markdownlint-cli2`, Mint CLI 4.2.748 + +## Global Constraints + +- Create exactly the 17 approved comparison pages; no comparison hub, new tab, redirect, schema type, custom component, + or dependency. +- Use only first-party product, pricing, help, privacy, source-repository, and license pages to support mutable claims. +- Use search results only to select competitors, never as evidence in an article. +- Use plain, neutral language and avoid `best`, `winner`, `superior`, `revolutionary`, `powerful`, `seamless`, and + unqualified marketing claims. +- Every page must identify at least one situation where the competitor is the better fit and one relevant Reactive + Resume limitation. +- Never promise ATS passage, interview outcomes, or repeat vendor outcome statistics and review scores as facts. +- Qualify `free` as free creation, TXT export, designed PDF export, limited downloads, trial access, or another precise + meaning. +- Prefer durable plan descriptions over exact prices; include a first-party pricing link and `Last checked: July 28, + 2026`. +- Use two to four relevant internal documentation links per page. +- End every page with a unique Mintlify `Card` linking to `https://rxresu.me`. +- A shorter page is better than unsupported or padded copy; expected length is 600 to 1,000 words only when the evidence + supports it. +- Do not run the repository-wide `pnpm check`; it is write-capable. Use focused non-mutating validation commands. + +--- + +## File map + +**Create:** + +- `docs/comparisons/reactive-resume-vs-canva.mdx` — general visual editor versus structured resume editor. +- `docs/comparisons/reactive-resume-vs-adobe-express.mdx` — general template editor versus structured resume data. +- `docs/comparisons/reactive-resume-vs-overleaf.mdx` — LaTeX authoring versus visual resume editing. +- `docs/comparisons/reactive-resume-vs-resume-com.mdx` — two genuinely free builders with different ownership models. +- `docs/comparisons/reactive-resume-vs-myperfectresume.mdx` — guided content with TXT-only free export versus free + designed exports. +- `docs/comparisons/reactive-resume-vs-resume-now.mdx` — guided AI/content with TXT-only free export versus direct + control. +- `docs/comparisons/reactive-resume-vs-resume-io.mdx` — commercial freemium builder versus open-source builder. +- `docs/comparisons/reactive-resume-vs-zety.mdx` — guided writing and TXT-only free export versus free designed + exports. +- `docs/comparisons/reactive-resume-vs-kickresume.mdx` — integrated AI/content library versus bring-your-own AI. +- `docs/comparisons/reactive-resume-vs-resumegemini.mdx` — AI/content examples versus open-source self-hosting. +- `docs/comparisons/reactive-resume-vs-jobscan.mdx` — specialized ATS/job matching versus ownership and automation. +- `docs/comparisons/reactive-resume-vs-resumod.mdx` — job-targeting assistance versus open-source control. +- `docs/comparisons/reactive-resume-vs-rezi.mdx` — specialized keyword scoring versus optional bring-your-own AI. +- `docs/comparisons/reactive-resume-vs-careercircle.mdx` — career-services platform versus standalone resume system. +- `docs/comparisons/reactive-resume-vs-novoresume.mdx` — guided one-document free tier versus unrestricted core resume + management. +- `docs/comparisons/reactive-resume-vs-livecareer.mdx` — guided content with TXT-only free export versus free designed + exports. +- `docs/comparisons/reactive-resume-vs-freesumes.mdx` — ephemeral no-account builder and template library versus + persistent structured resume management. + +**Modify:** + +- `docs/docs.json` — add the visible `Comparisons` navigation group after `Use Cases`. + +No runtime code or test file is needed. The content contract is checked with focused Node assertions, Markdown linting, +and Mintlify's link checker. + +--- + +### Task 1: General design and source-authoring comparisons + +**Files:** + +- Create: `docs/comparisons/reactive-resume-vs-canva.mdx` +- Create: `docs/comparisons/reactive-resume-vs-adobe-express.mdx` +- Create: `docs/comparisons/reactive-resume-vs-overleaf.mdx` + +**Interfaces:** + +- Consumes: Current Reactive Resume export, template, privacy, and open-source documentation. +- Produces: Three self-contained MDX pages following the cluster heading, evidence, limitation, source, and CTA contract. + +- [ ] **Step 1: Re-verify the shared Reactive Resume facts** + +Read these current files before drafting: + +```text +docs/use-cases/free-resume-builder.mdx +docs/use-cases/open-source-resume-builder.mdx +docs/use-cases/privacy-focused-resume-builder.mdx +docs/use-cases/self-hosted-resume-builder.mdx +docs/guides/choosing-a-template.mdx +docs/guides/exporting-your-resume.mdx +docs/legal/license.mdx +``` + +Confirm only claims used in the three pages: Reactive Resume is MIT-licensed and self-hostable; the hosted builder's +core resume workflow has no premium tier; current exports include PDF, DOCX, Markdown, and Reactive Resume JSON; and +its visual controls are resume-specific rather than a freeform design canvas. + +- [ ] **Step 2: Verify the three competitors from first-party sources** + +Use: + +```text +Canva resume builder: +https://www.canva.com/create/resumes/ + +Adobe Express resume builder: +https://www.adobe.com/express/create/resume + +Adobe Express Free plan: +https://helpx.adobe.com/express/web/adobe-express-subscription/free.html + +Overleaf free-plan documentation: +https://docs.overleaf.com/getting-started/free-and-premium-plans + +Overleaf CV and resume templates: +https://www.overleaf.com/latex/templates/tagged/cv + +Overleaf plan comparison: +https://www.overleaf.com/user/subscription/plans +``` + +Do not infer that every Canva or Adobe asset/template is free. Describe their broader visual control and media/template +libraries, and link the plan pages when a feature boundary matters. Describe Overleaf as a collaborative LaTeX editor +with CV/resume templates, not a dedicated resume builder. + +- [ ] **Step 3: Create the Canva comparison** + +Use this frontmatter: + +```yaml +--- +title: "Reactive Resume vs Canva" +description: "Compare Reactive Resume and Canva for free resume creation, visual control, exports, data portability, and self-hosting." +--- +``` + +The answer-first opening must say that Canva is the stronger choice for freeform visual composition and a broad design +library, while Reactive Resume is purpose-built around structured resume fields, reusable resume data, and +self-hosting. Include: + +```markdown +## Quick comparison +## Where Canva is a better fit +## Where Reactive Resume is a better fit +## Which should you choose? +## Reactive Resume limitations in this comparison +## Sources +``` + +Name Reactive Resume's narrower design canvas as its limitation. End with: + +```mdx + + Use structured resume sections and keep the option to export or self-host when you do not need a general design + canvas. + +``` + +- [ ] **Step 4: Create the Adobe Express comparison** + +Use this frontmatter: + +```yaml +--- +title: "Reactive Resume vs Adobe Express" +description: "Compare Reactive Resume and Adobe Express for resume templates, PDF export, visual editing, structured data, and self-hosting." +--- +``` + +Credit Adobe Express for broader document, image, and layout editing. Explain that Reactive Resume keeps content in +resume-specific fields and supports resume-focused versioning, formats, and deployment choices. Name its smaller visual +asset library and lack of a general canvas as limitations. End with: + +```mdx + + Try Reactive Resume when reusable work history and resume-specific controls matter more than general document design. + +``` + +- [ ] **Step 5: Create the Overleaf comparison** + +Use this frontmatter: + +```yaml +--- +title: "Reactive Resume vs Overleaf" +description: "Compare Reactive Resume's visual resume builder with Overleaf's LaTeX templates, source editing, collaboration, and PDF workflow." +--- +``` + +Credit Overleaf for direct LaTeX source control, its large community template gallery, and document collaboration. +Explain that Reactive Resume is easier for readers who do not want to edit or debug LaTeX and stores resume content as +structured data. Name the absence of LaTeX source editing and Overleaf-style academic document collaboration as +Reactive Resume limitations. End with: + +```mdx + + Build from structured sections and a live preview without maintaining a LaTeX document. + +``` + +- [ ] **Step 6: Run focused validation** + +Run: + +```bash +pnpm exec markdownlint-cli2 \ + docs/comparisons/reactive-resume-vs-canva.mdx \ + docs/comparisons/reactive-resume-vs-adobe-express.mdx \ + docs/comparisons/reactive-resume-vs-overleaf.mdx +``` + +Expected: exit code 0. + +Run: + +```bash +node - <<'NODE' +const fs = require("node:fs"); +const files = [ + "docs/comparisons/reactive-resume-vs-canva.mdx", + "docs/comparisons/reactive-resume-vs-adobe-express.mdx", + "docs/comparisons/reactive-resume-vs-overleaf.mdx", +]; +for (const file of files) { + const text = fs.readFileSync(file, "utf8"); + for (const required of [ + "## Quick comparison", + "## Where Reactive Resume is a better fit", + "## Which should you choose?", + "## Reactive Resume limitations in this comparison", + "## Sources", + "Last checked: July 28, 2026", + 'href="https://rxresu.me"', + ]) { + if (!text.includes(required)) throw new Error(`${file}: missing ${required}`); + } +} +console.log("Task 1 content contract passed"); +NODE +``` + +Expected: `Task 1 content contract passed`. + +- [ ] **Step 7: Commit the batch** + +```bash +git add \ + docs/comparisons/reactive-resume-vs-canva.mdx \ + docs/comparisons/reactive-resume-vs-adobe-express.mdx \ + docs/comparisons/reactive-resume-vs-overleaf.mdx +git commit -m "docs: compare Reactive Resume with design editors" +``` + +--- + +### Task 2: Mainstream free and freemium builder comparisons + +**Files:** + +- Create: `docs/comparisons/reactive-resume-vs-resume-com.mdx` +- Create: `docs/comparisons/reactive-resume-vs-myperfectresume.mdx` +- Create: `docs/comparisons/reactive-resume-vs-resume-now.mdx` +- Create: `docs/comparisons/reactive-resume-vs-resume-io.mdx` +- Create: `docs/comparisons/reactive-resume-vs-zety.mdx` + +**Interfaces:** + +- Consumes: Task 1's page contract and current Reactive Resume export/open-source documentation. +- Produces: Five pages that distinguish free creation from free designed-document export. + +- [ ] **Step 1: Verify the competitors from first-party sources** + +Use: + +```text +Resume.com free-plan help: +https://support.resume.com/hc/en-us/articles/360008079171-Is-Resume-com-really-free + +Resume.com account help: +https://support.resume.com/hc/en-us/articles/360040199931-How-do-I-create-a-new-account + +MyPerfectResume free-builder guide: +https://www.myperfectresume.com/career-center/resumes/how-to/free-resume-builder + +MyPerfectResume pricing: +https://www.myperfectresume.com/pricing + +Resume-Now free-builder guide: +https://www.resume-now.com/job-resources/resumes/how-to-use-our-resume-builder + +Resume-Now product page: +https://www.resume-now.com/ + +Resume.io free-plan help: +https://help.resume.io/en/articles/3785088 + +Zety pricing: +https://zety.com/pricing +``` + +Preserve the important distinctions: Resume.com supports free PDF and plain-text downloads; MyPerfectResume, +Resume-Now, and Zety limit free downloads to TXT; Resume.io currently allows a free PDF using its Vancouver template +and TXT export, while other templates/features require its paid workflow. Do not quote a plan price. + +- [ ] **Step 2: Create the Resume.com comparison** + +Use: + +```yaml +--- +title: "Reactive Resume vs Resume.com" +description: "Compare two free resume builders by PDF export, accounts, templates, open-source access, portability, and self-hosting." +--- +``` + +Do not manufacture a pricing advantage for Reactive Resume: both products support free PDF export. Credit Resume.com +for its simple hosted workflow and lack of a paid membership tier. Distinguish Reactive Resume through source access, +self-hosting, more export formats, API/MCP automation, and optional bring-your-own AI. Name account/setup complexity +and the more technical options as Reactive Resume limitations. End with: + +```mdx + + Try Reactive Resume when self-hosting, structured exports, or automation matter alongside free PDF creation. + +``` + +- [ ] **Step 3: Create the MyPerfectResume comparison** + +Use: + +```yaml +--- +title: "Reactive Resume vs MyPerfectResume" +description: "Compare Reactive Resume and MyPerfectResume by free downloads, writing guidance, templates, AI, open source, and self-hosting." +--- +``` + +Credit MyPerfectResume for step-by-step prompts, expert-written content suggestions, and its resume checker. State +precisely that its free download is plain text and designed PDF/Word downloads require premium access. Name Reactive +Resume's lack of an equivalent built-in content library and specialized checker as limitations. End with: + +```mdx + + Use Reactive Resume when you already have the content and want free PDF, DOCX, Markdown, and JSON exports. + +``` + +- [ ] **Step 4: Create the Resume-Now comparison** + +Use: + +```yaml +--- +title: "Reactive Resume vs Resume-Now" +description: "Compare Reactive Resume and Resume-Now by free export formats, guided writing, AI tools, templates, and self-hosting." +--- +``` + +Credit Resume-Now for guided content suggestions and resume-analysis tools. State that its current free download is TXT +and designed PDF/Word formats require paid access. Name Reactive Resume's smaller built-in writing-guidance surface as +its limitation. End with: + +```mdx + + Try Reactive Resume when direct editing and designed exports matter more than a large guided-content library. + +``` + +- [ ] **Step 5: Create the Resume.io comparison** + +Use: + +```yaml +--- +title: "Reactive Resume vs Resume.io" +description: "Compare Reactive Resume and Resume.io by free PDF access, templates, writing tools, exports, open source, and self-hosting." +--- +``` + +Credit Resume.io for its guided writing tools, sample content, and commercial template experience. State the narrow +current free-PDF allowance without claiming all PDF export is paid. Note that Resume.io says plan availability can vary +by location. Name Reactive Resume's smaller guided-content library as its limitation. End with: + +```mdx + + Use Reactive Resume when you want the included templates, multiple export formats, and no premium resume tier. + +``` + +- [ ] **Step 6: Create the Zety comparison** + +Use: + +```yaml +--- +title: "Reactive Resume vs Zety" +description: "Compare Reactive Resume and Zety by free downloads, guided writing, resume checks, templates, open source, and self-hosting." +--- +``` + +Credit Zety for its guided builder, writing suggestions, cover-letter workflow, and resume check. State that Zety's +free package currently exports TXT, while PDF and Word are paid formats. Name Reactive Resume's lack of equivalent +prewritten guidance and job matching as limitations. End with: + +```mdx + + Try Reactive Resume when free PDF and DOCX exports matter more than guided writing and job-matching tools. + +``` + +- [ ] **Step 7: Validate and commit** + +Run: + +```bash +pnpm exec markdownlint-cli2 \ + docs/comparisons/reactive-resume-vs-resume-com.mdx \ + docs/comparisons/reactive-resume-vs-myperfectresume.mdx \ + docs/comparisons/reactive-resume-vs-resume-now.mdx \ + docs/comparisons/reactive-resume-vs-resume-io.mdx \ + docs/comparisons/reactive-resume-vs-zety.mdx +``` + +Expected: exit code 0. + +Then: + +```bash +git add \ + docs/comparisons/reactive-resume-vs-resume-com.mdx \ + docs/comparisons/reactive-resume-vs-myperfectresume.mdx \ + docs/comparisons/reactive-resume-vs-resume-now.mdx \ + docs/comparisons/reactive-resume-vs-resume-io.mdx \ + docs/comparisons/reactive-resume-vs-zety.mdx +git commit -m "docs: compare mainstream resume builders" +``` + +--- + +### Task 3: AI, ATS, and job-targeting comparisons + +**Files:** + +- Create: `docs/comparisons/reactive-resume-vs-kickresume.mdx` +- Create: `docs/comparisons/reactive-resume-vs-resumegemini.mdx` +- Create: `docs/comparisons/reactive-resume-vs-jobscan.mdx` +- Create: `docs/comparisons/reactive-resume-vs-resumod.mdx` +- Create: `docs/comparisons/reactive-resume-vs-rezi.mdx` + +**Interfaces:** + +- Consumes: Current Reactive Resume AI, automation, export, privacy, and self-hosting documentation. +- Produces: Five pages that distinguish integrated specialist tools from Reactive Resume's optional provider model. + +- [ ] **Step 1: Re-verify Reactive Resume's AI and automation boundaries** + +Read: + +```text +docs/use-cases/ai-resume-builder.mdx +docs/use-cases/api-mcp-resume-automation.mdx +docs/guides/using-ai.mdx +docs/guides/using-ai-in-the-builder.mdx +docs/guides/using-ai-agent.mdx +docs/guides/using-the-api.mdx +docs/guides/using-the-mcp-server.mdx +``` + +Use only supported claims: AI is optional and bring-your-own-provider; users configure their provider credentials; +Reactive Resume offers API and MCP workflows; and provider use can incur separate provider costs. Do not claim that +Reactive Resume has a dedicated ATS score, native keyword-match score, or human review service. + +- [ ] **Step 2: Verify the competitors from first-party sources** + +Use: + +```text +Kickresume plan FAQ: +https://www.kickresume.com/en/help-center/general/ + +Kickresume editor and AI documentation: +https://www.kickresume.com/en/help-center/resume/ + +ResumeGemini product page: +https://www.resumegemini.com/ + +ResumeGemini product overview: +https://resumegemini.com/about-us + +Jobscan resume builder: +https://www.jobscan.co/resume-builder + +Jobscan resume scanner: +https://www.jobscan.co/resume-scanner + +Resumod product page: +https://resumod.co/ + +Resumod AI builder: +https://resumod.co/ai-resume-builder + +Rezi pricing and feature comparison: +https://www.rezi.ai/pricing + +Rezi official product summary: +https://www.rezi.ai/ai-llm-info +``` + +Treat every ATS or outcome statement as the vendor's positioning, not a proven result. It is safe to state that a +product exposes a checker, score, keyword-targeting flow, or job-description analysis when the official page documents +that feature. + +- [ ] **Step 3: Create the Kickresume comparison** + +Use: + +```yaml +--- +title: "Reactive Resume vs Kickresume" +description: "Compare Reactive Resume and Kickresume by free downloads, AI writing, content examples, templates, provider choice, and self-hosting." +--- +``` + +Credit Kickresume for integrated AI writing, content examples, imports, and a larger guided career-document workflow. +State that its free plan supports unlimited documents/downloads when free customization options are used. Name +Reactive Resume's provider setup and smaller content library as limitations. End with: + +```mdx + + Try Reactive Resume when you want AI to remain optional and configurable rather than bundled into the builder. + +``` + +- [ ] **Step 4: Create the ResumeGemini comparison** + +Use: + +```yaml +--- +title: "Reactive Resume vs ResumeGemini" +description: "Compare Reactive Resume and ResumeGemini by free PDF export, AI optimization, content examples, open source, and self-hosting." +--- +``` + +Credit ResumeGemini for prewritten examples and integrated job-targeted AI optimization. Its site currently documents +at least one free template with free PDF download; do not generalize that to every template. Name Reactive Resume's +lack of a built-in content-example library and keyword-optimization product as limitations. End with: + +```mdx + + Use Reactive Resume when source access and deployment control matter more than integrated content examples. + +``` + +- [ ] **Step 5: Create the Jobscan comparison** + +Use: + +```yaml +--- +title: "Reactive Resume vs Jobscan" +description: "Compare Reactive Resume and Jobscan by free PDF creation, ATS analysis, job matching, exports, open source, and automation." +--- +``` + +Credit Jobscan for its free resume builder, nine current templates, LinkedIn import, resume scanner, and specialized +job-description analysis. Avoid repeating its ATS success claims. Name Reactive Resume's lack of a native ATS score or +job-keyword scanner as limitations. End with: + +```mdx + + Build, export, and automate structured resume data in Reactive Resume when an ATS score is not your primary need. + +``` + +- [ ] **Step 6: Create the Resumod comparison** + +Use: + +```yaml +--- +title: "Reactive Resume vs Resumod" +description: "Compare Reactive Resume and Resumod by AI writing, resume scoring, job targeting, exports, open source, and self-hosting." +--- +``` + +Credit Resumod for role-specific content, resume scoring, job-targeted AI, and documented PDF/Word output. Do not state +that every template or AI feature is free because the official page describes both free and paid templates without a +clear complete plan matrix. Name Reactive Resume's lack of an integrated ATS-style score and content library as +limitations. End with: + +```mdx + + Try Reactive Resume when self-hosting and optional bring-your-own AI matter more than bundled scoring tools. + +``` + +- [ ] **Step 7: Create the Rezi comparison** + +Use: + +```yaml +--- +title: "Reactive Resume vs Rezi" +description: "Compare Reactive Resume and Rezi by free limits, ATS scoring, keyword targeting, AI writing, provider choice, and self-hosting." +--- +``` + +Credit Rezi for its specialized score, keyword targeting, integrated AI writing, interview tool, and expert-review +option. State its current free limits as one resume and three PDF downloads without quoting the paid price. Name +Reactive Resume's lack of those specialist scoring/review tools and the setup required for its AI as limitations. End +with: + +```mdx + + Use Reactive Resume when provider choice, open source, self-hosting, and API or MCP automation matter more than an + integrated ATS score. + +``` + +- [ ] **Step 8: Validate and commit** + +Run: + +```bash +pnpm exec markdownlint-cli2 \ + docs/comparisons/reactive-resume-vs-kickresume.mdx \ + docs/comparisons/reactive-resume-vs-resumegemini.mdx \ + docs/comparisons/reactive-resume-vs-jobscan.mdx \ + docs/comparisons/reactive-resume-vs-resumod.mdx \ + docs/comparisons/reactive-resume-vs-rezi.mdx +``` + +Expected: exit code 0. + +Then: + +```bash +git add \ + docs/comparisons/reactive-resume-vs-kickresume.mdx \ + docs/comparisons/reactive-resume-vs-resumegemini.mdx \ + docs/comparisons/reactive-resume-vs-jobscan.mdx \ + docs/comparisons/reactive-resume-vs-resumod.mdx \ + docs/comparisons/reactive-resume-vs-rezi.mdx +git commit -m "docs: compare AI and ATS resume builders" +``` + +--- + +### Task 4: Career-platform and template-library comparisons + +**Files:** + +- Create: `docs/comparisons/reactive-resume-vs-careercircle.mdx` +- Create: `docs/comparisons/reactive-resume-vs-novoresume.mdx` +- Create: `docs/comparisons/reactive-resume-vs-livecareer.mdx` +- Create: `docs/comparisons/reactive-resume-vs-freesumes.mdx` + +**Interfaces:** + +- Consumes: Current Reactive Resume dashboard, application-tracking, export, and privacy documentation. +- Produces: Four pages focused on broader career services, document limits, guided content, and no-account ephemeral use. + +- [ ] **Step 1: Verify the competitors from first-party sources** + +Use: + +```text +CareerCircle resume builder: +https://www.careercircle.com/resume-builder + +Novorésumé product and plan comparison: +https://novoresume.com/ + +LiveCareer pricing: +https://www.livecareer.com/pricing + +LiveCareer resume builder: +https://www.livecareer.com/t3 + +Freesumes resume builder: +https://www.freesumes.com/resume-builder/ + +Freesumes product overview: +https://www.freesumes.com/ + +Freesumes privacy behavior in the builder: +https://www.freesumes.com/build-resume +``` + +Do not repeat claimed interview outcomes, ATS guarantees, review scores, or user counts. Describe only documented +product behavior. + +- [ ] **Step 2: Create the CareerCircle comparison** + +Use: + +```yaml +--- +title: "Reactive Resume vs CareerCircle" +description: "Compare Reactive Resume and CareerCircle by free PDF and Word exports, career resources, accounts, open source, and self-hosting." +--- +``` + +Credit CareerCircle for free PDF/Word output, staffing-expert guidance, jobs, courses, and professional-development +resources in the same service. State its sign-up requirement. Name Reactive Resume's lack of CareerCircle's broader +course/job community as its limitation. End with: + +```mdx + + Try Reactive Resume when resume ownership, multiple export formats, and self-hosting matter more than bundled career + services. + +``` + +- [ ] **Step 3: Create the Novorésumé comparison** + +Use: + +```yaml +--- +title: "Reactive Resume vs Novorésumé" +description: "Compare Reactive Resume and Novorésumé by free document limits, templates, guided writing, AI, exports, and self-hosting." +--- +``` + +Credit Novorésumé for guided design, writing advice, a content library, and its integrated assistant. State its current +Basic limits precisely: one document and one page, with larger document counts and longer documents in Premium. Name +Reactive Resume's smaller guidance/content surface as its limitation. End with: + +```mdx + + Use Reactive Resume when you want multiple resumes and designed exports without moving to a premium plan. + +``` + +- [ ] **Step 4: Create the LiveCareer comparison** + +Use: + +```yaml +--- +title: "Reactive Resume vs LiveCareer" +description: "Compare Reactive Resume and LiveCareer by free downloads, guided content, resume checks, templates, open source, and self-hosting." +--- +``` + +Credit LiveCareer for ready-made content, spell-checking, writing tips, and resume checking. State that its free builder +currently exports TXT, while unlimited PDF and Word downloads require premium access. Name Reactive Resume's smaller +guided-content and checker surface as limitations. End with: + +```mdx + + Try Reactive Resume when PDF or DOCX output matters more than ready-made writing suggestions. + +``` + +- [ ] **Step 5: Create the Freesumes comparison** + +Use: + +```yaml +--- +title: "Reactive Resume vs Freesumes" +description: "Compare Reactive Resume and Freesumes by no-account use, PDF export, templates, saved resume management, privacy, and self-hosting." +--- +``` + +Credit Freesumes for a no-account, no-card builder, six current builder templates, free PDF output, Word/Google Docs +templates, and browser-session privacy. Explain the documented trade-off: builder data is wiped when the tab is +refreshed or closed. Name Reactive Resume's account requirement and server-backed persistence as limitations for users +who want a one-off local session. End with: + +```mdx + + Use Reactive Resume when you want persistent resume versions, multiple export formats, sharing, and automation. + +``` + +- [ ] **Step 6: Validate and commit** + +Run: + +```bash +pnpm exec markdownlint-cli2 \ + docs/comparisons/reactive-resume-vs-careercircle.mdx \ + docs/comparisons/reactive-resume-vs-novoresume.mdx \ + docs/comparisons/reactive-resume-vs-livecareer.mdx \ + docs/comparisons/reactive-resume-vs-freesumes.mdx +``` + +Expected: exit code 0. + +Then: + +```bash +git add \ + docs/comparisons/reactive-resume-vs-careercircle.mdx \ + docs/comparisons/reactive-resume-vs-novoresume.mdx \ + docs/comparisons/reactive-resume-vs-livecareer.mdx \ + docs/comparisons/reactive-resume-vs-freesumes.mdx +git commit -m "docs: compare career and template resume tools" +``` + +--- + +### Task 5: Navigation and whole-cluster verification + +**Files:** + +- Modify: `docs/docs.json` +- Test: all 17 files under `docs/comparisons/` + +**Interfaces:** + +- Consumes: The 17 completed page paths and frontmatter contracts from Tasks 1 through 4. +- Produces: Navigable and sitemap-eligible Mintlify pages with a verified unique-content contract. + +- [ ] **Step 1: Add the Mintlify navigation group** + +Insert this group immediately after `Use Cases`: + +```json +{ + "group": "Comparisons", + "pages": [ + "comparisons/reactive-resume-vs-canva", + "comparisons/reactive-resume-vs-adobe-express", + "comparisons/reactive-resume-vs-overleaf", + "comparisons/reactive-resume-vs-resume-com", + "comparisons/reactive-resume-vs-myperfectresume", + "comparisons/reactive-resume-vs-resume-now", + "comparisons/reactive-resume-vs-resume-io", + "comparisons/reactive-resume-vs-zety", + "comparisons/reactive-resume-vs-kickresume", + "comparisons/reactive-resume-vs-resumegemini", + "comparisons/reactive-resume-vs-jobscan", + "comparisons/reactive-resume-vs-resumod", + "comparisons/reactive-resume-vs-rezi", + "comparisons/reactive-resume-vs-careercircle", + "comparisons/reactive-resume-vs-novoresume", + "comparisons/reactive-resume-vs-livecareer", + "comparisons/reactive-resume-vs-freesumes" + ] +} +``` + +Keep the grouping order aligned with the article batches; do not add a hub page. + +- [ ] **Step 2: Validate JSON and the complete content contract** + +Run: + +```bash +node - <<'NODE' +const fs = require("node:fs"); + +const paths = [ + "canva", + "adobe-express", + "overleaf", + "resume-com", + "myperfectresume", + "resume-now", + "resume-io", + "zety", + "kickresume", + "resumegemini", + "jobscan", + "resumod", + "rezi", + "careercircle", + "novoresume", + "livecareer", + "freesumes", +].map((slug) => `comparisons/reactive-resume-vs-${slug}`); + +const config = JSON.parse(fs.readFileSync("docs/docs.json", "utf8")); +const docsTab = config.navigation.tabs.find((tab) => tab.tab === "Documentation"); +const group = docsTab.groups.find((entry) => entry.group === "Comparisons"); +if (!group) throw new Error("Missing Comparisons navigation group"); +if (JSON.stringify(group.pages) !== JSON.stringify(paths)) { + throw new Error("Comparison navigation paths or order do not match the approved set"); +} + +const titles = new Set(); +const descriptions = new Set(); +const ctas = new Set(); + +for (const pagePath of paths) { + const file = `docs/${pagePath}.mdx`; + const text = fs.readFileSync(file, "utf8"); + const frontmatter = text.match(/^---\n([\s\S]*?)\n---/); + if (!frontmatter) throw new Error(`${file}: missing frontmatter`); + + const title = frontmatter[1].match(/^title: "(.+)"$/m)?.[1]; + const description = frontmatter[1].match(/^description: "(.+)"$/m)?.[1]; + if (!title || !description) throw new Error(`${file}: missing title or description`); + if (titles.has(title)) throw new Error(`${file}: duplicate title`); + if (descriptions.has(description)) throw new Error(`${file}: duplicate description`); + titles.add(title); + descriptions.add(description); + + for (const required of [ + "## Quick comparison", + "## Where Reactive Resume is a better fit", + "## Which should you choose?", + "## Reactive Resume limitations in this comparison", + "## Sources", + "Last checked: July 28, 2026", + 'href="https://rxresu.me"', + ]) { + if (!text.includes(required)) throw new Error(`${file}: missing ${required}`); + } + + const competitorFit = text.match(/^## Where (.+) is a better fit$/m)?.[1]; + if (!competitorFit || competitorFit === "Reactive Resume") { + throw new Error(`${file}: missing competitor advantage section`); + } + + const cta = text.match(/