mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-07-25 01:15:26 +10:00
358 lines
6.9 KiB
Markdown
358 lines
6.9 KiB
Markdown
# Reactive Resume Schema Reference
|
|
|
|
The complete JSON Schema is available at: https://rxresu.me/schema.json
|
|
|
|
This reference provides key structural information for generating valid resume data.
|
|
|
|
## Top-Level Structure
|
|
|
|
```json
|
|
{
|
|
"picture": { ... },
|
|
"basics": { ... },
|
|
"summary": { ... },
|
|
"sections": { ... },
|
|
"customSections": [ ... ],
|
|
"metadata": { ... }
|
|
}
|
|
```
|
|
|
|
## Picture Configuration
|
|
|
|
```json
|
|
{
|
|
"hidden": false,
|
|
"url": "https://example.com/photo.jpg",
|
|
"size": 80,
|
|
"rotation": 0,
|
|
"aspectRatio": 1,
|
|
"borderRadius": 0,
|
|
"borderColor": "rgba(0, 0, 0, 0.5)",
|
|
"borderWidth": 0,
|
|
"shadowColor": "rgba(0, 0, 0, 0.5)",
|
|
"shadowWidth": 0
|
|
}
|
|
```
|
|
|
|
## Basics
|
|
|
|
```json
|
|
{
|
|
"name": "John Doe",
|
|
"headline": "Senior Software Engineer",
|
|
"email": "john@example.com",
|
|
"phone": "+1 (555) 123-4567",
|
|
"location": "San Francisco, CA",
|
|
"website": { "url": "https://johndoe.com", "label": "Portfolio" },
|
|
"customFields": []
|
|
}
|
|
```
|
|
|
|
## Summary
|
|
|
|
```json
|
|
{
|
|
"title": "Summary",
|
|
"columns": 1,
|
|
"hidden": false,
|
|
"content": "<p>HTML-formatted summary content here.</p>"
|
|
}
|
|
```
|
|
|
|
## Sections
|
|
|
|
All sections share a common structure:
|
|
|
|
```json
|
|
{
|
|
"title": "Section Title",
|
|
"columns": 1,
|
|
"hidden": false,
|
|
"items": [ ... ]
|
|
}
|
|
```
|
|
|
|
### Experience Items
|
|
|
|
```json
|
|
{
|
|
"id": "uuid-here",
|
|
"hidden": false,
|
|
"company": "Acme Corp",
|
|
"position": "Software Engineer",
|
|
"location": "San Francisco, CA",
|
|
"period": "Jan 2020 - Present",
|
|
"website": { "url": "https://acme.com", "label": "" },
|
|
"description": "<ul><li>Built scalable microservices</li><li>Led team of 5 engineers</li></ul>"
|
|
}
|
|
```
|
|
|
|
### Education Items
|
|
|
|
```json
|
|
{
|
|
"id": "uuid-here",
|
|
"hidden": false,
|
|
"school": "Stanford University",
|
|
"degree": "Bachelor of Science",
|
|
"area": "Computer Science",
|
|
"grade": "3.8 GPA",
|
|
"location": "Stanford, CA",
|
|
"period": "2012 - 2016",
|
|
"website": { "url": "", "label": "" },
|
|
"description": ""
|
|
}
|
|
```
|
|
|
|
### Skills Items
|
|
|
|
```json
|
|
{
|
|
"id": "uuid-here",
|
|
"hidden": false,
|
|
"icon": "",
|
|
"name": "JavaScript",
|
|
"proficiency": "Expert",
|
|
"level": 5,
|
|
"keywords": ["React", "Node.js", "TypeScript"]
|
|
}
|
|
```
|
|
|
|
Level: 0-5 (0 hides the visual indicator)
|
|
|
|
### Project Items
|
|
|
|
```json
|
|
{
|
|
"id": "uuid-here",
|
|
"hidden": false,
|
|
"name": "Open Source Project",
|
|
"period": "2023 - Present",
|
|
"website": { "url": "https://github.com/user/project", "label": "GitHub" },
|
|
"description": "<p>Description of the project and your contributions.</p>"
|
|
}
|
|
```
|
|
|
|
### Language Items
|
|
|
|
```json
|
|
{
|
|
"id": "uuid-here",
|
|
"hidden": false,
|
|
"language": "English",
|
|
"fluency": "Native",
|
|
"level": 5
|
|
}
|
|
```
|
|
|
|
Fluency examples: Native, Fluent, Conversational, Basic, or CEFR levels (A1-C2)
|
|
|
|
### Certification Items
|
|
|
|
```json
|
|
{
|
|
"id": "uuid-here",
|
|
"hidden": false,
|
|
"title": "AWS Solutions Architect",
|
|
"issuer": "Amazon Web Services",
|
|
"date": "March 2023",
|
|
"website": { "url": "https://aws.amazon.com/certification/", "label": "Verify" },
|
|
"description": ""
|
|
}
|
|
```
|
|
|
|
### Award Items
|
|
|
|
```json
|
|
{
|
|
"id": "uuid-here",
|
|
"hidden": false,
|
|
"title": "Employee of the Year",
|
|
"awarder": "Acme Corp",
|
|
"date": "2022",
|
|
"website": { "url": "", "label": "" },
|
|
"description": ""
|
|
}
|
|
```
|
|
|
|
### Publication Items
|
|
|
|
```json
|
|
{
|
|
"id": "uuid-here",
|
|
"hidden": false,
|
|
"title": "Research Paper Title",
|
|
"publisher": "IEEE",
|
|
"date": "2021",
|
|
"website": { "url": "https://doi.org/...", "label": "DOI" },
|
|
"description": ""
|
|
}
|
|
```
|
|
|
|
### Volunteer Items
|
|
|
|
```json
|
|
{
|
|
"id": "uuid-here",
|
|
"hidden": false,
|
|
"organization": "Local Food Bank",
|
|
"location": "San Francisco, CA",
|
|
"period": "2020 - Present",
|
|
"website": { "url": "", "label": "" },
|
|
"description": "<p>Volunteer activities and impact.</p>"
|
|
}
|
|
```
|
|
|
|
### Interest Items
|
|
|
|
```json
|
|
{
|
|
"id": "uuid-here",
|
|
"hidden": false,
|
|
"icon": "",
|
|
"name": "Photography",
|
|
"keywords": ["Landscape", "Portrait", "Street"]
|
|
}
|
|
```
|
|
|
|
### Reference Items
|
|
|
|
```json
|
|
{
|
|
"id": "uuid-here",
|
|
"hidden": false,
|
|
"name": "Jane Smith",
|
|
"position": "Engineering Manager at Acme Corp",
|
|
"website": { "url": "https://linkedin.com/in/janesmith", "label": "LinkedIn" },
|
|
"phone": "+1 (555) 987-6543",
|
|
"description": "<p>Optional testimonial or quote.</p>"
|
|
}
|
|
```
|
|
|
|
### Profile Items (Social Links)
|
|
|
|
```json
|
|
{
|
|
"id": "uuid-here",
|
|
"hidden": false,
|
|
"icon": "linkedin-logo",
|
|
"network": "LinkedIn",
|
|
"username": "johndoe",
|
|
"website": { "url": "https://linkedin.com/in/johndoe", "label": "" }
|
|
}
|
|
```
|
|
|
|
Icons use @phosphor-icons/web names. Common icons: `linkedin-logo`, `github-logo`, `twitter-logo`, `globe`
|
|
|
|
## Metadata
|
|
|
|
### Template Options
|
|
|
|
Available templates: `azurill`, `bronzor`, `chikorita`, `ditto`, `ditgar`, `gengar`, `glalie`, `kakuna`, `lapras`, `leafish`, `meowth`, `onyx`, `pikachu`, `rhyhorn`, `scizor`
|
|
|
|
### Layout Configuration
|
|
|
|
```json
|
|
{
|
|
"sidebarWidth": 35,
|
|
"pages": [
|
|
{
|
|
"fullWidth": false,
|
|
"main": ["profiles", "summary", "experience", "education", "projects"],
|
|
"sidebar": ["skills", "languages", "certifications", "interests"]
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
Section IDs for layout: `profiles`, `experience`, `education`, `projects`, `skills`, `languages`, `interests`, `awards`, `certifications`, `publications`, `volunteer`, `references`, `summary`
|
|
|
|
### Page Settings
|
|
|
|
```json
|
|
{
|
|
"gapX": 4,
|
|
"gapY": 6,
|
|
"marginX": 14,
|
|
"marginY": 12,
|
|
"format": "a4",
|
|
"locale": "en-US",
|
|
"hideIcons": false
|
|
}
|
|
```
|
|
|
|
Format options: `a4`, `letter`
|
|
|
|
### Design Settings
|
|
|
|
```json
|
|
{
|
|
"colors": {
|
|
"primary": "rgba(220, 38, 38, 1)",
|
|
"text": "rgba(0, 0, 0, 1)",
|
|
"background": "rgba(255, 255, 255, 1)"
|
|
},
|
|
"level": {
|
|
"icon": "star",
|
|
"type": "circle"
|
|
}
|
|
}
|
|
```
|
|
|
|
Level types: `hidden`, `circle`, `square`, `rectangle`, `rectangle-full`, `progress-bar`, `icon`
|
|
|
|
### Typography
|
|
|
|
```json
|
|
{
|
|
"body": {
|
|
"fontFamily": "IBM Plex Serif",
|
|
"fontWeights": ["400", "500"],
|
|
"fontSize": 10,
|
|
"lineHeight": 1.5
|
|
},
|
|
"heading": {
|
|
"fontFamily": "IBM Plex Serif",
|
|
"fontWeights": ["600"],
|
|
"fontSize": 14,
|
|
"lineHeight": 1.5
|
|
}
|
|
}
|
|
```
|
|
|
|
Font family must be available on Google Fonts. Font weights: 100-900.
|
|
|
|
## Custom Sections
|
|
|
|
Custom sections extend the base section structure with additional fields:
|
|
|
|
```json
|
|
{
|
|
"id": "uuid-here",
|
|
"title": "Custom Section Title",
|
|
"columns": 1,
|
|
"hidden": false,
|
|
"type": "experience",
|
|
"items": [ ... ]
|
|
}
|
|
```
|
|
|
|
The `type` field determines the item schema. Valid types: `profiles`, `experience`, `education`, `projects`, `skills`, `languages`, `interests`, `awards`, `certifications`, `publications`, `volunteer`, `references`
|
|
|
|
## UUID Generation
|
|
|
|
All `id` fields require valid UUIDs version 7. If available, use 'v7()' from the 'uuid' package to generate a valid UUID. Otherwise, fallback to generating a valid UUID v4 using crypto.randomUUID() from 'node' or the equivalent.
|
|
|
|
## HTML Content
|
|
|
|
Fields marked as "HTML-formatted string" accept basic HTML:
|
|
|
|
- `<p>` for paragraphs
|
|
- `<ul><li>` for bullet lists
|
|
- `<ol><li>` for numbered lists
|
|
- `<strong>` for bold
|
|
- `<em>` for italic
|
|
- `<a href="...">` for links
|
|
|
|
Keep formatting minimal for best rendering across templates.
|