mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-07-26 18:04:45 +10:00
Migrate from Biome to Oxlint/Oxfmt (#2822)
* Migrate from Biome to Oxlint/Oxfmt * pin version of autofix * set version of autofix * pin version of autofix * [autofix.ci] apply automated fixes * better comments, test formatter * [autofix.ci] apply automated fixes * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -7,9 +7,7 @@ description: "Learn how to access the previous version (v4) of Reactive Resume i
|
||||
|
||||
If you've been using Reactive Resume for a while, you may have resumes saved in the previous version of the application. The good news is that **version 4 (v4) is still fully accessible** and will remain online for the foreseeable future.
|
||||
|
||||
<Info>
|
||||
The previous version of Reactive Resume is available at [https://v4.rxresu.me](https://v4.rxresu.me).
|
||||
</Info>
|
||||
<Info>The previous version of Reactive Resume is available at [https://v4.rxresu.me](https://v4.rxresu.me).</Info>
|
||||
|
||||
## Why keep the old version running?
|
||||
|
||||
@@ -24,7 +22,8 @@ There are several reasons why v4 remains available:
|
||||
The previous version will continue to run for as long as possible—until the maintainer runs out of breath or funds to keep the server active. There are no immediate plans to shut it down.
|
||||
|
||||
<Warning>
|
||||
While v4 will remain accessible for the foreseeable future, I recommend gradually transitioning to the latest version to benefit from new features, improvements, and ongoing support.
|
||||
While v4 will remain accessible for the foreseeable future, I recommend gradually transitioning to the latest version
|
||||
to benefit from new features, improvements, and ongoing support.
|
||||
</Warning>
|
||||
|
||||
## Accessing your v4 resumes
|
||||
@@ -40,6 +39,7 @@ The previous version will continue to run for as long as possible—until the ma
|
||||
<Tip>
|
||||
If you used social login (Google, GitHub, etc.) in v4, use the same method to sign in.
|
||||
</Tip>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Access your resumes">
|
||||
@@ -57,7 +57,8 @@ If you'd like to move your resumes to the latest version of Reactive Resume, you
|
||||
4. Use the import feature to upload your JSON file (select the "Reactive Resume v4 (JSON)" option)
|
||||
|
||||
<Info>
|
||||
Your existing resumes should already be available in the new version. If you don't see them, you can manually import them using the steps above.
|
||||
Your existing resumes should already be available in the new version. If you don't see them, you can manually import
|
||||
them using the steps above.
|
||||
</Info>
|
||||
|
||||
## Questions or issues?
|
||||
|
||||
@@ -19,20 +19,18 @@ A cover letter is a personalized document that accompanies your resume when appl
|
||||
Navigate to your resume and open it in the builder.
|
||||
</Step>
|
||||
|
||||
<Step title="Scroll to Custom Sections">
|
||||
In the left sidebar, scroll down to find the **Custom Sections** area at the bottom.
|
||||
</Step>
|
||||
<Step title="Scroll to Custom Sections">
|
||||
In the left sidebar, scroll down to find the **Custom Sections** area at the bottom.
|
||||
</Step>
|
||||
|
||||
<Step title="Add a new custom section">
|
||||
Click <Badge>Add a new custom section</Badge> to open the section creation dialog.
|
||||
</Step>
|
||||
<Step title="Add a new custom section">
|
||||
Click <Badge>Add a new custom section</Badge> to open the section creation dialog.
|
||||
</Step>
|
||||
|
||||
<Step title="Select 'Cover Letter' as the type">
|
||||
In the dialog:
|
||||
- Enter a **Title** for your section (e.g., "Cover Letter" or "Cover Letter - [Company Name]")
|
||||
- Select **Cover Letter** from the **Type** dropdown
|
||||
- Click **Create** to add the section
|
||||
</Step>
|
||||
<Step title="Select 'Cover Letter' as the type">
|
||||
In the dialog: - Enter a **Title** for your section (e.g., "Cover Letter" or "Cover Letter - [Company Name]") - Select
|
||||
**Cover Letter** from the **Type** dropdown - Click **Create** to add the section
|
||||
</Step>
|
||||
|
||||
<Step title="Add a cover letter item">
|
||||
In your new cover letter section, click <Badge>Add a new item</Badge> to create your cover letter.
|
||||
@@ -46,6 +44,7 @@ A cover letter has two main fields:
|
||||
### Recipient field
|
||||
|
||||
The **Recipient** field is where you enter the recipient's information. This typically includes:
|
||||
|
||||
- Date (optional)
|
||||
- Hiring manager's name
|
||||
- Their job title
|
||||
@@ -55,20 +54,22 @@ The **Recipient** field is where you enter the recipient's information. This typ
|
||||
<Tip>
|
||||
Use line breaks to format the address block. For example:
|
||||
|
||||
```
|
||||
January 31, 2026
|
||||
```
|
||||
January 31, 2026
|
||||
|
||||
Jane Smith
|
||||
Senior Hiring Manager
|
||||
Acme Corporation
|
||||
123 Main Street, Suite 400
|
||||
New York, NY 10001
|
||||
```
|
||||
|
||||
Jane Smith
|
||||
Senior Hiring Manager
|
||||
Acme Corporation
|
||||
123 Main Street, Suite 400
|
||||
New York, NY 10001
|
||||
```
|
||||
</Tip>
|
||||
|
||||
### Content field
|
||||
|
||||
The **Content** field is where you write the body of your cover letter. Include:
|
||||
|
||||
- **Salutation**: "Dear Ms. Smith," or "Dear Hiring Team,"
|
||||
- **Opening paragraph**: State the position you're applying for and how you learned about it
|
||||
- **Body paragraphs**: Highlight relevant experience, skills, and achievements
|
||||
@@ -76,7 +77,8 @@ The **Content** field is where you write the body of your cover letter. Include:
|
||||
- **Sign-off**: "Sincerely," followed by your name
|
||||
|
||||
<Info>
|
||||
The recipient and content are both rendered directly on your resume without a section header, giving your cover letter a clean, professional appearance.
|
||||
The recipient and content are both rendered directly on your resume without a section header, giving your cover letter
|
||||
a clean, professional appearance.
|
||||
</Info>
|
||||
|
||||
## Using fullscreen mode for writing
|
||||
@@ -88,13 +90,15 @@ For a distraction-free writing experience, use the fullscreen mode in the rich t
|
||||
Click on your cover letter item in the sidebar to open the edit dialog.
|
||||
</Step>
|
||||
|
||||
<Step title="Expand the editor">
|
||||
In either the Recipient or Content field, click the **expand icon** (arrows pointing outward) in the bottom-right corner of the editor.
|
||||
</Step>
|
||||
<Step title="Expand the editor">
|
||||
In either the Recipient or Content field, click the **expand icon** (arrows pointing outward) in the bottom-right
|
||||
corner of the editor.
|
||||
</Step>
|
||||
|
||||
<Step title="Write in fullscreen">
|
||||
The editor will expand to nearly fill your screen, giving you a focused writing environment with all formatting tools available.
|
||||
</Step>
|
||||
<Step title="Write in fullscreen">
|
||||
The editor will expand to nearly fill your screen, giving you a focused writing environment with all formatting tools
|
||||
available.
|
||||
</Step>
|
||||
|
||||
<Step title="Exit fullscreen">
|
||||
Click the **collapse icon** or press **Escape** to return to the normal view.
|
||||
@@ -126,6 +130,7 @@ Cover letters are typically on their own page, separate from the resume content.
|
||||
<Tip>
|
||||
See [Moving items between sections](/guides/moving-items-between-sections) for detailed instructions on how to move sections between pages.
|
||||
</Tip>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Verify the layout">
|
||||
@@ -134,25 +139,27 @@ Cover letters are typically on their own page, separate from the resume content.
|
||||
</Steps>
|
||||
|
||||
<Warning>
|
||||
When exporting as PDF, pages are rendered in order. If you want the cover letter first, place it on page 1 and move your resume content to subsequent pages.
|
||||
When exporting as PDF, pages are rendered in order. If you want the cover letter first, place it on page 1 and move
|
||||
your resume content to subsequent pages.
|
||||
</Warning>
|
||||
|
||||
## Tips for effective cover letters
|
||||
|
||||
<Tip>**Keep it concise**: Aim for 250-400 words. Recruiters spend about one minute reading cover letters.</Tip>
|
||||
|
||||
<Tip>
|
||||
**Keep it concise**: Aim for 250-400 words. Recruiters spend about one minute reading cover letters.
|
||||
**Tailor each letter**: Customize your cover letter for each application. Reference specific job requirements and
|
||||
company values.
|
||||
</Tip>
|
||||
|
||||
<Tip>
|
||||
**Tailor each letter**: Customize your cover letter for each application. Reference specific job requirements and company values.
|
||||
**Use the same styling**: Your cover letter will inherit the fonts and colors from your resume template, ensuring a
|
||||
cohesive look.
|
||||
</Tip>
|
||||
|
||||
<Tip>
|
||||
**Use the same styling**: Your cover letter will inherit the fonts and colors from your resume template, ensuring a cohesive look.
|
||||
</Tip>
|
||||
|
||||
<Tip>
|
||||
**Proofread carefully**: Spelling and grammar errors can disqualify your application. Review your letter before exporting.
|
||||
**Proofread carefully**: Spelling and grammar errors can disqualify your application. Review your letter before
|
||||
exporting.
|
||||
</Tip>
|
||||
|
||||
## Managing multiple cover letters
|
||||
|
||||
@@ -8,7 +8,7 @@ description: "Learn how to check the status of Reactive Resume's servers and wha
|
||||
You can monitor the health and availability of Reactive Resume's servers at any time by visiting our status page:
|
||||
|
||||
<Card title="Status Page" icon="signal" href="https://status.rxresu.me">
|
||||
View real-time server metrics including uptime, CPU usage, memory usage, and more.
|
||||
View real-time server metrics including uptime, CPU usage, memory usage, and more.
|
||||
</Card>
|
||||
|
||||
The status page provides information such as:
|
||||
@@ -35,6 +35,7 @@ If you notice the servers are experiencing high load or downtime, here are some
|
||||
<Info>
|
||||
Reactive Resume is a **free, open-source service** used by thousands of people worldwide. During peak times, the servers may experience higher than usual load.
|
||||
</Info>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Check for announcements">
|
||||
@@ -47,7 +48,8 @@ If you notice the servers are experiencing high load or downtime, here are some
|
||||
## A Note on Server Capacity
|
||||
|
||||
<Warning>
|
||||
Reactive Resume is a **free service** that runs on limited server resources. As an open-source project maintained by a single developer, it's not feasible to invest in powerful dedicated servers without community support.
|
||||
Reactive Resume is a **free service** that runs on limited server resources. As an open-source project maintained by a
|
||||
single developer, it's not feasible to invest in powerful dedicated servers without community support.
|
||||
</Warning>
|
||||
|
||||
The reality is:
|
||||
@@ -65,16 +67,17 @@ If you find Reactive Resume valuable and want to help keep the servers running s
|
||||
Your donations directly help cover server costs, improve infrastructure, and keep Reactive Resume free for everyone.
|
||||
|
||||
<Card title="Donate on Open Collective" icon="heart" href="https://opencollective.com/reactive-resume">
|
||||
Support Reactive Resume's development and server costs through Open Collective. Every contribution helps keep the service running.
|
||||
Support Reactive Resume's development and server costs through Open Collective. Every contribution helps keep the
|
||||
service running.
|
||||
</Card>
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="One-time Donation" icon="gift">
|
||||
Make a single contribution of any amount to help with immediate server costs.
|
||||
</Card>
|
||||
<Card title="Recurring Support" icon="repeat">
|
||||
Become a backer with a monthly contribution to provide sustainable support.
|
||||
</Card>
|
||||
<Card title="One-time Donation" icon="gift">
|
||||
Make a single contribution of any amount to help with immediate server costs.
|
||||
</Card>
|
||||
<Card title="Recurring Support" icon="repeat">
|
||||
Become a backer with a monthly contribution to provide sustainable support.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
---
|
||||
@@ -84,7 +87,7 @@ Your donations directly help cover server costs, improve infrastructure, and kee
|
||||
If you need guaranteed uptime or want to avoid shared server limitations, you can always self-host Reactive Resume on your own infrastructure.
|
||||
|
||||
<Card title="Self-Hosting Guide" icon="server" href="/self-hosting/docker">
|
||||
Learn how to deploy Reactive Resume on your own servers using Docker.
|
||||
Learn how to deploy Reactive Resume on your own servers using Docker.
|
||||
</Card>
|
||||
|
||||
Self-hosting gives you:
|
||||
|
||||
@@ -16,11 +16,12 @@ Changing your resume template is simple and can be done at any time without losi
|
||||
<Frame caption="Screenshot of your resumes dashboard showing all your resume">
|
||||
<img src="/images/guides/choosing-a-template/screenshot-1.webp" alt="Screenshot of your resumes dashboard showing all your resume" />
|
||||
</Frame>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Open the right sidebar">
|
||||
In the resume builder, look for the right sidebar. This is where you'll find all the design and layout options.
|
||||
</Step>
|
||||
<Step title="Open the right sidebar">
|
||||
In the resume builder, look for the right sidebar. This is where you'll find all the design and layout options.
|
||||
</Step>
|
||||
|
||||
<Step title="Navigate to the Template section">
|
||||
In the right sidebar, find and click on the **Template** section to expand it.
|
||||
@@ -28,6 +29,7 @@ Changing your resume template is simple and can be done at any time without losi
|
||||
<Frame caption="Screenshot of the template section in the right sidebar">
|
||||
<img src="/images/guides/choosing-a-template/screenshot-2.webp" alt="Screenshot of the template section in the right sidebar" />
|
||||
</Frame>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Select your new template">
|
||||
@@ -36,6 +38,7 @@ Changing your resume template is simple and can be done at any time without losi
|
||||
<Frame caption="Screenshot of selecting a new template from the gallery">
|
||||
<img src="/images/guides/choosing-a-template/screenshot-3.webp" alt="Screenshot of selecting a new template from the gallery" />
|
||||
</Frame>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Review and adjust">
|
||||
@@ -48,6 +51,7 @@ Changing your resume template is simple and can be done at any time without losi
|
||||
<Tip>
|
||||
Different templates may display your content differently. Some templates work better with shorter content, while others are designed to handle more detailed information.
|
||||
</Tip>
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
@@ -61,13 +65,15 @@ Changing your resume template is simple and can be done at any time without losi
|
||||
- **Tech/Startups**: Modern, balanced templates like Chikorita or Leafish
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Think about content length" icon="ruler">
|
||||
If you have a lot of experience to showcase, choose a template with efficient space usage. For shorter resumes, templates with more white space can make your content feel more substantial.
|
||||
</Accordion>
|
||||
<Accordion title="Think about content length" icon="ruler">
|
||||
If you have a lot of experience to showcase, choose a template with efficient space usage. For shorter resumes,
|
||||
templates with more white space can make your content feel more substantial.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Match your personal brand" icon="palette">
|
||||
Your resume is part of your personal brand. Choose a template that reflects your personality while remaining professional and appropriate for your target roles.
|
||||
</Accordion>
|
||||
<Accordion title="Match your personal brand" icon="palette">
|
||||
Your resume is part of your personal brand. Choose a template that reflects your personality while remaining
|
||||
professional and appropriate for your target roles.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Test with real content" icon="file-lines">
|
||||
Don't choose a template based on how it looks empty. Fill in your actual content and see how it flows across pages. What looks great with sample data might not work as well with your specific information.
|
||||
@@ -81,7 +87,8 @@ Changing your resume template is simple and can be done at any time without losi
|
||||
Reactive Resume includes a variety of professionally designed templates. Each template can be further customized with your choice of colors, fonts, and layout options.
|
||||
|
||||
<Info>
|
||||
All templates support the same features and sections. The difference is purely in how they present your information visually.
|
||||
All templates support the same features and sections. The difference is purely in how they present your information
|
||||
visually.
|
||||
</Info>
|
||||
|
||||
<div className="grid grid-cols-1 sm:grid-cols-2 gap-4">
|
||||
@@ -89,49 +96,49 @@ Reactive Resume includes a variety of professionally designed templates. Each te
|
||||
<img src="/images/templates/azurill.webp" alt="Azurill template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
|
||||
<Frame caption="Bronzor">
|
||||
<img src="/images/templates/bronzor.webp" alt="Bronzor template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
<Frame caption="Bronzor">
|
||||
<img src="/images/templates/bronzor.webp" alt="Bronzor template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
|
||||
<Frame caption="Chikorita">
|
||||
<img src="/images/templates/chikorita.webp" alt="Chikorita template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
<Frame caption="Chikorita">
|
||||
<img src="/images/templates/chikorita.webp" alt="Chikorita template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
|
||||
<Frame caption="Ditto">
|
||||
<img src="/images/templates/ditto.webp" alt="Ditto template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
<Frame caption="Ditto">
|
||||
<img src="/images/templates/ditto.webp" alt="Ditto template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
|
||||
<Frame caption="Ditgar">
|
||||
<img src="/images/templates/ditgar.webp" alt="Ditgar template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
<Frame caption="Ditgar">
|
||||
<img src="/images/templates/ditgar.webp" alt="Ditgar template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
|
||||
<Frame caption="Gengar">
|
||||
<img src="/images/templates/gengar.webp" alt="Gengar template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
<Frame caption="Gengar">
|
||||
<img src="/images/templates/gengar.webp" alt="Gengar template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
|
||||
<Frame caption="Glalie">
|
||||
<img src="/images/templates/glalie.webp" alt="Glalie template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
<Frame caption="Glalie">
|
||||
<img src="/images/templates/glalie.webp" alt="Glalie template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
|
||||
<Frame caption="Kakuna">
|
||||
<img src="/images/templates/kakuna.webp" alt="Kakuna template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
<Frame caption="Kakuna">
|
||||
<img src="/images/templates/kakuna.webp" alt="Kakuna template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
|
||||
<Frame caption="Lapras">
|
||||
<img src="/images/templates/lapras.webp" alt="Lapras template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
<Frame caption="Lapras">
|
||||
<img src="/images/templates/lapras.webp" alt="Lapras template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
|
||||
<Frame caption="Leafish">
|
||||
<img src="/images/templates/leafish.webp" alt="Leafish template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
<Frame caption="Leafish">
|
||||
<img src="/images/templates/leafish.webp" alt="Leafish template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
|
||||
<Frame caption="Onyx">
|
||||
<img src="/images/templates/onyx.webp" alt="Onyx template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
<Frame caption="Onyx">
|
||||
<img src="/images/templates/onyx.webp" alt="Onyx template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
|
||||
<Frame caption="Pikachu">
|
||||
<img src="/images/templates/pikachu.webp" alt="Pikachu template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
<Frame caption="Pikachu">
|
||||
<img src="/images/templates/pikachu.webp" alt="Pikachu template preview" style={{ aspectRatio: "210/297" }} />
|
||||
</Frame>
|
||||
|
||||
<Frame caption="Rhyhorn">
|
||||
<img src="/images/templates/rhyhorn.webp" alt="Rhyhorn template preview" style={{ aspectRatio: "210/297" }} />
|
||||
@@ -144,13 +151,11 @@ Reactive Resume includes a variety of professionally designed templates. Each te
|
||||
|
||||
After selecting a template, you can customize it further:
|
||||
|
||||
| Setting | Description |
|
||||
|---------|-------------|
|
||||
| **Colors** | Change the primary color scheme to match your personal brand |
|
||||
| **Typography** | Choose from various Google Fonts for headings and body text |
|
||||
| **Layout** | Adjust sidebar width, section order, and page margins |
|
||||
| **Spacing** | Fine-tune gaps between sections and elements |
|
||||
| Setting | Description |
|
||||
| -------------- | ------------------------------------------------------------ |
|
||||
| **Colors** | Change the primary color scheme to match your personal brand |
|
||||
| **Typography** | Choose from various Google Fonts for headings and body text |
|
||||
| **Layout** | Adjust sidebar width, section order, and page margins |
|
||||
| **Spacing** | Fine-tune gaps between sections and elements |
|
||||
|
||||
<Tip>
|
||||
For more advanced customization options, check out [Using Custom CSS](/guides/using-custom-css).
|
||||
</Tip>
|
||||
<Tip>For more advanced customization options, check out [Using Custom CSS](/guides/using-custom-css).</Tip>
|
||||
|
||||
@@ -23,6 +23,7 @@ description: "Learn how to create an account on Reactive Resume and get started
|
||||
<Warning>
|
||||
Make sure to choose a username you're happy with, as it will be part of your public resume URL (e.g., `rxresu.me/your-username/resume-slug`).
|
||||
</Warning>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Sign up and log in">
|
||||
@@ -58,12 +59,12 @@ description: "Learn how to create an account on Reactive Resume and get started
|
||||
## Account Security Tips
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Use a strong password" icon="lock">
|
||||
Create a password that's at least 8 characters long and includes a mix of letters, numbers, and special characters.
|
||||
</Card>
|
||||
<Card title="Setup 2FA/Passkeys" icon="key">
|
||||
Setup two-factor authentication or passkeys on your account to add an extra layer of security.
|
||||
</Card>
|
||||
<Card title="Use a strong password" icon="lock">
|
||||
Create a password that's at least 8 characters long and includes a mix of letters, numbers, and special characters.
|
||||
</Card>
|
||||
<Card title="Setup 2FA/Passkeys" icon="key">
|
||||
Setup two-factor authentication or passkeys on your account to add an extra layer of security.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
---
|
||||
@@ -71,15 +72,19 @@ description: "Learn how to create an account on Reactive Resume and get started
|
||||
## Troubleshooting
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Username Already Taken">
|
||||
If you see an error that your username is already taken, try a different variation. Usernames must be unique across all users.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Email Already Registered">
|
||||
If your email is already registered, you can use the **Forgot Password** link on the login page to reset your password and regain access to your account.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Didn't Receive Verification Email">
|
||||
Check your spam folder first. If you still don't see it, you can request a new verification email from your account settings.
|
||||
</Accordion>
|
||||
<Accordion title="Username Already Taken">
|
||||
If you see an error that your username is already taken, try a different variation. Usernames must be unique across
|
||||
all users.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Email Already Registered">
|
||||
If your email is already registered, you can use the **Forgot Password** link on the login page to reset your
|
||||
password and regain access to your account.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Didn't Receive Verification Email">
|
||||
Check your spam folder first. If you still don't see it, you can request a new verification email from your account
|
||||
settings.
|
||||
</Accordion>
|
||||
|
||||
</AccordionGroup>
|
||||
|
||||
@@ -10,6 +10,7 @@ description: "Learn how to create your first resume in Reactive Resume, set a na
|
||||
<Tip>
|
||||
If you haven't created an account yet, follow the guide on [Creating an Account](/guides/creating-an-account).
|
||||
</Tip>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Open the Resumes Dashboard">
|
||||
@@ -18,11 +19,12 @@ description: "Learn how to create your first resume in Reactive Resume, set a na
|
||||
<Info>
|
||||
This is where you can create, organize, and manage multiple resumes for different roles or versions.
|
||||
</Info>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Click “Create a new resume”">
|
||||
In the Resumes Dashboard, click on the <Badge>Create a new resume</Badge> card to open the creation form.
|
||||
</Step>
|
||||
<Step title="Click “Create a new resume”">
|
||||
In the Resumes Dashboard, click on the <Badge>Create a new resume</Badge> card to open the creation form.
|
||||
</Step>
|
||||
|
||||
<Step title="Name your resume">
|
||||
Fill in the resume name. This can be a generic name (e.g., “General Resume”) or something tied to the position you’re applying for.
|
||||
@@ -30,6 +32,7 @@ description: "Learn how to create your first resume in Reactive Resume, set a na
|
||||
<Tip>
|
||||
If you can’t think of a name yet, click the <Badge>Magic Wand</Badge> button to generate a random name for you.
|
||||
</Tip>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Review (or edit) the slug">
|
||||
@@ -38,6 +41,7 @@ description: "Learn how to create your first resume in Reactive Resume, set a na
|
||||
<Warning>
|
||||
If you choose to publicly share your resume, it will be accessible at `https://rxresu.me/{username}/{slug}`.
|
||||
</Warning>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Add tags (optional)">
|
||||
@@ -46,6 +50,7 @@ description: "Learn how to create your first resume in Reactive Resume, set a na
|
||||
<Info>
|
||||
You can filter resumes by tags later from the Dashboard.
|
||||
</Info>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Open the resume in the builder">
|
||||
|
||||
@@ -8,9 +8,10 @@ description: "Learn how to permanently delete your Reactive Resume account and a
|
||||
Head over to [https://rxresu.me](https://rxresu.me) and sign in with your account credentials.
|
||||
</Step>
|
||||
|
||||
<Step title="Navigate to Danger Zone">
|
||||
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section, click on <Badge>Danger Zone</Badge>.
|
||||
</Step>
|
||||
<Step title="Navigate to Danger Zone">
|
||||
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section,
|
||||
click on <Badge>Danger Zone</Badge>.
|
||||
</Step>
|
||||
|
||||
<Step title="Type the confirmation text">
|
||||
On the Danger Zone page, type <Badge>delete</Badge> into the confirmation input.
|
||||
@@ -18,6 +19,7 @@ description: "Learn how to permanently delete your Reactive Resume account and a
|
||||
<Info>
|
||||
The <Badge>Delete Account</Badge> button will stay disabled until the confirmation text matches exactly.
|
||||
</Info>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Delete your account">
|
||||
@@ -26,10 +28,10 @@ description: "Learn how to permanently delete your Reactive Resume account and a
|
||||
<Warning>
|
||||
This action cannot be undone. All your data will be permanently deleted.
|
||||
</Warning>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="You will be signed out">
|
||||
After deletion completes, you will be signed out and redirected to the homepage.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -6,11 +6,16 @@ description: "Learn how to reorganize and format your resume content to fit with
|
||||
When your resume content overflows the page, Reactive Resume displays a warning just below the page. This guide explains how to reorganize and adjust your content so everything fits within your chosen page format.
|
||||
|
||||
<Frame caption="Screenshot of the overflow warning message in the resume builder">
|
||||
<img src="/images/guides/fitting-content-on-a-page/screenshot-1.webp" alt="Screenshot of the overflow warning message in the resume builder" />
|
||||
<img
|
||||
src="/images/guides/fitting-content-on-a-page/screenshot-1.webp"
|
||||
alt="Screenshot of the overflow warning message in the resume builder"
|
||||
/>
|
||||
</Frame>
|
||||
|
||||
<Warning>
|
||||
While Reactive Resume supports multi-page resumes, each page has a fixed height based on your chosen format (A4 or Letter). If a single page's content exceeds this height, parts of your resume may be rendered improperly when printed or exported.
|
||||
While Reactive Resume supports multi-page resumes, each page has a fixed height based on your chosen format (A4 or
|
||||
Letter). If a single page's content exceeds this height, parts of your resume may be rendered improperly when printed
|
||||
or exported.
|
||||
</Warning>
|
||||
|
||||
## Quick fixes
|
||||
@@ -31,7 +36,8 @@ With Free-Form:
|
||||
To switch formats, go to the **Page** section in the right sidebar and change the **Format** to Free-Form. For more details, see [Selecting the right page format](/guides/selecting-page-format).
|
||||
|
||||
<Tip>
|
||||
Since most resumes are viewed digitally today, Free-Form is often the best choice unless you specifically need to print physical copies.
|
||||
Since most resumes are viewed digitally today, Free-Form is often the best choice unless you specifically need to
|
||||
print physical copies.
|
||||
</Tip>
|
||||
|
||||
### 2. Shorten text blocks
|
||||
@@ -43,9 +49,7 @@ Long paragraphs take up space without adding proportional value. Review each sec
|
||||
- **Focus on impact.** Keep measurable achievements; cut generic descriptions.
|
||||
- **Limit bullets per entry.** Three to five bullets per job is usually enough.
|
||||
|
||||
<Tip>
|
||||
Read each bullet point and ask: "Does this help me get an interview?" If not, cut it.
|
||||
</Tip>
|
||||
<Tip>Read each bullet point and ask: "Does this help me get an interview?" If not, cut it.</Tip>
|
||||
|
||||
### 3. Use multi-column layouts
|
||||
|
||||
@@ -54,21 +58,25 @@ Some sections work better in multiple columns, especially lists of short items.
|
||||
In the left sidebar, find the section you want to adjust, click on the section heading (not an item), and change the **Columns** setting.
|
||||
|
||||
<Frame caption="Screenshot of the columns setting for a section">
|
||||
<img src="/images/guides/fitting-content-on-a-page/screenshot-2.webp" alt="Screenshot of the columns setting for a section" />
|
||||
<img
|
||||
src="/images/guides/fitting-content-on-a-page/screenshot-2.webp"
|
||||
alt="Screenshot of the columns setting for a section"
|
||||
/>
|
||||
</Frame>
|
||||
|
||||
Good candidates for multi-column layouts:
|
||||
|
||||
| Section | Recommended Columns |
|
||||
|---------|---------------------|
|
||||
| Skills | > 2 columns |
|
||||
| Languages | > 3 columns |
|
||||
| Interests | > 2 columns |
|
||||
| Profiles | > 3 columns |
|
||||
| Certifications (if brief) | > 2 columns |
|
||||
| Section | Recommended Columns |
|
||||
| ------------------------- | ------------------- |
|
||||
| Skills | > 2 columns |
|
||||
| Languages | > 3 columns |
|
||||
| Interests | > 2 columns |
|
||||
| Profiles | > 3 columns |
|
||||
| Certifications (if brief) | > 2 columns |
|
||||
|
||||
<Info>
|
||||
Multi-column layouts work best for sections with short, uniform items. Sections with long descriptions (like Experience or Projects) usually work better in a single column.
|
||||
Multi-column layouts work best for sections with short, uniform items. Sections with long descriptions (like
|
||||
Experience or Projects) usually work better in a single column.
|
||||
</Info>
|
||||
|
||||
### 4. Move items to another page
|
||||
@@ -84,7 +92,8 @@ Use the **Move to** feature to relocate items:
|
||||
For detailed instructions, see [Moving items between sections](/guides/moving-items-between-sections).
|
||||
|
||||
<Tip>
|
||||
Keep your most recent and relevant experience on page one. Move older positions or less critical sections (like older projects or volunteer work) to subsequent pages.
|
||||
Keep your most recent and relevant experience on page one. Move older positions or less critical sections (like older
|
||||
projects or volunteer work) to subsequent pages.
|
||||
</Tip>
|
||||
|
||||
### 5. Adjust layout and design settings
|
||||
@@ -93,17 +102,19 @@ The right sidebar contains settings that control how much space your content use
|
||||
|
||||
Open the right sidebar and explore these options:
|
||||
|
||||
| Setting | Where to find it | Effect |
|
||||
|---------|------------------|--------|
|
||||
| **Font size** | Typography | Smaller fonts fit more text per line and per page |
|
||||
| **Line height** | Typography | Tighter line spacing reduces vertical space |
|
||||
| **Margins** | Page | Smaller margins give you more usable area |
|
||||
| **Section gaps** | Page | Reducing gaps between sections saves space |
|
||||
| **Sidebar width** | Layout | Adjusting the sidebar ratio can balance content better |
|
||||
| **Picture size** | Picture (left sidebar) | A smaller photo leaves more room for text |
|
||||
| Setting | Where to find it | Effect |
|
||||
| ----------------- | ---------------------- | ------------------------------------------------------ |
|
||||
| **Font size** | Typography | Smaller fonts fit more text per line and per page |
|
||||
| **Line height** | Typography | Tighter line spacing reduces vertical space |
|
||||
| **Margins** | Page | Smaller margins give you more usable area |
|
||||
| **Section gaps** | Page | Reducing gaps between sections saves space |
|
||||
| **Sidebar width** | Layout | Adjusting the sidebar ratio can balance content better |
|
||||
| **Picture size** | Picture (left sidebar) | A smaller photo leaves more room for text |
|
||||
|
||||
<Info>
|
||||
**Reducing font size is the best option** when you need to fit more content while keeping A4 or Letter format. Reducing body font from 11pt to 10.5pt (or even 10pt) can free up significant space while remaining readable. The editor supports 0.1pt increments, so you can fine-tune precisely.
|
||||
**Reducing font size is the best option** when you need to fit more content while keeping A4 or Letter format.
|
||||
Reducing body font from 11pt to 10.5pt (or even 10pt) can free up significant space while remaining readable. The
|
||||
editor supports 0.1pt increments, so you can fine-tune precisely.
|
||||
</Info>
|
||||
|
||||
### 6. Hide less important sections
|
||||
@@ -130,7 +141,8 @@ Try this order:
|
||||
5. Fine-tune font size and spacing last
|
||||
|
||||
<Tip>
|
||||
Use the live preview to see changes as you make them. Small adjustments add up—reducing font size by 0.5pt combined with slightly smaller margins can recover enough space for several lines of content.
|
||||
Use the live preview to see changes as you make them. Small adjustments add up—reducing font size by 0.5pt combined
|
||||
with slightly smaller margins can recover enough space for several lines of content.
|
||||
</Tip>
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
+1952
-2356
File diff suppressed because it is too large
Load Diff
@@ -8,13 +8,15 @@ description: "Learn how to connect or disconnect social sign-in providers like G
|
||||
Head over to [https://rxresu.me](https://rxresu.me) and sign in with your account credentials.
|
||||
</Step>
|
||||
|
||||
<Step title="Navigate to Authentication settings">
|
||||
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section, click on the <Badge>Authentication</Badge> link.
|
||||
</Step>
|
||||
<Step title="Navigate to Authentication settings">
|
||||
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section,
|
||||
click on the <Badge>Authentication</Badge> link.
|
||||
</Step>
|
||||
|
||||
<Step title="Find the social provider you want to link">
|
||||
On the Authentication page, you may see sections for one or more providers (for example, <Badge>Google</Badge> or <Badge>GitHub</Badge>), depending on what is enabled on your instance.
|
||||
</Step>
|
||||
<Step title="Find the social provider you want to link">
|
||||
On the Authentication page, you may see sections for one or more providers (for example, <Badge>Google</Badge> or{" "}
|
||||
<Badge>GitHub</Badge>), depending on what is enabled on your instance.
|
||||
</Step>
|
||||
|
||||
<Step title="Connect your account">
|
||||
Click the <Badge>Connect</Badge> button for the provider you want to link. You'll be redirected to the provider to authorize access, then returned to the Authentication settings page.
|
||||
@@ -22,6 +24,7 @@ description: "Learn how to connect or disconnect social sign-in providers like G
|
||||
<Info>
|
||||
After a successful link, the button will change to <Badge>Disconnect</Badge>.
|
||||
</Info>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Disconnect a provider (optional)">
|
||||
@@ -30,6 +33,6 @@ description: "Learn how to connect or disconnect social sign-in providers like G
|
||||
<Warning>
|
||||
Before disconnecting, make sure you still have another way to sign in (for example, a password or another linked provider) so you don't get locked out.
|
||||
</Warning>
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ If you have a long work history or extensive project list, you may want to split
|
||||
<Info>
|
||||
Make sure you have at least one item in a section (e.g., an experience entry, project, or skill) before proceeding.
|
||||
</Info>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Locate the item you want to move">
|
||||
@@ -28,6 +29,7 @@ If you have a long work history or extensive project list, you may want to split
|
||||
<Frame caption="Screenshot of the left sidebar with an expanded section containing multiple items">
|
||||
<img src="/images/guides/moving-items-between-sections/screenshot-1.webp" alt="Screenshot of the left sidebar with an expanded section containing multiple items" />
|
||||
</Frame>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Open the item dropdown menu">
|
||||
@@ -36,11 +38,13 @@ If you have a long work history or extensive project list, you may want to split
|
||||
<Frame caption="Screenshot of the dropdown menu icon on a section item">
|
||||
<img src="/images/guides/moving-items-between-sections/screenshot-2.webp" alt="Screenshot of the dropdown menu icon on a section item" />
|
||||
</Frame>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Hover over 'Move to'">
|
||||
In the dropdown menu, hover over or click the <Badge>Move to</Badge> option. This will open a submenu showing all available destinations.
|
||||
</Step>
|
||||
<Step title="Hover over 'Move to'">
|
||||
In the dropdown menu, hover over or click the <Badge>Move to</Badge> option. This will open a submenu showing all
|
||||
available destinations.
|
||||
</Step>
|
||||
|
||||
<Step title="Select a destination">
|
||||
The submenu displays available destinations organized by:
|
||||
@@ -54,10 +58,11 @@ If you have a long work history or extensive project list, you may want to split
|
||||
<Frame caption="Screenshot of the 'Move to' submenu with destination options">
|
||||
<img src="/images/guides/moving-items-between-sections/screenshot-3.webp" alt="Screenshot of the 'Move to' submenu with destination options" />
|
||||
</Frame>
|
||||
|
||||
|
||||
<Tip>
|
||||
If a custom section of the same type doesn't exist on your target page, Reactive Resume will **automatically create one** for you. This makes it easy to split sections across pages without manual setup.
|
||||
</Tip>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Verify the move">
|
||||
@@ -69,6 +74,7 @@ If you have a long work history or extensive project list, you may want to split
|
||||
<Frame caption="Screenshot of the item in its new location">
|
||||
<img src="/images/guides/moving-items-between-sections/screenshot-4.webp" alt="Screenshot of the item in its new location" />
|
||||
</Frame>
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
@@ -91,6 +97,7 @@ A common use case is when your work history is too long to fit on a single page.
|
||||
<Info>
|
||||
If no Experience section exists on page 2, a new custom section will be created automatically with the same type, so your formatting stays consistent.
|
||||
</Info>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Review the result">
|
||||
@@ -101,21 +108,25 @@ A common use case is when your work history is too long to fit on a single page.
|
||||
- The section headings and styling remain consistent
|
||||
|
||||
{/* TODO: Add screenshot showing a resume with Experience split across page 1 and page 2 */}
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Tips for organizing multi-page resumes
|
||||
|
||||
<Tip>
|
||||
**Keep it logical**: Maintain chronological order within each page. Move complete job entries rather than splitting a single role across pages.
|
||||
**Keep it logical**: Maintain chronological order within each page. Move complete job entries rather than splitting a
|
||||
single role across pages.
|
||||
</Tip>
|
||||
|
||||
<Tip>
|
||||
**Use custom section names**: After moving items to a new custom section, you can rename it (e.g., "Earlier Experience" or "Additional Projects") to provide context for recruiters.
|
||||
**Use custom section names**: After moving items to a new custom section, you can rename it (e.g., "Earlier
|
||||
Experience" or "Additional Projects") to provide context for recruiters.
|
||||
</Tip>
|
||||
|
||||
<Warning>
|
||||
Moving items reorganizes your content but doesn't affect the data itself. You can always move items back or to different sections as needed.
|
||||
Moving items reorganizes your content but doesn't affect the data itself. You can always move items back or to
|
||||
different sections as needed.
|
||||
</Warning>
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
@@ -11,10 +11,10 @@ Reactive Resume offers three page format options: **A4**, **Letter**, and **Free
|
||||
|
||||
A4 is the international standard paper size used in most countries outside North America. When you select A4, your resume pages conform to these dimensions:
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| Width | 210mm (794px) |
|
||||
| Height | 297mm (1123px) |
|
||||
| Property | Value |
|
||||
| -------- | -------------- |
|
||||
| Width | 210mm (794px) |
|
||||
| Height | 297mm (1123px) |
|
||||
|
||||
Choose A4 if you're applying to jobs internationally or in regions that use the metric system.
|
||||
|
||||
@@ -22,10 +22,10 @@ Choose A4 if you're applying to jobs internationally or in regions that use the
|
||||
|
||||
Letter is the standard paper size in the United States and Canada. When you select Letter, your resume pages conform to these dimensions:
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| Width | 216mm (816px) |
|
||||
| Height | 279mm (1056px) |
|
||||
| Property | Value |
|
||||
| -------- | -------------- |
|
||||
| Width | 216mm (816px) |
|
||||
| Height | 279mm (1056px) |
|
||||
|
||||
Choose Letter if you're applying to jobs in North America.
|
||||
|
||||
@@ -33,13 +33,14 @@ Choose Letter if you're applying to jobs in North America.
|
||||
|
||||
Free-Form is a modern format designed for digital-first resumes. Instead of conforming to a physical page size, Free-Form produces a **single continuous page** with no height limit. The width matches A4 (210mm), but the height extends as needed to fit all your content.
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| Width | 210mm (794px) |
|
||||
| Height | Unlimited |
|
||||
| Property | Value |
|
||||
| -------- | ------------- |
|
||||
| Width | 210mm (794px) |
|
||||
| Height | Unlimited |
|
||||
|
||||
<Info>
|
||||
With Free-Form, there are no page breaks. Your entire resume renders as one seamless document, regardless of how much content you have.
|
||||
With Free-Form, there are no page breaks. Your entire resume renders as one seamless document, regardless of how much
|
||||
content you have.
|
||||
</Info>
|
||||
|
||||
## Why Free-Form exists
|
||||
@@ -56,7 +57,8 @@ When your resume is processed digitally:
|
||||
Since physical page constraints no longer matter for most use cases, Free-Form lets you focus on content rather than worrying about fitting everything into arbitrary page limits.
|
||||
|
||||
<Tip>
|
||||
If you don't plan on printing your resume, Free-Form is often the simplest choice. You never have to worry about content overflowing or awkward page breaks.
|
||||
If you don't plan on printing your resume, Free-Form is often the simplest choice. You never have to worry about
|
||||
content overflowing or awkward page breaks.
|
||||
</Tip>
|
||||
|
||||
## How to change your page format
|
||||
@@ -66,13 +68,13 @@ Since physical page constraints no longer matter for most use cases, Free-Form l
|
||||
Navigate to your Dashboard and click on the resume you want to edit.
|
||||
</Step>
|
||||
|
||||
<Step title="Open the right sidebar">
|
||||
In the resume builder, look for the right sidebar on the right side of the screen.
|
||||
</Step>
|
||||
<Step title="Open the right sidebar">
|
||||
In the resume builder, look for the right sidebar on the right side of the screen.
|
||||
</Step>
|
||||
|
||||
<Step title="Navigate to the Page section">
|
||||
In the right sidebar, find and click on the **Page** section to expand it.
|
||||
</Step>
|
||||
<Step title="Navigate to the Page section">
|
||||
In the right sidebar, find and click on the **Page** section to expand it.
|
||||
</Step>
|
||||
|
||||
<Step title="Select your format">
|
||||
Find the **Format** dropdown and select your preferred option: A4, Letter, or Free-Form.
|
||||
@@ -80,6 +82,7 @@ Since physical page constraints no longer matter for most use cases, Free-Form l
|
||||
<Frame caption="Screenshot of the Format dropdown in the Page section">
|
||||
<img src="/images/guides/selecting-page-format/screenshot-1.webp" alt="Screenshot of the Format dropdown in the Page section" />
|
||||
</Frame>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Review the preview">
|
||||
@@ -91,18 +94,19 @@ Since physical page constraints no longer matter for most use cases, Free-Form l
|
||||
|
||||
Use this quick reference to decide which format fits your needs:
|
||||
|
||||
| Situation | Recommended Format |
|
||||
|-----------|-------------------|
|
||||
| Applying to jobs in North America | Letter |
|
||||
| Applying to jobs internationally | A4 |
|
||||
| Digital-only applications (no printing) | Free-Form |
|
||||
| Uploading to ATS or job portals | Free-Form |
|
||||
| Need to print physical copies | A4 or Letter |
|
||||
| Long resume with lots of content | Free-Form |
|
||||
| Traditional industries (law, finance) | A4 or Letter |
|
||||
| Situation | Recommended Format |
|
||||
| --------------------------------------- | ------------------ |
|
||||
| Applying to jobs in North America | Letter |
|
||||
| Applying to jobs internationally | A4 |
|
||||
| Digital-only applications (no printing) | Free-Form |
|
||||
| Uploading to ATS or job portals | Free-Form |
|
||||
| Need to print physical copies | A4 or Letter |
|
||||
| Long resume with lots of content | Free-Form |
|
||||
| Traditional industries (law, finance) | A4 or Letter |
|
||||
|
||||
<Warning>
|
||||
If you switch from Free-Form to A4 or Letter, your content will be split across multiple pages. Review the result carefully to ensure page breaks don't occur in awkward places.
|
||||
If you switch from Free-Form to A4 or Letter, your content will be split across multiple pages. Review the result
|
||||
carefully to ensure page breaks don't occur in awkward places.
|
||||
</Warning>
|
||||
|
||||
## Example PDFs
|
||||
@@ -110,12 +114,24 @@ Use this quick reference to decide which format fits your needs:
|
||||
Download these sample resumes to see how different formats affect the final PDF output:
|
||||
|
||||
<CardGroup cols={1}>
|
||||
<Card arrow horizontal title="A4 Format Example" icon="file-pdf" href="https://github.com/user-attachments/files/24849548/a4.pdf">
|
||||
A sample resume in A4 format showing traditional page breaks and constraints.
|
||||
</Card>
|
||||
<Card arrow horizontal title="Free-Form Example" icon="file-lines" href="https://github.com/user-attachments/files/24849552/free-form.pdf">
|
||||
A sample resume in Free-Form format showing a continuous single-page layout.
|
||||
</Card>
|
||||
<Card
|
||||
arrow
|
||||
horizontal
|
||||
title="A4 Format Example"
|
||||
icon="file-pdf"
|
||||
href="https://github.com/user-attachments/files/24849548/a4.pdf"
|
||||
>
|
||||
A sample resume in A4 format showing traditional page breaks and constraints.
|
||||
</Card>
|
||||
<Card
|
||||
arrow
|
||||
horizontal
|
||||
title="Free-Form Example"
|
||||
icon="file-lines"
|
||||
href="https://github.com/user-attachments/files/24849552/free-form.pdf"
|
||||
>
|
||||
A sample resume in Free-Form format showing a continuous single-page layout.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
## Frequently asked questions
|
||||
@@ -125,17 +141,20 @@ Download these sample resumes to see how different formats affect the final PDF
|
||||
Yes. ATS systems parse the text content of your PDF, not the page dimensions. Free-Form resumes are fully compatible with applicant tracking systems.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Can I switch formats after creating my resume?">
|
||||
Absolutely. You can change the format at any time from the Page section in the right sidebar. Your content is preserved—only the layout changes.
|
||||
</Accordion>
|
||||
<Accordion title="Can I switch formats after creating my resume?">
|
||||
Absolutely. You can change the format at any time from the Page section in the right sidebar. Your content is
|
||||
preserved—only the layout changes.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="What if a job posting asks for a 'one-page resume'?">
|
||||
If the employer specifically requests a one-page resume and expects a traditional format, use A4 or Letter and ensure your content fits within a single page. See [Fitting content on a page](/guides/fitting-content-on-a-page) for tips.
|
||||
</Accordion>
|
||||
<Accordion title="What if a job posting asks for a 'one-page resume'?">
|
||||
If the employer specifically requests a one-page resume and expects a traditional format, use A4 or Letter and ensure
|
||||
your content fits within a single page. See [Fitting content on a page](/guides/fitting-content-on-a-page) for tips.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Does Free-Form affect the file size?">
|
||||
Slightly. A longer single page may produce a marginally larger PDF than a paginated version of the same content, but the difference is negligible for typical resume lengths.
|
||||
</Accordion>
|
||||
<Accordion title="Does Free-Form affect the file size?">
|
||||
Slightly. A longer single page may produce a marginally larger PDF than a paginated version of the same content, but
|
||||
the difference is negligible for typical resume lengths.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Which format should I use for LinkedIn?">
|
||||
LinkedIn doesn't display uploaded resumes in their original format—it extracts the content. Free-Form works perfectly for LinkedIn uploads.
|
||||
|
||||
@@ -6,7 +6,8 @@ description: "Learn how to register passkeys (WebAuthn) to sign in securely usin
|
||||
<Warning>
|
||||
<strong>Passkeys Temporarily Disabled:</strong> Passkey registration and sign-in are currently unavailable in Reactive Resume due to an upstream issue with our authentication provider. We are closely monitoring the situation and will re-enable passkeys once it is resolved.
|
||||
|
||||
For more details and technical updates, see the <a href="https://github.com/better-auth/better-auth/issues/7463" target="_blank" rel="noopener">GitHub issue #7463</a>.
|
||||
For more details and technical updates, see the <a href="https://github.com/better-auth/better-auth/issues/7463" target="_blank" rel="noopener">GitHub issue #7463</a>.
|
||||
|
||||
</Warning>
|
||||
|
||||
---
|
||||
@@ -16,17 +17,19 @@ description: "Learn how to register passkeys (WebAuthn) to sign in securely usin
|
||||
Head over to [https://rxresu.me](https://rxresu.me) and sign in with your account credentials.
|
||||
</Step>
|
||||
|
||||
<Step title="Navigate to Authentication settings">
|
||||
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section, click on the <Badge>Authentication</Badge> link.
|
||||
</Step>
|
||||
<Step title="Navigate to Authentication settings">
|
||||
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section,
|
||||
click on the <Badge>Authentication</Badge> link.
|
||||
</Step>
|
||||
|
||||
<Step title="Register a new device">
|
||||
In the <Badge>Passkeys</Badge> section, click on the <Badge>Register New Device</Badge> button.
|
||||
</Step>
|
||||
<Step title="Register a new device">
|
||||
In the <Badge>Passkeys</Badge> section, click on the <Badge>Register New Device</Badge> button.
|
||||
</Step>
|
||||
|
||||
<Step title="Name your passkey">
|
||||
You'll be prompted to enter a name for the passkey. Use something descriptive so you can recognize it later (for example, “MacBook Touch ID” or “iPhone Face ID”).
|
||||
</Step>
|
||||
<Step title="Name your passkey">
|
||||
You'll be prompted to enter a name for the passkey. Use something descriptive so you can recognize it later (for
|
||||
example, “MacBook Touch ID” or “iPhone Face ID”).
|
||||
</Step>
|
||||
|
||||
<Step title="Complete the passkey prompt">
|
||||
Your browser or device will show a passkey prompt (WebAuthn). Follow the on-screen instructions to register your passkey using your biometric (Face ID / Touch ID / fingerprint) or device PIN.
|
||||
@@ -34,6 +37,7 @@ description: "Learn how to register passkeys (WebAuthn) to sign in securely usin
|
||||
<Info>
|
||||
Passkeys are tied to your device (or password manager) and are a more secure alternative to passwords.
|
||||
</Info>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Manage passkeys (optional)">
|
||||
@@ -42,6 +46,6 @@ description: "Learn how to register passkeys (WebAuthn) to sign in securely usin
|
||||
<Warning>
|
||||
Deleting a passkey cannot be undone. After deletion, you won't be able to sign in using that passkey anymore.
|
||||
</Warning>
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ description: "Learn how to enable two-factor authentication (2FA) to add an extr
|
||||
<Warning>
|
||||
Two-factor authentication requires a password to be set on your account. If you signed up using a social provider (Google or GitHub), you'll need to set a password first from the Authentication settings page.
|
||||
</Warning>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Sign in to the dashboard">
|
||||
@@ -18,15 +19,18 @@ description: "Learn how to enable two-factor authentication (2FA) to add an extr
|
||||
<Tip>
|
||||
If you haven't created an account yet, follow the guide on [Creating an Account](/guides/creating-an-account).
|
||||
</Tip>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Navigate to Authentication settings">
|
||||
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section, click on the <Badge>Authentication</Badge> link.
|
||||
</Step>
|
||||
<Step title="Navigate to Authentication settings">
|
||||
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section,
|
||||
click on the <Badge>Authentication</Badge> link.
|
||||
</Step>
|
||||
|
||||
<Step title="Click on Enable 2FA">
|
||||
On the Authentication page, find the <Badge>Two-Factor Authentication</Badge> section and click on the <Badge>Enable 2FA</Badge> button.
|
||||
</Step>
|
||||
<Step title="Click on Enable 2FA">
|
||||
On the Authentication page, find the <Badge>Two-Factor Authentication</Badge> section and click on the{" "}
|
||||
<Badge>Enable 2FA</Badge> button.
|
||||
</Step>
|
||||
|
||||
<Step title="Enter your password">
|
||||
You will be asked to re-enter your password to authenticate that it's really you. Enter your password and click continue.
|
||||
@@ -34,6 +38,7 @@ description: "Learn how to enable two-factor authentication (2FA) to add an extr
|
||||
<Info>
|
||||
This password verification step ensures that only authorized users can enable two-factor authentication on your account.
|
||||
</Info>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Scan the QR code">
|
||||
@@ -51,6 +56,7 @@ description: "Learn how to enable two-factor authentication (2FA) to add an extr
|
||||
<Info>
|
||||
You can also copy the secret key above the QR code and paste it into your authenticator app if you prefer manual entry.
|
||||
</Info>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Save your backup codes">
|
||||
@@ -59,6 +65,7 @@ description: "Learn how to enable two-factor authentication (2FA) to add an extr
|
||||
<Warning>
|
||||
Make sure to copy and store these backup codes in a safe place. If you lose your authenticator device and don't have backup codes, you may lose access to your account.
|
||||
</Warning>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Sign in with 2FA">
|
||||
@@ -67,5 +74,6 @@ description: "Learn how to enable two-factor authentication (2FA) to add an extr
|
||||
<Tip>
|
||||
If you've lost access to your authenticator device, you can use one of your backup codes to sign in. Remember that each backup code can only be used once.
|
||||
</Tip>
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
@@ -8,18 +8,18 @@ Reactive Resume lets you share your resume via a **public URL** that anyone can
|
||||
## Key benefits of public sharing
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Always up-to-date" icon="arrows-rotate">
|
||||
Viewers always see the latest version of your resume. No need to send new files when you make updates.
|
||||
</Card>
|
||||
<Card title="Track engagement" icon="chart-line">
|
||||
See how many times your resume has been viewed and downloaded.
|
||||
</Card>
|
||||
<Card title="Password protection" icon="lock">
|
||||
Optionally require a password so only people you trust can access your resume.
|
||||
</Card>
|
||||
<Card title="Easy to share" icon="share">
|
||||
A simple URL that works anywhere—email signatures, LinkedIn, portfolios, job applications.
|
||||
</Card>
|
||||
<Card title="Always up-to-date" icon="arrows-rotate">
|
||||
Viewers always see the latest version of your resume. No need to send new files when you make updates.
|
||||
</Card>
|
||||
<Card title="Track engagement" icon="chart-line">
|
||||
See how many times your resume has been viewed and downloaded.
|
||||
</Card>
|
||||
<Card title="Password protection" icon="lock">
|
||||
Optionally require a password so only people you trust can access your resume.
|
||||
</Card>
|
||||
<Card title="Easy to share" icon="share">
|
||||
A simple URL that works anywhere—email signatures, LinkedIn, portfolios, job applications.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
## How to enable public sharing
|
||||
@@ -29,13 +29,11 @@ Reactive Resume lets you share your resume via a **public URL** that anyone can
|
||||
Navigate to your resume in the resume builder.
|
||||
</Step>
|
||||
|
||||
<Step title="Go to the Sharing section">
|
||||
In the **right sidebar**, select **Sharing**.
|
||||
</Step>
|
||||
<Step title="Go to the Sharing section">In the **right sidebar**, select **Sharing**.</Step>
|
||||
|
||||
<Step title="Toggle 'Allow Public Access'">
|
||||
Turn on the **Allow Public Access** switch. Once enabled, your resume will be accessible via its public URL.
|
||||
</Step>
|
||||
<Step title="Toggle 'Allow Public Access'">
|
||||
Turn on the **Allow Public Access** switch. Once enabled, your resume will be accessible via its public URL.
|
||||
</Step>
|
||||
|
||||
<Step title="Copy your public URL">
|
||||
Your public URL is displayed below the toggle. It follows this format:
|
||||
@@ -45,11 +43,13 @@ Reactive Resume lets you share your resume via a **public URL** that anyone can
|
||||
```
|
||||
|
||||
Click the **copy** button to copy the URL to your clipboard.
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
<Tip>
|
||||
The `{slug}` is the unique, URL-safe name you assign to your resume when you create it. If you want to change your slug, go to the dashboard, right-click your resume card, and choose "Update" to edit its details.
|
||||
The `{slug}` is the unique, URL-safe name you assign to your resume when you create it. If you want to change your
|
||||
slug, go to the dashboard, right-click your resume card, and choose "Update" to edit its details.
|
||||
</Tip>
|
||||
|
||||
## How the public URL works
|
||||
@@ -62,7 +62,8 @@ When someone visits your public resume URL:
|
||||
4. **Views are tracked** - Each visit is counted in your resume statistics (see below)
|
||||
|
||||
<Info>
|
||||
Changes you make in the builder are reflected immediately on the public URL. There's no separate "publish" step—your public resume is always in sync.
|
||||
Changes you make in the builder are reflected immediately on the public URL. There's no separate "publish" step—your
|
||||
public resume is always in sync.
|
||||
</Info>
|
||||
|
||||
## Tracking views and downloads
|
||||
@@ -75,15 +76,16 @@ In the resume builder, open the **right sidebar** and select **Statistics**.
|
||||
|
||||
You'll see:
|
||||
|
||||
| Metric | Description |
|
||||
|--------|-------------|
|
||||
| **Views** | Number of times your public resume page was visited |
|
||||
| **Last viewed** | The date when your resume was last viewed |
|
||||
| **Downloads** | Number of times your resume was downloaded (via the public page) |
|
||||
| **Last downloaded** | The date when your resume was last downloaded |
|
||||
| Metric | Description |
|
||||
| ------------------- | ---------------------------------------------------------------- |
|
||||
| **Views** | Number of times your public resume page was visited |
|
||||
| **Last viewed** | The date when your resume was last viewed |
|
||||
| **Downloads** | Number of times your resume was downloaded (via the public page) |
|
||||
| **Last downloaded** | The date when your resume was last downloaded |
|
||||
|
||||
<Info>
|
||||
Statistics are only tracked when your resume is **public**. If you turn off public access, tracking pauses but your existing stats are preserved.
|
||||
Statistics are only tracked when your resume is **public**. If you turn off public access, tracking pauses but your
|
||||
existing stats are preserved.
|
||||
</Info>
|
||||
|
||||
### What counts as a view?
|
||||
@@ -95,7 +97,8 @@ A view is counted each time someone loads your public resume page. This includes
|
||||
- Search engine visits (if your resume is indexed)
|
||||
|
||||
<Note>
|
||||
Only **you** can see your resume's statistics. Visitors to your public URL cannot see how many views or downloads your resume has.
|
||||
Only **you** can see your resume's statistics. Visitors to your public URL cannot see how many views or downloads your
|
||||
resume has.
|
||||
</Note>
|
||||
|
||||
## Password protecting your resume
|
||||
@@ -115,13 +118,11 @@ When password protection is enabled:
|
||||
First, make sure **Allow Public Access** is turned on in the **Sharing** section.
|
||||
</Step>
|
||||
|
||||
<Step title="Click 'Set Password'">
|
||||
Below the public URL, click the **Set Password** button.
|
||||
</Step>
|
||||
<Step title="Click 'Set Password'">Below the public URL, click the **Set Password** button.</Step>
|
||||
|
||||
<Step title="Enter your password">
|
||||
Type a password (6-64 characters) and confirm. This password will be required to view your resume.
|
||||
</Step>
|
||||
<Step title="Enter your password">
|
||||
Type a password (6-64 characters) and confirm. This password will be required to view your resume.
|
||||
</Step>
|
||||
|
||||
<Step title="Share the password separately">
|
||||
Share the password with your intended audience through a secure channel (e.g., direct message, email).
|
||||
@@ -129,7 +130,7 @@ When password protection is enabled:
|
||||
</Steps>
|
||||
|
||||
<Warning>
|
||||
Choose a password you're comfortable sharing. Anyone with the password can view and download your resume.
|
||||
Choose a password you're comfortable sharing. Anyone with the password can view and download your resume.
|
||||
</Warning>
|
||||
|
||||
### How to remove password protection
|
||||
@@ -149,21 +150,21 @@ Your resume will become accessible to anyone with the public URL.
|
||||
Add your public resume URL to your LinkedIn profile's **Featured** section or **Contact Info**. Recruiters can view your detailed resume directly.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Email signature" icon="envelope">
|
||||
Include your resume link in your email signature. Anyone you correspond with can quickly access your resume.
|
||||
</Accordion>
|
||||
<Accordion title="Email signature" icon="envelope">
|
||||
Include your resume link in your email signature. Anyone you correspond with can quickly access your resume.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Portfolio website" icon="globe">
|
||||
Embed or link to your resume from your personal website. The link always shows your latest resume.
|
||||
</Accordion>
|
||||
<Accordion title="Portfolio website" icon="globe">
|
||||
Embed or link to your resume from your personal website. The link always shows your latest resume.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Job applications" icon="briefcase">
|
||||
Some applications ask for a link to your resume. Your public URL is a professional alternative to file uploads.
|
||||
</Accordion>
|
||||
<Accordion title="Job applications" icon="briefcase">
|
||||
Some applications ask for a link to your resume. Your public URL is a professional alternative to file uploads.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Networking events" icon="users">
|
||||
Share your resume URL via QR code or NFC. Update your resume before the event and everyone gets the latest version.
|
||||
</Accordion>
|
||||
<Accordion title="Networking events" icon="users">
|
||||
Share your resume URL via QR code or NFC. Update your resume before the event and everyone gets the latest version.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Confidential job search" icon="lock">
|
||||
Use password protection to share your resume only with specific recruiters while keeping it hidden from your current employer.
|
||||
@@ -185,7 +186,8 @@ When public access is disabled:
|
||||
- Password protection settings are preserved
|
||||
|
||||
<Tip>
|
||||
If you only want to temporarily hide your resume, consider using password protection instead of disabling public access entirely. This way, your URL remains active for people who have the password.
|
||||
If you only want to temporarily hide your resume, consider using password protection instead of disabling public
|
||||
access entirely. This way, your URL remains active for people who have the password.
|
||||
</Tip>
|
||||
|
||||
## Frequently asked questions
|
||||
@@ -195,17 +197,19 @@ When public access is disabled:
|
||||
Yes! The URL is based on your **username** and the resume's **slug**. You can change the slug in the **Update Resume** dialog. To open it, right-click on your resume card in the dashboard and select "Update". The username is set in your account settings.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Will search engines index my public resume?">
|
||||
Public resumes may be indexed by search engines. If you want to prevent indexing, use password protection or keep your resume private.
|
||||
</Accordion>
|
||||
<Accordion title="Will search engines index my public resume?">
|
||||
Public resumes may be indexed by search engines. If you want to prevent indexing, use password protection or keep your
|
||||
resume private.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Do views from my own visits count?">
|
||||
Views are only counted when someone visits your public resume URL while not logged in. Visits made while you're logged in to your account are not included in the view statistics.
|
||||
</Accordion>
|
||||
<Accordion title="Do views from my own visits count?">
|
||||
Views are only counted when someone visits your public resume URL while not logged in. Visits made while you're logged
|
||||
in to your account are not included in the view statistics.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Can I see who viewed my resume?">
|
||||
No, Reactive Resume only tracks view and download counts, not the identity of visitors. This protects visitor privacy.
|
||||
</Accordion>
|
||||
<Accordion title="Can I see who viewed my resume?">
|
||||
No, Reactive Resume only tracks view and download counts, not the identity of visitors. This protects visitor privacy.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="What happens if I change my username?">
|
||||
Your public URL will change to reflect the new username. Old URLs will stop working immediately. You might need to update any links you've shared.
|
||||
|
||||
@@ -10,11 +10,13 @@ description: "Learn how to update your profile information including your name,
|
||||
<Tip>
|
||||
If you haven't created an account yet, follow the guide on [Creating an Account](/guides/creating-an-account).
|
||||
</Tip>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Navigate to Profile settings">
|
||||
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section, click on the <Badge>Profile</Badge> link.
|
||||
</Step>
|
||||
<Step title="Navigate to Profile settings">
|
||||
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section,
|
||||
click on the <Badge>Profile</Badge> link.
|
||||
</Step>
|
||||
|
||||
<Step title="Update your information">
|
||||
On the Profile page, you can update the following information:
|
||||
@@ -26,6 +28,7 @@ description: "Learn how to update your profile information including your name,
|
||||
<Warning>
|
||||
If you update your email address, you will receive a verification link on your current email address. The change will only be accepted after you click on the verification link.
|
||||
</Warning>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Verify email changes (if applicable)">
|
||||
@@ -34,5 +37,6 @@ description: "Learn how to update your profile information including your name,
|
||||
<Tip>
|
||||
Make sure to check your spam folder if you don't see the verification email in your inbox. The verification link is required to complete the email address change.
|
||||
</Tip>
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
+15
-10
@@ -8,9 +8,10 @@ description: "Learn how to configure an AI provider and API key for AI-assisted
|
||||
Head over to [https://rxresu.me](https://rxresu.me) and sign in with your account credentials.
|
||||
</Step>
|
||||
|
||||
<Step title="Navigate to Artificial Intelligence settings">
|
||||
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section, click on <Badge>Artificial Intelligence</Badge>.
|
||||
</Step>
|
||||
<Step title="Navigate to Artificial Intelligence settings">
|
||||
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section,
|
||||
click on <Badge>Artificial Intelligence</Badge>.
|
||||
</Step>
|
||||
|
||||
<Step title="How your data is stored and sent">
|
||||
When you configure your AI provider settings on this page, all information (such as the API key and model) is stored locally in your browser and **not** in our database.
|
||||
@@ -20,6 +21,7 @@ description: "Learn how to configure an AI provider and API key for AI-assisted
|
||||
</Info>
|
||||
|
||||
However, whenever you use an AI-assisted feature (such as text generation), these credentials need to be sent to the server **temporarily and only for the duration of your request**. This is required to connect with the AI provider on your behalf. See below for a deeper explanation.
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Choose a provider">
|
||||
@@ -29,11 +31,13 @@ description: "Learn how to configure an AI provider and API key for AI-assisted
|
||||
- **Google Gemini**
|
||||
- **Anthropic Claude**
|
||||
- **Ollama** (coming soon)
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Enter a model name">
|
||||
In the <Badge>Model</Badge> field, enter the model you want to use (for example, <code>gpt-5.2</code>, <code>claude-4.5-opus</code>, or <code>gemini-3-flash</code>).
|
||||
</Step>
|
||||
<Step title="Enter a model name">
|
||||
In the <Badge>Model</Badge> field, enter the model you want to use (for example, <code>gpt-5.2</code>,{" "}
|
||||
<code>claude-4.5-opus</code>, or <code>gemini-3-flash</code>).
|
||||
</Step>
|
||||
|
||||
<Step title="Paste your API key">
|
||||
In the <Badge>API Key</Badge> field, paste your provider API key.
|
||||
@@ -41,6 +45,7 @@ description: "Learn how to configure an AI provider and API key for AI-assisted
|
||||
<Warning>
|
||||
Treat this key like a password. Anyone with it can use your provider account and may incur costs.
|
||||
</Warning>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Verify it's enabled">
|
||||
@@ -49,12 +54,13 @@ description: "Learn how to configure an AI provider and API key for AI-assisted
|
||||
<Tip>
|
||||
If the status shows <Badge>Disabled</Badge>, double-check that all three fields are filled in.
|
||||
</Tip>
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Why AI requests are sent through our server
|
||||
|
||||
Most AI providers (like OpenAI, Gemini, or Anthropic) block requests that come directly from the browser due to something called **CORS** ("Cross-Origin Resource Sharing"), a security mechanism built into web browsers.
|
||||
Most AI providers (like OpenAI, Gemini, or Anthropic) block requests that come directly from the browser due to something called **CORS** ("Cross-Origin Resource Sharing"), a security mechanism built into web browsers.
|
||||
|
||||
**What is CORS?**
|
||||
CORS is a browser feature that prevents web pages from making requests to a different domain than the one that served the web page, unless that domain explicitly allows it. Most AI providers do not allow browser-based requests from random websites, primarily for security and abuse prevention.
|
||||
@@ -62,11 +68,10 @@ CORS is a browser feature that prevents web pages from making requests to a diff
|
||||
Because of this restriction, the app has to **forward your AI requests (along with your credentials) through our server**, which then contacts the AI provider and returns the response to your browser. **Your credentials are not stored on our server; they are only used to make the request you initiated, and are not logged or retained.**
|
||||
|
||||
<Info>
|
||||
If you're curious or would like to audit how your AI requests are forwarded, you can review the code yourself.
|
||||
See the relevant implementation in <code>src/integrations/orpc/router/ai.ts</code> within the codebase.
|
||||
If you're curious or would like to audit how your AI requests are forwarded, you can review the code yourself. See the
|
||||
relevant implementation in <code>src/integrations/orpc/router/ai.ts</code> within the codebase.
|
||||
</Info>
|
||||
|
||||
|
||||
---
|
||||
|
||||
### Do you know a workaround?
|
||||
|
||||
@@ -9,10 +9,13 @@ The **Custom CSS** panel lets you write your own CSS rules to change how your re
|
||||
|
||||
- **Live updates**: your changes are applied immediately as you type.
|
||||
- **Auto-save**: there is no “Save” button—your CSS is saved automatically when it changes.
|
||||
- **Scoped styling (mostly)**: to avoid affecting the rest of the app, your CSS is *usually* scoped to the resume preview.
|
||||
- **Scoped styling (mostly)**: to avoid affecting the rest of the app, your CSS is _usually_ scoped to the resume preview.
|
||||
|
||||
<Frame caption="Screenshot of the Custom CSS section in the right sidebar">
|
||||
<img src="/images/guides/using-custom-css/screenshot-1.webp" alt="Screenshot of the Custom CSS section in the right sidebar" />
|
||||
<img
|
||||
src="/images/guides/using-custom-css/screenshot-1.webp"
|
||||
alt="Screenshot of the Custom CSS section in the right sidebar"
|
||||
/>
|
||||
</Frame>
|
||||
|
||||
## Where to find it
|
||||
@@ -45,14 +48,14 @@ Example:
|
||||
```css
|
||||
/* Normal rules: rely on auto-scoping */
|
||||
.page a {
|
||||
text-decoration: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* At-rules: manually scope selectors */
|
||||
@media print {
|
||||
.resume-preview-container .page a {
|
||||
text-decoration: none;
|
||||
}
|
||||
.resume-preview-container .page a {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@@ -61,7 +64,9 @@ Example:
|
||||
Keep each rule's selector on **one line**, for example:
|
||||
|
||||
```css
|
||||
.page-section-experience .section-item-title { font-weight: 700; }
|
||||
.page-section-experience .section-item-title {
|
||||
font-weight: 700;
|
||||
}
|
||||
```
|
||||
|
||||
Avoid splitting a selector across multiple lines unless you've confirmed it behaves as expected.
|
||||
@@ -94,7 +99,7 @@ To apply styles only on one template, prefix with the template wrapper:
|
||||
|
||||
```css
|
||||
.template-azurill .page-header {
|
||||
gap: 12pt;
|
||||
gap: 12pt;
|
||||
}
|
||||
```
|
||||
|
||||
@@ -104,7 +109,7 @@ Each page has a class like `.page-0`, `.page-1`, etc.
|
||||
|
||||
```css
|
||||
.page-0 .page-header {
|
||||
margin-bottom: 6pt;
|
||||
margin-bottom: 6pt;
|
||||
}
|
||||
```
|
||||
|
||||
@@ -114,8 +119,8 @@ Custom sections include a dynamic class: `.page-section-<sectionId>`.
|
||||
|
||||
```css
|
||||
.page-section-custom {
|
||||
border-top: 1pt solid color-mix(in srgb, var(--page-text-color) 15%, transparent);
|
||||
padding-top: 6pt;
|
||||
border-top: 1pt solid color-mix(in srgb, var(--page-text-color) 15%, transparent);
|
||||
padding-top: 6pt;
|
||||
}
|
||||
```
|
||||
|
||||
@@ -137,9 +142,9 @@ Example (tighten spacing without changing your layout settings):
|
||||
|
||||
```css
|
||||
.page {
|
||||
--page-margin-x: 10pt;
|
||||
--page-margin-y: 10pt;
|
||||
--page-gap-y: 6pt;
|
||||
--page-margin-x: 10pt;
|
||||
--page-margin-y: 10pt;
|
||||
--page-gap-y: 6pt;
|
||||
}
|
||||
```
|
||||
|
||||
@@ -149,10 +154,10 @@ Example (tighten spacing without changing your layout settings):
|
||||
|
||||
```css
|
||||
.page-section > h6 {
|
||||
margin-bottom: 2pt;
|
||||
font-weight: 800;
|
||||
letter-spacing: 0.02em;
|
||||
text-transform: uppercase;
|
||||
margin-bottom: 2pt;
|
||||
font-weight: 800;
|
||||
letter-spacing: 0.02em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
```
|
||||
|
||||
@@ -160,12 +165,12 @@ Example (tighten spacing without changing your layout settings):
|
||||
|
||||
```css
|
||||
.page-section {
|
||||
padding-bottom: 8pt;
|
||||
border-bottom: 1pt solid color-mix(in srgb, var(--page-text-color) 12%, transparent);
|
||||
padding-bottom: 8pt;
|
||||
border-bottom: 1pt solid color-mix(in srgb, var(--page-text-color) 12%, transparent);
|
||||
}
|
||||
|
||||
.page-section:last-child {
|
||||
border-bottom: none;
|
||||
border-bottom: none;
|
||||
}
|
||||
```
|
||||
|
||||
@@ -173,8 +178,8 @@ Example (tighten spacing without changing your layout settings):
|
||||
|
||||
```css
|
||||
.section-item-metadata {
|
||||
font-size: calc(var(--page-body-font-size) * 0.9pt);
|
||||
opacity: 0.75;
|
||||
font-size: calc(var(--page-body-font-size) * 0.9pt);
|
||||
opacity: 0.75;
|
||||
}
|
||||
```
|
||||
|
||||
@@ -182,16 +187,16 @@ Example (tighten spacing without changing your layout settings):
|
||||
|
||||
```css
|
||||
.section-item-description {
|
||||
opacity: 0.95;
|
||||
opacity: 0.95;
|
||||
}
|
||||
|
||||
.section-item-description ul {
|
||||
margin-left: 12pt;
|
||||
padding-left: 0;
|
||||
margin-left: 12pt;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.section-item-description li {
|
||||
margin: 2pt 0;
|
||||
margin: 2pt 0;
|
||||
}
|
||||
```
|
||||
|
||||
@@ -199,11 +204,11 @@ Example (tighten spacing without changing your layout settings):
|
||||
|
||||
```css
|
||||
.section-item-website a {
|
||||
display: inline-block;
|
||||
padding: 3pt 9pt;
|
||||
border-radius: 999pt;
|
||||
border: 2pt solid color-mix(in srgb, var(--page-primary-color) 45%, transparent);
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
padding: 3pt 9pt;
|
||||
border-radius: 999pt;
|
||||
border: 2pt solid color-mix(in srgb, var(--page-primary-color) 45%, transparent);
|
||||
text-decoration: none;
|
||||
}
|
||||
```
|
||||
|
||||
@@ -211,7 +216,7 @@ Example (tighten spacing without changing your layout settings):
|
||||
|
||||
```css
|
||||
.page-picture {
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
```
|
||||
|
||||
@@ -219,12 +224,12 @@ Example (tighten spacing without changing your layout settings):
|
||||
|
||||
```css
|
||||
.page-header {
|
||||
gap: 6pt;
|
||||
padding-bottom: 6pt;
|
||||
gap: 6pt;
|
||||
padding-bottom: 6pt;
|
||||
}
|
||||
|
||||
.basics-headline {
|
||||
opacity: 0.8;
|
||||
opacity: 0.8;
|
||||
}
|
||||
```
|
||||
|
||||
@@ -232,16 +237,16 @@ Example (tighten spacing without changing your layout settings):
|
||||
|
||||
```css
|
||||
.skills-item-name {
|
||||
font-weight: 700;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.skills-item-proficiency {
|
||||
margin-top: 1pt;
|
||||
margin-top: 1pt;
|
||||
}
|
||||
|
||||
.skills-item-keywords {
|
||||
display: block;
|
||||
opacity: 0.85;
|
||||
display: block;
|
||||
opacity: 0.85;
|
||||
}
|
||||
```
|
||||
|
||||
@@ -249,9 +254,9 @@ Example (tighten spacing without changing your layout settings):
|
||||
|
||||
```css
|
||||
.page-section-profiles {
|
||||
background: color-mix(in srgb, var(--page-primary-color) 10%, transparent);
|
||||
border-radius: 8pt;
|
||||
padding: 8pt 12pt;
|
||||
background: color-mix(in srgb, var(--page-primary-color) 10%, transparent);
|
||||
border-radius: 8pt;
|
||||
padding: 8pt 12pt;
|
||||
}
|
||||
```
|
||||
|
||||
@@ -266,4 +271,3 @@ Example (tighten spacing without changing your layout settings):
|
||||
### My `@media` rules affect the whole app / don't apply
|
||||
|
||||
At-rules aren't auto-scoped. Prefix selectors inside them with `.resume-preview-container` as shown above.
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ The **Private Notes** section is a dedicated space for storing personal informat
|
||||
Think of it as a built-in notebook attached to each resume where you can jot down anything relevant to your job search.
|
||||
|
||||
<Info>
|
||||
Private Notes are stored securely with your resume data and are only visible to you when editing your resume.
|
||||
Private Notes are stored securely with your resume data and are only visible to you when editing your resume.
|
||||
</Info>
|
||||
|
||||
## Where to find it
|
||||
@@ -18,7 +18,10 @@ Think of it as a built-in notebook attached to each resume where you can jot dow
|
||||
In the resume builder, open the **right sidebar** and select **Notes** from the available sections.
|
||||
|
||||
<Frame caption="Screenshot of the Notes section in the right sidebar">
|
||||
<img src="/images/guides/using-private-notes/screenshot-1.webp" alt="Screenshot of the Notes section in the right sidebar" />
|
||||
<img
|
||||
src="/images/guides/using-private-notes/screenshot-1.webp"
|
||||
alt="Screenshot of the Notes section in the right sidebar"
|
||||
/>
|
||||
</Frame>
|
||||
|
||||
## Use cases
|
||||
@@ -39,7 +42,8 @@ Keep a record of where you've sent this particular resume:
|
||||
Paste links to the original job postings so you can quickly reference them when preparing for interviews or following up.
|
||||
|
||||
<Tip>
|
||||
Job postings often get taken down after a position is filled. Consider copying key requirements or responsibilities into your notes as a backup.
|
||||
Job postings often get taken down after a position is filled. Consider copying key requirements or responsibilities
|
||||
into your notes as a backup.
|
||||
</Tip>
|
||||
|
||||
### Interview preparation
|
||||
@@ -74,9 +78,9 @@ Track your follow-up schedule:
|
||||
In the resume builder, click on **Notes** in the right sidebar to expand the section.
|
||||
</Step>
|
||||
|
||||
<Step title="Write your notes">
|
||||
Use the rich text editor to add your notes. You can format text with bold, italics, bullet points, and more.
|
||||
</Step>
|
||||
<Step title="Write your notes">
|
||||
Use the rich text editor to add your notes. You can format text with bold, italics, bullet points, and more.
|
||||
</Step>
|
||||
|
||||
<Step title="Notes save automatically">
|
||||
Your notes are saved automatically as you type—there's no need to click a save button.
|
||||
@@ -86,10 +90,8 @@ Track your follow-up schedule:
|
||||
## Privacy guarantee
|
||||
|
||||
<Warning>
|
||||
Private Notes are for your eyes only. They will **never** appear on:
|
||||
- Your exported PDF or other file formats
|
||||
- Your publicly shared resume link
|
||||
- Any printed version of your resume
|
||||
Private Notes are for your eyes only. They will **never** appear on: - Your exported PDF or other file formats - Your
|
||||
publicly shared resume link - Any printed version of your resume
|
||||
</Warning>
|
||||
|
||||
This makes it safe to store sensitive information like salary expectations, candid thoughts about opportunities, or personal reminders that you wouldn't want an employer to see.
|
||||
|
||||
@@ -8,9 +8,10 @@ description: "Learn how to create API keys and authenticate requests to the Reac
|
||||
Head over to [https://rxresu.me](https://rxresu.me) and sign in with your account credentials.
|
||||
</Step>
|
||||
|
||||
<Step title="Navigate to API Keys settings">
|
||||
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section, click on the <Badge>API Keys</Badge> link.
|
||||
</Step>
|
||||
<Step title="Navigate to API Keys settings">
|
||||
Once you're in the dashboard, look for the sidebar navigation on the left. Under the <Badge>Settings</Badge> section,
|
||||
click on the <Badge>API Keys</Badge> link.
|
||||
</Step>
|
||||
|
||||
<Step title="Open the API reference">
|
||||
On the API Keys page, click <Badge>API Documentation</Badge> to view the API reference.
|
||||
@@ -18,6 +19,7 @@ description: "Learn how to create API keys and authenticate requests to the Reac
|
||||
<Tip>
|
||||
You can also open it directly here: [API Reference](https://docs.rxresu.me/api-reference).
|
||||
</Tip>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Create a new API key">
|
||||
@@ -25,6 +27,7 @@ description: "Learn how to create API keys and authenticate requests to the Reac
|
||||
|
||||
- **Name**: A label to help you identify what you use this key for
|
||||
- **Expires in**: How long the key should remain valid
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Copy the API key (important)">
|
||||
@@ -33,6 +36,7 @@ description: "Learn how to create API keys and authenticate requests to the Reac
|
||||
<Warning>
|
||||
For security reasons, your API key is only displayed once. If you lose it, you must create a new one.
|
||||
</Warning>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Authenticate requests with x-api-key">
|
||||
@@ -46,6 +50,7 @@ description: "Learn how to create API keys and authenticate requests to the Reac
|
||||
curl "https://rxresu.me/api/openapi/resumes" \
|
||||
-H "x-api-key: YOUR_API_KEY"
|
||||
```
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Delete an API key (optional)">
|
||||
@@ -54,6 +59,6 @@ description: "Learn how to create API keys and authenticate requests to the Reac
|
||||
<Warning>
|
||||
Deleted API keys stop working immediately, and the action cannot be undone.
|
||||
</Warning>
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ The [Model Context Protocol (MCP)](https://modelcontextprotocol.io) is a standar
|
||||
Head over to [https://rxresu.me](https://rxresu.me) (or your self-hosted instance), sign in, and navigate to **Settings → API Keys**. Click **Create a new API key**, give it a name, and copy the secret — it's only shown once.
|
||||
|
||||
For the full walkthrough, see [Using the API](/guides/using-the-api).
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
@@ -29,14 +30,14 @@ If your client supports the `url` field (e.g. **Cursor**), use this — no extra
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"reactive-resume": {
|
||||
"url": "https://rxresu.me/mcp",
|
||||
"headers": {
|
||||
"x-api-key": "your-api-key"
|
||||
}
|
||||
}
|
||||
}
|
||||
"mcpServers": {
|
||||
"reactive-resume": {
|
||||
"url": "https://rxresu.me/mcp",
|
||||
"headers": {
|
||||
"x-api-key": "your-api-key"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@@ -46,31 +47,24 @@ If your client only supports `command` / `args` (e.g. **Claude Desktop**), use [
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"reactive-resume": {
|
||||
"command": "npx",
|
||||
"args": [
|
||||
"mcp-remote",
|
||||
"https://rxresu.me/mcp",
|
||||
"--header",
|
||||
"x-api-key:your-api-key"
|
||||
]
|
||||
}
|
||||
}
|
||||
"mcpServers": {
|
||||
"reactive-resume": {
|
||||
"command": "npx",
|
||||
"args": ["mcp-remote", "https://rxresu.me/mcp", "--header", "x-api-key:your-api-key"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<Info>
|
||||
Replace `your-api-key` with the API key you created in the prerequisites step.
|
||||
</Info>
|
||||
<Info>Replace `your-api-key` with the API key you created in the prerequisites step.</Info>
|
||||
|
||||
### Where to put the config
|
||||
|
||||
| Client | Config file |
|
||||
| --- | --- |
|
||||
| Cursor | `.cursor/mcp.json` in your project or home directory |
|
||||
| Claude Desktop | `claude_desktop_config.json` ([docs](https://modelcontextprotocol.io/docs/tools/claude-desktop)) |
|
||||
| Other MCP clients | Refer to the client's documentation |
|
||||
| Client | Config file |
|
||||
| ----------------- | ------------------------------------------------------------------------------------------------ |
|
||||
| Cursor | `.cursor/mcp.json` in your project or home directory |
|
||||
| Claude Desktop | `claude_desktop_config.json` ([docs](https://modelcontextprotocol.io/docs/tools/claude-desktop)) |
|
||||
| Other MCP clients | Refer to the client's documentation |
|
||||
|
||||
## Self-Hosting
|
||||
|
||||
@@ -78,10 +72,10 @@ If you're running a self-hosted Reactive Resume instance, replace `https://rxres
|
||||
|
||||
```json
|
||||
{
|
||||
"url": "https://resume.example.com/mcp",
|
||||
"headers": {
|
||||
"x-api-key": "your-api-key"
|
||||
}
|
||||
"url": "https://resume.example.com/mcp",
|
||||
"headers": {
|
||||
"x-api-key": "your-api-key"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@@ -89,37 +83,37 @@ If you're running a self-hosted Reactive Resume instance, replace `https://rxres
|
||||
|
||||
The MCP server exposes the following tools:
|
||||
|
||||
| Tool | Description |
|
||||
| --- | --- |
|
||||
| `list_resumes` | List all resumes with IDs, names, tags, and status. Supports filtering by tags and sorting by last updated, creation date, or name |
|
||||
| `get_resume` | Get the full data of a specific resume by ID |
|
||||
| `create_resume` | Create a new, empty resume with a name and slug. Optionally pre-fill with sample data |
|
||||
| `duplicate_resume` | Create a copy of an existing resume with a new name and slug |
|
||||
| `patch_resume` | Apply JSON Patch (RFC 6902) operations to modify a resume's data |
|
||||
| `delete_resume` | Permanently delete a resume and all associated files. **Irreversible** |
|
||||
| `lock_resume` | Lock a resume to prevent edits, patches, and deletion |
|
||||
| `unlock_resume` | Unlock a previously locked resume to re-enable editing |
|
||||
| `export_resume_pdf` | Generate a PDF from the resume and return a download URL |
|
||||
| `get_resume_screenshot` | Get a visual preview of the resume's first page as a WebP image URL |
|
||||
| `get_resume_statistics` | Get view and download statistics for a resume |
|
||||
| Tool | Description |
|
||||
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `list_resumes` | List all resumes with IDs, names, tags, and status. Supports filtering by tags and sorting by last updated, creation date, or name |
|
||||
| `get_resume` | Get the full data of a specific resume by ID |
|
||||
| `create_resume` | Create a new, empty resume with a name and slug. Optionally pre-fill with sample data |
|
||||
| `duplicate_resume` | Create a copy of an existing resume with a new name and slug |
|
||||
| `patch_resume` | Apply JSON Patch (RFC 6902) operations to modify a resume's data |
|
||||
| `delete_resume` | Permanently delete a resume and all associated files. **Irreversible** |
|
||||
| `lock_resume` | Lock a resume to prevent edits, patches, and deletion |
|
||||
| `unlock_resume` | Unlock a previously locked resume to re-enable editing |
|
||||
| `export_resume_pdf` | Generate a PDF from the resume and return a download URL |
|
||||
| `get_resume_screenshot` | Get a visual preview of the resume's first page as a WebP image URL |
|
||||
| `get_resume_statistics` | Get view and download statistics for a resume |
|
||||
|
||||
## Available Resources
|
||||
|
||||
| Resource | Description |
|
||||
| --- | --- |
|
||||
| `resume://{id}` | The full resume data as a readable JSON resource. Lists all resumes and supports reading individual ones by ID |
|
||||
| Resource | Description |
|
||||
| ----------------- | --------------------------------------------------------------------------------------------------------------- |
|
||||
| `resume://{id}` | The full resume data as a readable JSON resource. Lists all resumes and supports reading individual ones by ID |
|
||||
| `resume://schema` | The ResumeData JSON Schema — reference this to understand valid paths and value types for JSON Patch operations |
|
||||
|
||||
## Available Prompts
|
||||
|
||||
Prompts are pre-built workflows that provide the AI with structured instructions and context. Each prompt embeds the resume data and schema automatically.
|
||||
|
||||
| Prompt | Description |
|
||||
| --- | --- |
|
||||
| `build_resume` | Guide you step-by-step through building a resume from scratch — basics, summary, experience, education, skills, and design |
|
||||
| `improve_resume` | Review your resume and suggest concrete improvements to wording, impact, metrics, and structure |
|
||||
| `tailor_resume` | Adapt your resume to match a specific job description with keyword optimization and ATS targeting. Requires the job description as input |
|
||||
| `review_resume` | Get a structured, professional critique with a scorecard (1–10 across seven dimensions) and prioritized recommendations. **Read-only** — no changes are made |
|
||||
| Prompt | Description |
|
||||
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `build_resume` | Guide you step-by-step through building a resume from scratch — basics, summary, experience, education, skills, and design |
|
||||
| `improve_resume` | Review your resume and suggest concrete improvements to wording, impact, metrics, and structure |
|
||||
| `tailor_resume` | Adapt your resume to match a specific job description with keyword optimization and ATS targeting. Requires the job description as input |
|
||||
| `review_resume` | Get a structured, professional critique with a scorecard (1–10 across seven dimensions) and prioritized recommendations. **Read-only** — no changes are made |
|
||||
|
||||
## Usage Examples
|
||||
|
||||
@@ -166,15 +160,16 @@ Once your MCP client is connected, you can use natural language to interact with
|
||||
- "Tailor my resume for this job description: ..." (uses `tailor_resume`)
|
||||
|
||||
<Tip>
|
||||
The AI will use `get_resume` to inspect your current resume before making changes with `patch_resume`. This ensures the correct JSON paths are used.
|
||||
The AI will use `get_resume` to inspect your current resume before making changes with `patch_resume`. This ensures
|
||||
the correct JSON paths are used.
|
||||
</Tip>
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
| Issue | Solution |
|
||||
| --- | --- |
|
||||
| "API error (401)" | Your API key is invalid or expired. Create a new one in **Settings → API Keys** |
|
||||
| "API error (404)" | The resume ID doesn't exist. Use `list_resumes` to find valid IDs |
|
||||
| "API error (403)" | The resume is locked. Unlock it in the Reactive Resume dashboard |
|
||||
| Connection refused | Check that the URL is correct and the instance is running |
|
||||
| Issue | Solution |
|
||||
| ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| "API error (401)" | Your API key is invalid or expired. Create a new one in **Settings → API Keys** |
|
||||
| "API error (404)" | The resume ID doesn't exist. Use `list_resumes` to find valid IDs |
|
||||
| "API error (403)" | The resume is locked. Unlock it in the Reactive Resume dashboard |
|
||||
| Connection refused | Check that the URL is correct and the instance is running |
|
||||
| "ReferenceError: File is not defined" when using `mcp-remote` | You're running Node.js 18. `mcp-remote` requires **Node.js 20 or later** — upgrade with `nvm use 20` or `nvm alias default 20` |
|
||||
|
||||
@@ -9,15 +9,16 @@ This is based on the [JSON Patch (RFC 6902)](https://datatracker.ietf.org/doc/ht
|
||||
|
||||
## When to Use PATCH vs PUT
|
||||
|
||||
| Use case | Method |
|
||||
| --- | --- |
|
||||
| Use case | Method |
|
||||
| -------------------------------------------- | --------- |
|
||||
| Update a single field (e.g., name, headline) | **PATCH** |
|
||||
| Add or remove an item in a section | **PATCH** |
|
||||
| Change template, colors, or fonts | **PATCH** |
|
||||
| Replace the entire resume data at once | **PUT** |
|
||||
| Add or remove an item in a section | **PATCH** |
|
||||
| Change template, colors, or fonts | **PATCH** |
|
||||
| Replace the entire resume data at once | **PUT** |
|
||||
|
||||
<Info>
|
||||
The PATCH endpoint only modifies the resume `data` (the JSONB column). To update top-level resume properties like `name`, `slug`, `tags`, or `isPublic`, use the existing `PUT /resume/{id}` endpoint.
|
||||
The PATCH endpoint only modifies the resume `data` (the JSONB column). To update top-level resume properties like
|
||||
`name`, `slug`, `tags`, or `isPublic`, use the existing `PUT /resume/{id}` endpoint.
|
||||
</Info>
|
||||
|
||||
## Authentication
|
||||
@@ -25,7 +26,7 @@ This is based on the [JSON Patch (RFC 6902)](https://datatracker.ietf.org/doc/ht
|
||||
All requests require your API key in the `x-api-key` header. See [Using the API](/guides/using-the-api) for how to create one.
|
||||
|
||||
<Info>
|
||||
If you're self-hosting, replace `https://rxresu.me` with your instance URL. The API is served under `/api/openapi`.
|
||||
If you're self-hosting, replace `https://rxresu.me` with your instance URL. The API is served under `/api/openapi`.
|
||||
</Info>
|
||||
|
||||
## Endpoint
|
||||
@@ -40,20 +41,18 @@ The resume ID is taken from the URL path, so the request body only requires the
|
||||
|
||||
```json
|
||||
{
|
||||
"operations": [
|
||||
{ "op": "replace", "path": "/basics/name", "value": "Jane Doe" }
|
||||
]
|
||||
"operations": [{ "op": "replace", "path": "/basics/name", "value": "Jane Doe" }]
|
||||
}
|
||||
```
|
||||
|
||||
Each operation is an object with the following properties:
|
||||
|
||||
| Property | Required | Description |
|
||||
| --- | --- | --- |
|
||||
| `op` | Yes | The operation to perform: `add`, `remove`, `replace`, `move`, `copy`, or `test` |
|
||||
| `path` | Yes | A JSON Pointer (RFC 6901) to the target location in the resume data |
|
||||
| `value` | For `add`, `replace`, `test` | The value to use for the operation |
|
||||
| `from` | For `move`, `copy` | A JSON Pointer to the source location |
|
||||
| Property | Required | Description |
|
||||
| -------- | ---------------------------- | ------------------------------------------------------------------------------- |
|
||||
| `op` | Yes | The operation to perform: `add`, `remove`, `replace`, `move`, `copy`, or `test` |
|
||||
| `path` | Yes | A JSON Pointer (RFC 6901) to the target location in the resume data |
|
||||
| `value` | For `add`, `replace`, `test` | The value to use for the operation |
|
||||
| `from` | For `move`, `copy` | A JSON Pointer to the source location |
|
||||
|
||||
## Examples
|
||||
|
||||
@@ -102,8 +101,8 @@ curl -X PATCH "https://rxresu.me/api/openapi/resume/YOUR_RESUME_ID" \
|
||||
```
|
||||
|
||||
<Tip>
|
||||
The path `/sections/experience/items/-` uses the special `-` index, which means "append to the end of the array".
|
||||
To insert at a specific position, use a numeric index like `/sections/experience/items/0` for the beginning.
|
||||
The path `/sections/experience/items/-` uses the special `-` index, which means "append to the end of the array". To
|
||||
insert at a specific position, use a numeric index like `/sections/experience/items/0` for the beginning.
|
||||
</Tip>
|
||||
|
||||
### Remove an Item from a Section
|
||||
@@ -172,15 +171,16 @@ curl -X PATCH "https://rxresu.me/api/openapi/resume/YOUR_RESUME_ID" \
|
||||
|
||||
## Error Handling
|
||||
|
||||
| Status | Error Code | Description |
|
||||
| --- | --- | --- |
|
||||
| `400` | `INVALID_PATCH_OPERATIONS` | The operations are structurally invalid, target a non-existent path, or produce resume data that fails schema validation. |
|
||||
| `401` | `UNAUTHORIZED` | Missing or invalid API key. |
|
||||
| `404` | `NOT_FOUND` | The resume does not exist or does not belong to the authenticated user. |
|
||||
| `403` | `RESUME_LOCKED` | The resume is locked and cannot be modified. Unlock it first. |
|
||||
| Status | Error Code | Description |
|
||||
| ------ | -------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `400` | `INVALID_PATCH_OPERATIONS` | The operations are structurally invalid, target a non-existent path, or produce resume data that fails schema validation. |
|
||||
| `401` | `UNAUTHORIZED` | Missing or invalid API key. |
|
||||
| `404` | `NOT_FOUND` | The resume does not exist or does not belong to the authenticated user. |
|
||||
| `403` | `RESUME_LOCKED` | The resume is locked and cannot be modified. Unlock it first. |
|
||||
|
||||
<Warning>
|
||||
All operations in a single request are applied atomically. If any operation fails (including a `test`), none of the operations are applied.
|
||||
All operations in a single request are applied atomically. If any operation fails (including a `test`), none of the
|
||||
operations are applied.
|
||||
</Warning>
|
||||
|
||||
## Tips
|
||||
|
||||
Reference in New Issue
Block a user