@jsonresume/schema 1.2.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -30
- package/examples/career-changer.resume.json +186 -0
- package/examples/new-grad.resume.json +162 -0
- package/examples/senior-engineer.resume.json +216 -0
- package/job-schema.json +119 -123
- package/package.json +12 -12
- package/sample.job.json +42 -53
- package/sample.resume.json +7 -27
package/README.md
CHANGED
|
@@ -1,28 +1,14 @@
|
|
|
1
1
|
# JSON Resume Schema
|
|
2
2
|
|
|
3
|
-
[](https://www.npmjs.com/package/resume-schema)
|
|
5
|
-
[](https://github.com/vanillawc/wc-template/actions)
|
|
6
|
-
[](https://github.com/vanillawc/wc-template/actions)
|
|
3
|
+
[](https://www.npmjs.com/package/@jsonresume/schema)
|
|
7
4
|
|
|
8
5
|
[](https://discord.gg/GTZtn8pTXC)
|
|
9
6
|
|
|
10
7
|
Standard, Specification, Schema
|
|
11
8
|
|
|
12
|
-
|
|
9
|
+
> **Note:** This package now lives in the [jsonresume.org monorepo](https://github.com/jsonresume/jsonresume.org) as `packages/schema` (imported with full history from [jsonresume/resume-schema](https://github.com/jsonresume/resume-schema)). It keeps its npm identity as [`@jsonresume/schema`](https://www.npmjs.com/package/@jsonresume/schema) and is published from this workspace. Please open issues and PRs against the monorepo.
|
|
13
10
|
|
|
14
|
-
The current
|
|
15
|
-
|
|
16
|
-
All PR's for the next version should be made against the `develop` branch.
|
|
17
|
-
|
|
18
|
-
This enforces that the schema package always has the official stable release of the schema.
|
|
19
|
-
|
|
20
|
-
### Homepage and Registry
|
|
21
|
-
|
|
22
|
-
If you are looking for the homepage, registry, tooling or themes, see the JSON Resume monorepo
|
|
23
|
-
|
|
24
|
-
[@jsonresume/jsonresume.org](https://github.com/jsonresume/jsonresume.org/)
|
|
25
|
-
|
|
11
|
+
The current stable schema is represented by the files `schema.json` and `sample.resume.json`.
|
|
26
12
|
|
|
27
13
|
### Getting started
|
|
28
14
|
|
|
@@ -52,8 +38,8 @@ resumeSchema.validate(
|
|
|
52
38
|
Or against a full `resume.json`
|
|
53
39
|
|
|
54
40
|
```js
|
|
55
|
-
|
|
56
|
-
|
|
41
|
+
const fs = require('fs');
|
|
42
|
+
const resumeSchema = require('@jsonresume/schema');
|
|
57
43
|
const resumeObject = JSON.parse(fs.readFileSync('./resume.json', 'utf8'));
|
|
58
44
|
resumeSchema.validate(resumeObject);
|
|
59
45
|
```
|
|
@@ -61,12 +47,12 @@ resumeSchema.validate(resumeObject);
|
|
|
61
47
|
The JSON Resume schema is available from:
|
|
62
48
|
|
|
63
49
|
```js
|
|
64
|
-
require(
|
|
50
|
+
require('@jsonresume/schema').schema;
|
|
65
51
|
```
|
|
66
52
|
|
|
67
53
|
### Contribute
|
|
68
54
|
|
|
69
|
-
We encourage anyone who's interested in participating in the formation of this standard to join the discussions [here on GitHub](https://github.com/jsonresume/
|
|
55
|
+
We encourage anyone who's interested in participating in the formation of this standard to join the discussions [here on GitHub](https://github.com/jsonresume/jsonresume.org/issues). Also feel free to fork this project and submit new ideas to add to the JSON Resume Schema standard. To make sure all formatting is kept in check, please install the [EditorConfig plugin](http://editorconfig.org/) for your editor of choice.
|
|
70
56
|
|
|
71
57
|
### Versioning
|
|
72
58
|
|
|
@@ -79,14 +65,7 @@ a major-version release. As a result of this policy, you can (and should)
|
|
|
79
65
|
specify any dependency on JSON Resume Schema by using the Pessimistic Version
|
|
80
66
|
Constraint with two digits of precision.
|
|
81
67
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
Pull requests titles should be formatted as such
|
|
85
|
-
|
|
86
|
-
```
|
|
87
|
-
"fix: added something" - will bump the patch version
|
|
88
|
-
"feat: added something" - will bump the minor version
|
|
89
|
-
```
|
|
68
|
+
Releases are managed from the monorepo with [Changesets](https://github.com/changesets/changesets). Add a changeset describing your change and the appropriate version bump (`patch`/`minor`/`major`) in the same pull request.
|
|
90
69
|
|
|
91
70
|
`major` version bumps will be few and far between for this schema.
|
|
92
71
|
|
|
@@ -97,7 +76,7 @@ A draft schema for job descriptions is available in this project as well. It is
|
|
|
97
76
|
The JSON Job schema is available from:
|
|
98
77
|
|
|
99
78
|
```js
|
|
100
|
-
require(
|
|
79
|
+
require('@jsonresume/schema').jobSchema;
|
|
101
80
|
```
|
|
102
81
|
|
|
103
82
|
### Other resume standards
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json",
|
|
3
|
+
"basics": {
|
|
4
|
+
"name": "Daniel Reyes",
|
|
5
|
+
"label": "Junior Data Analyst (former Restaurant Manager)",
|
|
6
|
+
"image": "",
|
|
7
|
+
"email": "daniel.reyes@example.com",
|
|
8
|
+
"phone": "(512) 555-0188",
|
|
9
|
+
"url": "https://danielreyes.example.com",
|
|
10
|
+
"summary": "After eight years running high-volume restaurants, I retrained as a data analyst to turn my instinct for operations into measurable impact. I completed a part-time analytics bootcamp and three certifications while still working full time, and I now combine SQL, Python, and dashboarding with hard-won people-and-process experience. I'm looking for a first analytics role on a team that values curiosity and an owner's mindset.",
|
|
11
|
+
"location": {
|
|
12
|
+
"address": "920 Lavaca Street",
|
|
13
|
+
"postalCode": "78701",
|
|
14
|
+
"city": "Austin",
|
|
15
|
+
"countryCode": "US",
|
|
16
|
+
"region": "Texas"
|
|
17
|
+
},
|
|
18
|
+
"profiles": [
|
|
19
|
+
{
|
|
20
|
+
"network": "LinkedIn",
|
|
21
|
+
"username": "danielreyesdata",
|
|
22
|
+
"url": "https://www.linkedin.com/in/danielreyesdata"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"network": "GitHub",
|
|
26
|
+
"username": "dreyes-data",
|
|
27
|
+
"url": "https://github.com/dreyes-data"
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
"work": [
|
|
32
|
+
{
|
|
33
|
+
"name": "Freelance",
|
|
34
|
+
"location": "Austin, TX",
|
|
35
|
+
"description": "Independent analytics consulting",
|
|
36
|
+
"position": "Data Analyst (Contract)",
|
|
37
|
+
"startDate": "2024-08-01",
|
|
38
|
+
"endDate": "2025-04-01",
|
|
39
|
+
"summary": "Took on small analytics engagements for local hospitality businesses while transitioning careers.",
|
|
40
|
+
"highlights": [
|
|
41
|
+
"Built a Looker Studio sales dashboard for a 3-location cafe group, surfacing a 12% margin gap by daypart",
|
|
42
|
+
"Wrote SQL models in dbt to standardize point-of-sale data across vendors",
|
|
43
|
+
"Automated weekly reporting that saved owners roughly 5 hours per week"
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"name": "Salt & Cedar Restaurant Group",
|
|
48
|
+
"location": "Austin, TX",
|
|
49
|
+
"description": "Regional restaurant group, four locations",
|
|
50
|
+
"position": "General Manager",
|
|
51
|
+
"startDate": "2018-03-01",
|
|
52
|
+
"endDate": "2024-07-01",
|
|
53
|
+
"summary": "Ran daily operations, staffing, and P&L for a flagship 120-seat restaurant.",
|
|
54
|
+
"highlights": [
|
|
55
|
+
"Grew annual revenue 28% over three years while holding food cost flat",
|
|
56
|
+
"Introduced a spreadsheet-driven scheduling model that cut overtime spend by 18%",
|
|
57
|
+
"Hired, trained, and retained a team of 35 across front and back of house"
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"name": "Café Lumen",
|
|
62
|
+
"location": "Austin, TX",
|
|
63
|
+
"description": "Independent neighborhood cafe",
|
|
64
|
+
"position": "Shift Supervisor",
|
|
65
|
+
"startDate": "2016-01-01",
|
|
66
|
+
"endDate": "2018-02-01",
|
|
67
|
+
"summary": "Led service shifts and managed inventory ordering.",
|
|
68
|
+
"highlights": [
|
|
69
|
+
"Reduced waste 9% by tightening par-level ordering",
|
|
70
|
+
"Trained six baristas who were later promoted"
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
],
|
|
74
|
+
"volunteer": [
|
|
75
|
+
{
|
|
76
|
+
"organization": "Central Texas Food Bank",
|
|
77
|
+
"position": "Data Volunteer",
|
|
78
|
+
"url": "https://www.centraltexasfoodbank.org/",
|
|
79
|
+
"startDate": "2024-02-01",
|
|
80
|
+
"endDate": "2025-03-01",
|
|
81
|
+
"summary": "Helped the operations team make sense of distribution data.",
|
|
82
|
+
"highlights": [
|
|
83
|
+
"Cleaned and consolidated three years of distribution spreadsheets into a single queryable dataset",
|
|
84
|
+
"Built a monthly volunteer-hours report adopted by the program director"
|
|
85
|
+
]
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"organization": "Austin Free-Net",
|
|
89
|
+
"position": "Digital Literacy Tutor",
|
|
90
|
+
"url": "https://www.austinfree.net/",
|
|
91
|
+
"startDate": "2023-09-01",
|
|
92
|
+
"endDate": "2024-06-01",
|
|
93
|
+
"summary": "Taught spreadsheet and internet basics to adults re-entering the workforce.",
|
|
94
|
+
"highlights": ["Ran weekly Excel workshops for groups of 8-10 learners"]
|
|
95
|
+
}
|
|
96
|
+
],
|
|
97
|
+
"education": [
|
|
98
|
+
{
|
|
99
|
+
"institution": "Austin Community College",
|
|
100
|
+
"url": "https://www.austincc.edu/",
|
|
101
|
+
"area": "Business Administration",
|
|
102
|
+
"studyType": "Associate of Applied Science",
|
|
103
|
+
"startDate": "2012-09-01",
|
|
104
|
+
"endDate": "2014-05-01",
|
|
105
|
+
"score": "3.5/4.0",
|
|
106
|
+
"courses": [
|
|
107
|
+
"Statistics",
|
|
108
|
+
"Managerial Accounting",
|
|
109
|
+
"Operations Management"
|
|
110
|
+
]
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
"certificates": [
|
|
114
|
+
{
|
|
115
|
+
"name": "Google Data Analytics Professional Certificate",
|
|
116
|
+
"date": "2024-05-01",
|
|
117
|
+
"issuer": "Google / Coursera",
|
|
118
|
+
"url": "https://www.coursera.org/professional-certificates/google-data-analytics"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"name": "Databases and SQL for Data Science",
|
|
122
|
+
"date": "2024-09-01",
|
|
123
|
+
"issuer": "IBM / Coursera",
|
|
124
|
+
"url": "https://www.coursera.org/learn/sql-data-science"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"name": "Tableau Desktop Specialist",
|
|
128
|
+
"date": "2025-01-01",
|
|
129
|
+
"issuer": "Tableau",
|
|
130
|
+
"url": "https://www.tableau.com/learn/certification/desktop-specialist"
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
"skills": [
|
|
134
|
+
{
|
|
135
|
+
"name": "Data Analysis",
|
|
136
|
+
"level": "Intermediate",
|
|
137
|
+
"keywords": ["SQL", "Python", "pandas", "dbt", "Excel"]
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"name": "Data Visualization",
|
|
141
|
+
"level": "Intermediate",
|
|
142
|
+
"keywords": ["Tableau", "Looker Studio", "Matplotlib"]
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"name": "Operations & Leadership",
|
|
146
|
+
"level": "Advanced",
|
|
147
|
+
"keywords": [
|
|
148
|
+
"P&L management",
|
|
149
|
+
"Scheduling",
|
|
150
|
+
"Team training",
|
|
151
|
+
"Vendor negotiation"
|
|
152
|
+
]
|
|
153
|
+
}
|
|
154
|
+
],
|
|
155
|
+
"languages": [
|
|
156
|
+
{
|
|
157
|
+
"language": "English",
|
|
158
|
+
"fluency": "Native speaker"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"language": "Spanish",
|
|
162
|
+
"fluency": "Native speaker"
|
|
163
|
+
}
|
|
164
|
+
],
|
|
165
|
+
"interests": [
|
|
166
|
+
{
|
|
167
|
+
"name": "Home Cooking",
|
|
168
|
+
"keywords": ["Fermentation", "Bread baking"]
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"name": "Cycling",
|
|
172
|
+
"keywords": ["Gravel", "Commuting"]
|
|
173
|
+
}
|
|
174
|
+
],
|
|
175
|
+
"references": [
|
|
176
|
+
{
|
|
177
|
+
"name": "Priya Natarajan, Owner, Salt & Cedar Restaurant Group",
|
|
178
|
+
"reference": "Daniel ran our busiest location with a steady hand and a relentless focus on the numbers. When he started teaching himself SQL on nights off, none of us were surprised. He turns data into decisions."
|
|
179
|
+
}
|
|
180
|
+
],
|
|
181
|
+
"meta": {
|
|
182
|
+
"canonical": "https://danielreyes.example.com/resume.json",
|
|
183
|
+
"version": "v1.0.0",
|
|
184
|
+
"lastModified": "2025-04-20T14:30:00"
|
|
185
|
+
}
|
|
186
|
+
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json",
|
|
3
|
+
"basics": {
|
|
4
|
+
"name": "Maya Okonkwo",
|
|
5
|
+
"label": "Computer Science Graduate",
|
|
6
|
+
"image": "",
|
|
7
|
+
"email": "maya.okonkwo@example.com",
|
|
8
|
+
"phone": "(206) 555-0142",
|
|
9
|
+
"url": "https://mayaokonkwo.example.com",
|
|
10
|
+
"summary": "Recent computer science graduate with a focus on distributed systems and machine learning. Two summer internships building production web services, plus a capstone project deployed for 400+ campus users. Eager to join an engineering team where I can keep learning from senior mentors while shipping real features.",
|
|
11
|
+
"location": {
|
|
12
|
+
"address": "417 Maple Avenue, Apt 6",
|
|
13
|
+
"postalCode": "98105",
|
|
14
|
+
"city": "Seattle",
|
|
15
|
+
"countryCode": "US",
|
|
16
|
+
"region": "Washington"
|
|
17
|
+
},
|
|
18
|
+
"profiles": [
|
|
19
|
+
{
|
|
20
|
+
"network": "GitHub",
|
|
21
|
+
"username": "mayaokonkwo",
|
|
22
|
+
"url": "https://github.com/mayaokonkwo"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"network": "LinkedIn",
|
|
26
|
+
"username": "maya-okonkwo",
|
|
27
|
+
"url": "https://www.linkedin.com/in/maya-okonkwo"
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
"education": [
|
|
32
|
+
{
|
|
33
|
+
"institution": "University of Washington",
|
|
34
|
+
"url": "https://www.washington.edu/",
|
|
35
|
+
"area": "Computer Science",
|
|
36
|
+
"studyType": "Bachelor of Science",
|
|
37
|
+
"startDate": "2021-09-01",
|
|
38
|
+
"endDate": "2025-06-01",
|
|
39
|
+
"score": "3.81/4.0",
|
|
40
|
+
"courses": [
|
|
41
|
+
"CSE 451 - Operating Systems",
|
|
42
|
+
"CSE 444 - Database Systems",
|
|
43
|
+
"CSE 446 - Machine Learning",
|
|
44
|
+
"CSE 461 - Computer Networks",
|
|
45
|
+
"CSE 421 - Algorithms"
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"work": [
|
|
50
|
+
{
|
|
51
|
+
"name": "Outreach",
|
|
52
|
+
"location": "Seattle, WA",
|
|
53
|
+
"description": "Sales engagement platform",
|
|
54
|
+
"position": "Software Engineering Intern",
|
|
55
|
+
"url": "https://www.outreach.io/",
|
|
56
|
+
"startDate": "2024-06-01",
|
|
57
|
+
"endDate": "2024-09-01",
|
|
58
|
+
"summary": "Joined the platform infrastructure team to improve internal developer tooling.",
|
|
59
|
+
"highlights": [
|
|
60
|
+
"Built a service-health dashboard in React and TypeScript adopted by three on-call teams",
|
|
61
|
+
"Cut local test-suite runtime by 35% by parallelizing integration fixtures",
|
|
62
|
+
"Wrote the onboarding runbook used by the next intern cohort"
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"name": "Allen Institute for AI",
|
|
67
|
+
"location": "Seattle, WA",
|
|
68
|
+
"description": "Non-profit AI research institute",
|
|
69
|
+
"position": "Research Intern",
|
|
70
|
+
"url": "https://allenai.org/",
|
|
71
|
+
"startDate": "2023-06-01",
|
|
72
|
+
"endDate": "2023-09-01",
|
|
73
|
+
"summary": "Supported an NLP research group evaluating retrieval-augmented question answering.",
|
|
74
|
+
"highlights": [
|
|
75
|
+
"Implemented a reproducible evaluation harness in Python for three benchmark datasets",
|
|
76
|
+
"Reduced experiment turnaround from hours to minutes by caching intermediate embeddings"
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
"projects": [
|
|
81
|
+
{
|
|
82
|
+
"name": "DormSwap",
|
|
83
|
+
"description": "A campus marketplace for students to buy, sell, and trade dorm essentials.",
|
|
84
|
+
"highlights": [
|
|
85
|
+
"Deployed to 400+ active students across two residence halls",
|
|
86
|
+
"Built with Next.js, PostgreSQL, and Prisma on Vercel",
|
|
87
|
+
"Designed an image-moderation flow to keep listings safe"
|
|
88
|
+
],
|
|
89
|
+
"keywords": ["Next.js", "PostgreSQL", "Prisma", "Vercel"],
|
|
90
|
+
"startDate": "2024-09-01",
|
|
91
|
+
"endDate": "2025-05-01",
|
|
92
|
+
"url": "https://dormswap.example.com",
|
|
93
|
+
"roles": ["Full-stack developer", "Team lead"],
|
|
94
|
+
"entity": "University of Washington Capstone",
|
|
95
|
+
"type": "application"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"name": "gradient-viz",
|
|
99
|
+
"description": "An interactive visualizer that animates gradient descent over 2D loss surfaces.",
|
|
100
|
+
"highlights": [
|
|
101
|
+
"Open-sourced with 120+ GitHub stars",
|
|
102
|
+
"Renders surfaces in WebGL with adjustable learning-rate controls"
|
|
103
|
+
],
|
|
104
|
+
"keywords": ["WebGL", "JavaScript", "Machine Learning"],
|
|
105
|
+
"startDate": "2024-01-01",
|
|
106
|
+
"endDate": "2024-03-01",
|
|
107
|
+
"url": "https://github.com/mayaokonkwo/gradient-viz",
|
|
108
|
+
"roles": ["Author"],
|
|
109
|
+
"type": "application"
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
"skills": [
|
|
113
|
+
{
|
|
114
|
+
"name": "Programming Languages",
|
|
115
|
+
"level": "Intermediate",
|
|
116
|
+
"keywords": ["Python", "TypeScript", "Java", "Go", "SQL"]
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"name": "Web Development",
|
|
120
|
+
"level": "Intermediate",
|
|
121
|
+
"keywords": ["React", "Next.js", "Node.js", "REST APIs"]
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"name": "Data & Infrastructure",
|
|
125
|
+
"level": "Beginner",
|
|
126
|
+
"keywords": ["PostgreSQL", "Docker", "Git", "AWS"]
|
|
127
|
+
}
|
|
128
|
+
],
|
|
129
|
+
"awards": [
|
|
130
|
+
{
|
|
131
|
+
"title": "Dean's List",
|
|
132
|
+
"date": "2024-12-01",
|
|
133
|
+
"awarder": "University of Washington",
|
|
134
|
+
"summary": "Recognized for academic excellence across four consecutive quarters."
|
|
135
|
+
}
|
|
136
|
+
],
|
|
137
|
+
"languages": [
|
|
138
|
+
{
|
|
139
|
+
"language": "English",
|
|
140
|
+
"fluency": "Native speaker"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"language": "Igbo",
|
|
144
|
+
"fluency": "Conversational"
|
|
145
|
+
}
|
|
146
|
+
],
|
|
147
|
+
"interests": [
|
|
148
|
+
{
|
|
149
|
+
"name": "Open Source",
|
|
150
|
+
"keywords": ["Hacktoberfest", "Documentation"]
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"name": "Rock Climbing",
|
|
154
|
+
"keywords": ["Bouldering", "Top rope"]
|
|
155
|
+
}
|
|
156
|
+
],
|
|
157
|
+
"meta": {
|
|
158
|
+
"canonical": "https://mayaokonkwo.example.com/resume.json",
|
|
159
|
+
"version": "v1.0.0",
|
|
160
|
+
"lastModified": "2025-06-15T09:00:00"
|
|
161
|
+
}
|
|
162
|
+
}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json",
|
|
3
|
+
"basics": {
|
|
4
|
+
"name": "Dr. Lena Vasquez",
|
|
5
|
+
"label": "Staff Software Engineer, Distributed Systems",
|
|
6
|
+
"image": "",
|
|
7
|
+
"email": "lena.vasquez@example.com",
|
|
8
|
+
"phone": "(415) 555-0117",
|
|
9
|
+
"url": "https://lenavasquez.example.com",
|
|
10
|
+
"summary": "Staff engineer with 14 years building large-scale distributed storage and streaming systems. I lead cross-team technical direction, mentor senior engineers, and still spend most of my week in the codebase. My work spans consensus protocols, multi-region data replication, and the boring-but-critical operability that keeps petabyte-scale systems healthy.",
|
|
11
|
+
"location": {
|
|
12
|
+
"address": "88 Harrison Street, Unit 1402",
|
|
13
|
+
"postalCode": "94105",
|
|
14
|
+
"city": "San Francisco",
|
|
15
|
+
"countryCode": "US",
|
|
16
|
+
"region": "California"
|
|
17
|
+
},
|
|
18
|
+
"profiles": [
|
|
19
|
+
{
|
|
20
|
+
"network": "GitHub",
|
|
21
|
+
"username": "lvasquez",
|
|
22
|
+
"url": "https://github.com/lvasquez"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"network": "Mastodon",
|
|
26
|
+
"username": "lena",
|
|
27
|
+
"url": "https://hachyderm.io/@lena"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"network": "LinkedIn",
|
|
31
|
+
"username": "lena-vasquez-eng",
|
|
32
|
+
"url": "https://www.linkedin.com/in/lena-vasquez-eng"
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
"work": [
|
|
37
|
+
{
|
|
38
|
+
"name": "Confluent",
|
|
39
|
+
"location": "Mountain View, CA",
|
|
40
|
+
"description": "Data streaming platform built on Apache Kafka",
|
|
41
|
+
"position": "Staff Software Engineer",
|
|
42
|
+
"url": "https://www.confluent.io/",
|
|
43
|
+
"startDate": "2020-02-01",
|
|
44
|
+
"summary": "Technical lead for the multi-region replication and tiered-storage initiatives.",
|
|
45
|
+
"highlights": [
|
|
46
|
+
"Designed the tiered-storage architecture that offloaded 80% of broker disk usage to object stores",
|
|
47
|
+
"Led a six-engineer working group to ship active-active cluster linking across three cloud regions",
|
|
48
|
+
"Cut p99 produce latency 40% by reworking the replication fetch path",
|
|
49
|
+
"Authored the internal design-review rubric now used org-wide"
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "Dropbox",
|
|
54
|
+
"location": "San Francisco, CA",
|
|
55
|
+
"description": "Cloud storage and collaboration",
|
|
56
|
+
"position": "Senior Software Engineer",
|
|
57
|
+
"url": "https://www.dropbox.com/",
|
|
58
|
+
"startDate": "2015-06-01",
|
|
59
|
+
"endDate": "2020-01-01",
|
|
60
|
+
"summary": "Worked on Magic Pocket, Dropbox's exabyte-scale custom storage system.",
|
|
61
|
+
"highlights": [
|
|
62
|
+
"Built the erasure-coding pipeline that reduced storage cost per byte by 25%",
|
|
63
|
+
"Owned the cross-zone repair scheduler responsible for durability SLAs",
|
|
64
|
+
"Mentored four engineers, two of whom were promoted to senior"
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"name": "Rackspace",
|
|
69
|
+
"location": "San Antonio, TX",
|
|
70
|
+
"description": "Managed cloud hosting provider",
|
|
71
|
+
"position": "Software Engineer",
|
|
72
|
+
"url": "https://www.rackspace.com/",
|
|
73
|
+
"startDate": "2011-08-01",
|
|
74
|
+
"endDate": "2015-05-01",
|
|
75
|
+
"summary": "Contributed to OpenStack Swift, the open-source object storage project.",
|
|
76
|
+
"highlights": [
|
|
77
|
+
"Implemented container-sync replication improvements upstreamed to OpenStack Swift",
|
|
78
|
+
"Reduced cluster rebalance time by redesigning the ring-builder partition assignment"
|
|
79
|
+
]
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"education": [
|
|
83
|
+
{
|
|
84
|
+
"institution": "University of Texas at Austin",
|
|
85
|
+
"url": "https://www.utexas.edu/",
|
|
86
|
+
"area": "Computer Science",
|
|
87
|
+
"studyType": "Ph.D.",
|
|
88
|
+
"startDate": "2006-09-01",
|
|
89
|
+
"endDate": "2011-06-01",
|
|
90
|
+
"score": "Dissertation: Consistency Trade-offs in Geo-Replicated Key-Value Stores"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"institution": "University of Texas at Austin",
|
|
94
|
+
"url": "https://www.utexas.edu/",
|
|
95
|
+
"area": "Computer Science",
|
|
96
|
+
"studyType": "Bachelor of Science",
|
|
97
|
+
"startDate": "2002-09-01",
|
|
98
|
+
"endDate": "2006-05-01",
|
|
99
|
+
"score": "3.9/4.0"
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
"publications": [
|
|
103
|
+
{
|
|
104
|
+
"name": "Bounded Staleness for Geo-Replicated Key-Value Stores",
|
|
105
|
+
"publisher": "USENIX OSDI",
|
|
106
|
+
"releaseDate": "2014-10-01",
|
|
107
|
+
"url": "https://www.usenix.org/conference/osdi14",
|
|
108
|
+
"summary": "A tunable consistency model that bounds replica staleness while preserving low write latency across regions."
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"name": "Operating Tiered Storage at Streaming Scale",
|
|
112
|
+
"publisher": "ACM Queue",
|
|
113
|
+
"releaseDate": "2022-07-01",
|
|
114
|
+
"url": "https://queue.acm.org/",
|
|
115
|
+
"summary": "Lessons from offloading streaming log segments to object storage without sacrificing read latency."
|
|
116
|
+
}
|
|
117
|
+
],
|
|
118
|
+
"awards": [
|
|
119
|
+
{
|
|
120
|
+
"title": "Best Paper Award",
|
|
121
|
+
"date": "2014-10-01",
|
|
122
|
+
"awarder": "USENIX OSDI",
|
|
123
|
+
"summary": "Recognized for the geo-replication consistency model paper."
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"title": "Distinguished Engineer Spotlight",
|
|
127
|
+
"date": "2021-12-01",
|
|
128
|
+
"awarder": "Confluent",
|
|
129
|
+
"summary": "Internal recognition for technical leadership on the tiered-storage launch."
|
|
130
|
+
}
|
|
131
|
+
],
|
|
132
|
+
"certificates": [
|
|
133
|
+
{
|
|
134
|
+
"name": "AWS Certified Solutions Architect - Professional",
|
|
135
|
+
"date": "2019-03-01",
|
|
136
|
+
"issuer": "Amazon Web Services",
|
|
137
|
+
"url": "https://aws.amazon.com/certification/certified-solutions-architect-professional/"
|
|
138
|
+
}
|
|
139
|
+
],
|
|
140
|
+
"skills": [
|
|
141
|
+
{
|
|
142
|
+
"name": "Distributed Systems",
|
|
143
|
+
"level": "Master",
|
|
144
|
+
"keywords": [
|
|
145
|
+
"Consensus",
|
|
146
|
+
"Replication",
|
|
147
|
+
"Erasure coding",
|
|
148
|
+
"Consistency models"
|
|
149
|
+
]
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"name": "Programming Languages",
|
|
153
|
+
"level": "Master",
|
|
154
|
+
"keywords": ["Go", "Rust", "Java", "Python", "C++"]
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"name": "Infrastructure",
|
|
158
|
+
"level": "Advanced",
|
|
159
|
+
"keywords": ["Kafka", "Kubernetes", "Terraform", "Prometheus", "S3"]
|
|
160
|
+
}
|
|
161
|
+
],
|
|
162
|
+
"languages": [
|
|
163
|
+
{
|
|
164
|
+
"language": "English",
|
|
165
|
+
"fluency": "Native speaker"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"language": "Spanish",
|
|
169
|
+
"fluency": "Fluent"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"language": "Portuguese",
|
|
173
|
+
"fluency": "Professional working proficiency"
|
|
174
|
+
}
|
|
175
|
+
],
|
|
176
|
+
"projects": [
|
|
177
|
+
{
|
|
178
|
+
"name": "raft-lab",
|
|
179
|
+
"description": "A teaching implementation of the Raft consensus protocol with a deterministic network simulator.",
|
|
180
|
+
"highlights": [
|
|
181
|
+
"Used in a graduate distributed-systems course at two universities",
|
|
182
|
+
"Includes a fault-injection harness for partition and clock-skew scenarios"
|
|
183
|
+
],
|
|
184
|
+
"keywords": ["Go", "Raft", "Consensus"],
|
|
185
|
+
"startDate": "2019-01-01",
|
|
186
|
+
"url": "https://github.com/lvasquez/raft-lab",
|
|
187
|
+
"roles": ["Author", "Maintainer"],
|
|
188
|
+
"type": "application"
|
|
189
|
+
}
|
|
190
|
+
],
|
|
191
|
+
"interests": [
|
|
192
|
+
{
|
|
193
|
+
"name": "Mentoring",
|
|
194
|
+
"keywords": ["Conference speaking", "Open source"]
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"name": "Cartography",
|
|
198
|
+
"keywords": ["Topographic maps", "GIS"]
|
|
199
|
+
}
|
|
200
|
+
],
|
|
201
|
+
"references": [
|
|
202
|
+
{
|
|
203
|
+
"name": "Marcus Feng, Engineering Director at Confluent",
|
|
204
|
+
"reference": "Lena is the engineer other staff engineers go to. She has a rare ability to hold an entire distributed system in her head and still write the cleanest pull request on the team. Her design reviews raised the bar for the whole org."
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"name": "Dr. Anita Bose, Professor of Computer Science, UT Austin",
|
|
208
|
+
"reference": "Lena was among the strongest doctoral students I have advised. Her OSDI paper continues to be cited, and she has the unusual gift of making hard systems ideas legible to students."
|
|
209
|
+
}
|
|
210
|
+
],
|
|
211
|
+
"meta": {
|
|
212
|
+
"canonical": "https://lenavasquez.example.com/resume.json",
|
|
213
|
+
"version": "v1.0.0",
|
|
214
|
+
"lastModified": "2025-03-02T11:15:00"
|
|
215
|
+
}
|
|
216
|
+
}
|
package/job-schema.json
CHANGED
|
@@ -1,141 +1,137 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
3
|
+
"additionalProperties": true,
|
|
4
|
+
"definitions": {
|
|
5
|
+
"iso8601": {
|
|
6
|
+
"type": "string",
|
|
7
|
+
"description": "Similar to the standard date type, but each section after the year is optional. e.g. 2014-06-29 or 2023-04",
|
|
8
|
+
"pattern": "^([1-2][0-9]{3}-[0-1][0-9]-[0-3][0-9]|[1-2][0-9]{3}-[0-1][0-9]|[1-2][0-9]{3})$"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"properties": {
|
|
12
|
+
"title": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "e.g. Web Developer"
|
|
15
|
+
},
|
|
16
|
+
"company": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "Microsoft"
|
|
19
|
+
},
|
|
20
|
+
"type": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "Full-time, part-time, contract, etc."
|
|
23
|
+
},
|
|
24
|
+
"date": {
|
|
25
|
+
"$ref": "#/definitions/iso8601"
|
|
26
|
+
},
|
|
27
|
+
"description": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"description": "Write a short description about the job"
|
|
30
|
+
},
|
|
31
|
+
"location": {
|
|
32
|
+
"type": "object",
|
|
33
|
+
"additionalProperties": true,
|
|
34
|
+
"properties": {
|
|
35
|
+
"address": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"description": "To add multiple address lines, use \\n. For example, 1234 Glücklichkeit Straße\\nHinterhaus 5. Etage li."
|
|
38
|
+
},
|
|
39
|
+
"postalCode": {
|
|
40
|
+
"type": "string"
|
|
41
|
+
},
|
|
42
|
+
"city": {
|
|
43
|
+
"type": "string"
|
|
44
|
+
},
|
|
45
|
+
"countryCode": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"description": "code as per ISO-3166-1 ALPHA-2, e.g. US, AU, IN"
|
|
48
|
+
},
|
|
49
|
+
"region": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"description": "The general region where you live. Can be a US state, or a province, for instance."
|
|
52
|
+
}
|
|
9
53
|
}
|
|
10
54
|
},
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
55
|
+
"remote": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"description": "the level of remote work available",
|
|
58
|
+
"enum": ["Full", "Hybrid", "None"]
|
|
59
|
+
},
|
|
60
|
+
"salary": {
|
|
61
|
+
"type": "string",
|
|
62
|
+
"description": "100000"
|
|
63
|
+
},
|
|
64
|
+
"experience": {
|
|
65
|
+
"type": "string",
|
|
66
|
+
"description": "Senior or Junior or Mid-level"
|
|
67
|
+
},
|
|
68
|
+
"responsibilities": {
|
|
69
|
+
"type": "array",
|
|
70
|
+
"description": "what the job entails",
|
|
71
|
+
"additionalItems": false,
|
|
72
|
+
"items": {
|
|
21
73
|
"type": "string",
|
|
22
|
-
"description": "
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
"description":
|
|
74
|
+
"description": "e.g. Build out a new API for our customer base."
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"qualifications": {
|
|
78
|
+
"type": "array",
|
|
79
|
+
"description": "List out your qualifications",
|
|
80
|
+
"additionalItems": false,
|
|
81
|
+
"items": {
|
|
28
82
|
"type": "string",
|
|
29
|
-
"description": "
|
|
30
|
-
}
|
|
31
|
-
|
|
83
|
+
"description": "undergraduate degree, etc. "
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"skills": {
|
|
87
|
+
"type": "array",
|
|
88
|
+
"description": "List out your professional skill-set",
|
|
89
|
+
"additionalItems": false,
|
|
90
|
+
"items": {
|
|
32
91
|
"type": "object",
|
|
33
92
|
"additionalProperties": true,
|
|
34
93
|
"properties": {
|
|
35
|
-
"
|
|
94
|
+
"name": {
|
|
36
95
|
"type": "string",
|
|
37
|
-
"description": "
|
|
38
|
-
},
|
|
39
|
-
"postalCode": {
|
|
40
|
-
"type": "string"
|
|
41
|
-
},
|
|
42
|
-
"city": {
|
|
43
|
-
"type": "string"
|
|
96
|
+
"description": "e.g. Web Development"
|
|
44
97
|
},
|
|
45
|
-
"
|
|
98
|
+
"level": {
|
|
46
99
|
"type": "string",
|
|
47
|
-
"description": "
|
|
100
|
+
"description": "e.g. Master"
|
|
48
101
|
},
|
|
49
|
-
"
|
|
50
|
-
"type": "
|
|
51
|
-
"description": "
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
},
|
|
55
|
-
"remote": {
|
|
56
|
-
"type": "string",
|
|
57
|
-
"description": "the level of remote work available",
|
|
58
|
-
"enum": [
|
|
59
|
-
"Full",
|
|
60
|
-
"Hybrid",
|
|
61
|
-
"None"
|
|
62
|
-
]
|
|
63
|
-
},
|
|
64
|
-
"salary": {
|
|
65
|
-
"type": "string",
|
|
66
|
-
"description": "100000"
|
|
67
|
-
},
|
|
68
|
-
"experience": {
|
|
69
|
-
"type": "string",
|
|
70
|
-
"description": "Senior or Junior or Mid-level"
|
|
71
|
-
},
|
|
72
|
-
"responsibilities": {
|
|
73
|
-
"type": "array",
|
|
74
|
-
"description": "what the job entails",
|
|
75
|
-
"additionalItems": false,
|
|
76
|
-
"items": {
|
|
77
|
-
"type": "string",
|
|
78
|
-
"description": "e.g. Build out a new API for our customer base."
|
|
79
|
-
}
|
|
80
|
-
},
|
|
81
|
-
"qualifications": {
|
|
82
|
-
"type": "array",
|
|
83
|
-
"description": "List out your qualifications",
|
|
84
|
-
"additionalItems": false,
|
|
85
|
-
"items": {
|
|
86
|
-
"type": "string",
|
|
87
|
-
"description": "undergraduate degree, etc. "
|
|
88
|
-
}
|
|
89
|
-
},
|
|
90
|
-
"skills": {
|
|
91
|
-
"type": "array",
|
|
92
|
-
"description": "List out your professional skill-set",
|
|
93
|
-
"additionalItems": false,
|
|
94
|
-
"items": {
|
|
95
|
-
"type": "object",
|
|
96
|
-
"additionalProperties": true,
|
|
97
|
-
"properties": {
|
|
98
|
-
"name": {
|
|
99
|
-
"type": "string",
|
|
100
|
-
"description": "e.g. Web Development"
|
|
101
|
-
},
|
|
102
|
-
"level": {
|
|
102
|
+
"keywords": {
|
|
103
|
+
"type": "array",
|
|
104
|
+
"description": "List some keywords pertaining to this skill",
|
|
105
|
+
"additionalItems": false,
|
|
106
|
+
"items": {
|
|
103
107
|
"type": "string",
|
|
104
|
-
"description": "e.g.
|
|
105
|
-
},
|
|
106
|
-
"keywords": {
|
|
107
|
-
"type": "array",
|
|
108
|
-
"description": "List some keywords pertaining to this skill",
|
|
109
|
-
"additionalItems": false,
|
|
110
|
-
"items": {
|
|
111
|
-
"type": "string",
|
|
112
|
-
"description": "e.g. HTML"
|
|
113
|
-
}
|
|
108
|
+
"description": "e.g. HTML"
|
|
114
109
|
}
|
|
115
110
|
}
|
|
116
111
|
}
|
|
117
|
-
},
|
|
118
|
-
"meta": {
|
|
119
|
-
"type": "object",
|
|
120
|
-
"description": "The schema version and any other tooling configuration lives here",
|
|
121
|
-
"additionalProperties": true,
|
|
122
|
-
"properties": {
|
|
123
|
-
"canonical": {
|
|
124
|
-
"type": "string",
|
|
125
|
-
"description": "URL (as per RFC 3986) to latest version of this document",
|
|
126
|
-
"format": "uri"
|
|
127
|
-
},
|
|
128
|
-
"version": {
|
|
129
|
-
"type": "string",
|
|
130
|
-
"description": "A version field which follows semver - e.g. v1.0.0"
|
|
131
|
-
},
|
|
132
|
-
"lastModified": {
|
|
133
|
-
"type": "string",
|
|
134
|
-
"description": "Using ISO 8601 with YYYY-MM-DDThh:mm:ss"
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
112
|
}
|
|
138
113
|
},
|
|
139
|
-
"
|
|
140
|
-
|
|
141
|
-
|
|
114
|
+
"meta": {
|
|
115
|
+
"type": "object",
|
|
116
|
+
"description": "The schema version and any other tooling configuration lives here",
|
|
117
|
+
"additionalProperties": true,
|
|
118
|
+
"properties": {
|
|
119
|
+
"canonical": {
|
|
120
|
+
"type": "string",
|
|
121
|
+
"description": "URL (as per RFC 3986) to latest version of this document",
|
|
122
|
+
"format": "uri"
|
|
123
|
+
},
|
|
124
|
+
"version": {
|
|
125
|
+
"type": "string",
|
|
126
|
+
"description": "A version field which follows semver - e.g. v1.0.0"
|
|
127
|
+
},
|
|
128
|
+
"lastModified": {
|
|
129
|
+
"type": "string",
|
|
130
|
+
"description": "Using ISO 8601 with YYYY-MM-DDThh:mm:ss"
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
"title": "Job Description Schema",
|
|
136
|
+
"type": "object"
|
|
137
|
+
}
|
package/package.json
CHANGED
|
@@ -1,30 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jsonresume/schema",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "JSON Resume Schema",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "validator.js",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"test": "npm run validate && npm run test-units",
|
|
9
|
-
"validate": "ajv validate -s node_modules/json-metaschema/draft-07-schema -d schema",
|
|
10
|
-
"test-units": "tape **/*.spec.js | tap-spec",
|
|
11
|
-
"preversion": "npm test",
|
|
12
|
-
"postversion": "git push --follow-tags"
|
|
13
|
-
},
|
|
14
7
|
"repository": {
|
|
15
8
|
"type": "git",
|
|
16
|
-
"url": "git://github.com/jsonresume/
|
|
9
|
+
"url": "git+https://github.com/jsonresume/jsonresume.org.git",
|
|
10
|
+
"directory": "packages/schema"
|
|
17
11
|
},
|
|
18
12
|
"license": "MIT",
|
|
19
13
|
"bugs": {
|
|
20
|
-
"url": "https://github.com/jsonresume/
|
|
14
|
+
"url": "https://github.com/jsonresume/jsonresume.org/issues"
|
|
21
15
|
},
|
|
22
16
|
"files": [
|
|
23
17
|
"sample.resume.json",
|
|
24
18
|
"sample.job.json",
|
|
25
19
|
"schema.json",
|
|
26
20
|
"job-schema.json",
|
|
27
|
-
"validator.js"
|
|
21
|
+
"validator.js",
|
|
22
|
+
"examples"
|
|
28
23
|
],
|
|
29
24
|
"dependencies": {
|
|
30
25
|
"jsonschema": "^1.4.1"
|
|
@@ -37,5 +32,10 @@
|
|
|
37
32
|
},
|
|
38
33
|
"engines": {
|
|
39
34
|
"node": ">=20"
|
|
35
|
+
},
|
|
36
|
+
"scripts": {
|
|
37
|
+
"test": "npm run validate && npm run test-units",
|
|
38
|
+
"validate": "ajv validate -s node_modules/json-metaschema/draft-07-schema -d schema",
|
|
39
|
+
"test-units": "tape **/*.spec.js | tap-spec"
|
|
40
40
|
}
|
|
41
|
-
}
|
|
41
|
+
}
|
package/sample.job.json
CHANGED
|
@@ -1,57 +1,46 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
3
|
+
"title": "Web Developer",
|
|
4
|
+
"company": "Microsoft",
|
|
5
|
+
"type": "Full-time",
|
|
6
|
+
"date": "2024-07",
|
|
7
|
+
"description": "We are looking for a skilled Web Developer to join our team. The role involves building and maintaining web applications.",
|
|
8
|
+
"location": {
|
|
9
|
+
"address": "1234 Glücklichkeit Straße\nHinterhaus 5. Etage li.",
|
|
10
|
+
"postalCode": "10115",
|
|
11
|
+
"city": "Berlin",
|
|
12
|
+
"countryCode": "DE",
|
|
13
|
+
"region": "Berlin"
|
|
14
|
+
},
|
|
15
|
+
"remote": "Hybrid",
|
|
16
|
+
"salary": "100000",
|
|
17
|
+
"experience": "Mid-level",
|
|
18
|
+
"responsibilities": [
|
|
19
|
+
"Develop and maintain web applications",
|
|
20
|
+
"Collaborate with cross-functional teams",
|
|
21
|
+
"Ensure the technical feasibility of UI/UX designs",
|
|
22
|
+
"Optimize applications for maximum speed and scalability"
|
|
23
|
+
],
|
|
24
|
+
"qualifications": [
|
|
25
|
+
"Bachelor's degree in Computer Science or related field",
|
|
26
|
+
"3+ years of experience in web development",
|
|
27
|
+
"Strong understanding of JavaScript, HTML, and CSS"
|
|
28
|
+
],
|
|
29
|
+
"skills": [
|
|
30
|
+
{
|
|
31
|
+
"name": "Web Development",
|
|
32
|
+
"level": "Master",
|
|
33
|
+
"keywords": ["HTML", "CSS", "JavaScript", "React", "Node.js"]
|
|
14
34
|
},
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"Develop and maintain web applications",
|
|
20
|
-
"Collaborate with cross-functional teams",
|
|
21
|
-
"Ensure the technical feasibility of UI/UX designs",
|
|
22
|
-
"Optimize applications for maximum speed and scalability"
|
|
23
|
-
],
|
|
24
|
-
"qualifications": [
|
|
25
|
-
"Bachelor's degree in Computer Science or related field",
|
|
26
|
-
"3+ years of experience in web development",
|
|
27
|
-
"Strong understanding of JavaScript, HTML, and CSS"
|
|
28
|
-
],
|
|
29
|
-
"skills": [
|
|
30
|
-
{
|
|
31
|
-
"name": "Web Development",
|
|
32
|
-
"level": "Master",
|
|
33
|
-
"keywords": [
|
|
34
|
-
"HTML",
|
|
35
|
-
"CSS",
|
|
36
|
-
"JavaScript",
|
|
37
|
-
"React",
|
|
38
|
-
"Node.js"
|
|
39
|
-
]
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
"name": "Database Management",
|
|
43
|
-
"level": "Intermediate",
|
|
44
|
-
"keywords": [
|
|
45
|
-
"SQL",
|
|
46
|
-
"NoSQL",
|
|
47
|
-
"MongoDB"
|
|
48
|
-
]
|
|
49
|
-
}
|
|
50
|
-
],
|
|
51
|
-
"meta": {
|
|
52
|
-
"canonical": "http://example.com/jobs/web-developer",
|
|
53
|
-
"version": "v1.0.0",
|
|
54
|
-
"lastModified": "2024-07-10T15:00:00"
|
|
35
|
+
{
|
|
36
|
+
"name": "Database Management",
|
|
37
|
+
"level": "Intermediate",
|
|
38
|
+
"keywords": ["SQL", "NoSQL", "MongoDB"]
|
|
55
39
|
}
|
|
40
|
+
],
|
|
41
|
+
"meta": {
|
|
42
|
+
"canonical": "http://example.com/jobs/web-developer",
|
|
43
|
+
"version": "v1.0.0",
|
|
44
|
+
"lastModified": "2024-07-10T15:00:00"
|
|
56
45
|
}
|
|
57
|
-
|
|
46
|
+
}
|
package/sample.resume.json
CHANGED
|
@@ -53,9 +53,7 @@
|
|
|
53
53
|
"startDate": "2012-01-01",
|
|
54
54
|
"endDate": "2013-01-01",
|
|
55
55
|
"summary": "Global movement of free coding clubs for young people.",
|
|
56
|
-
"highlights": [
|
|
57
|
-
"Awarded 'Teacher of the Month'"
|
|
58
|
-
]
|
|
56
|
+
"highlights": ["Awarded 'Teacher of the Month'"]
|
|
59
57
|
}
|
|
60
58
|
],
|
|
61
59
|
"education": [
|
|
@@ -67,10 +65,7 @@
|
|
|
67
65
|
"startDate": "2011-06-01",
|
|
68
66
|
"endDate": "2014-01-01",
|
|
69
67
|
"score": "4.0",
|
|
70
|
-
"courses": [
|
|
71
|
-
"DB1101 - Basic SQL",
|
|
72
|
-
"CS2011 - Java Introduction"
|
|
73
|
-
]
|
|
68
|
+
"courses": ["DB1101 - Basic SQL", "CS2011 - Java Introduction"]
|
|
74
69
|
}
|
|
75
70
|
],
|
|
76
71
|
"awards": [
|
|
@@ -94,20 +89,12 @@
|
|
|
94
89
|
{
|
|
95
90
|
"name": "Web Development",
|
|
96
91
|
"level": "Master",
|
|
97
|
-
"keywords": [
|
|
98
|
-
"HTML",
|
|
99
|
-
"CSS",
|
|
100
|
-
"Javascript"
|
|
101
|
-
]
|
|
92
|
+
"keywords": ["HTML", "CSS", "Javascript"]
|
|
102
93
|
},
|
|
103
94
|
{
|
|
104
95
|
"name": "Compression",
|
|
105
96
|
"level": "Master",
|
|
106
|
-
"keywords": [
|
|
107
|
-
"Mpeg",
|
|
108
|
-
"MP4",
|
|
109
|
-
"GIF"
|
|
110
|
-
]
|
|
97
|
+
"keywords": ["Mpeg", "MP4", "GIF"]
|
|
111
98
|
}
|
|
112
99
|
],
|
|
113
100
|
"languages": [
|
|
@@ -119,10 +106,7 @@
|
|
|
119
106
|
"interests": [
|
|
120
107
|
{
|
|
121
108
|
"name": "Wildlife",
|
|
122
|
-
"keywords": [
|
|
123
|
-
"Ferrets",
|
|
124
|
-
"Unicorns"
|
|
125
|
-
]
|
|
109
|
+
"keywords": ["Ferrets", "Unicorns"]
|
|
126
110
|
}
|
|
127
111
|
],
|
|
128
112
|
"references": [
|
|
@@ -140,15 +124,11 @@
|
|
|
140
124
|
"Built by all women team of newbie programmers",
|
|
141
125
|
"Using modern technologies such as GoogleMaps, Chrome Extension and Javascript"
|
|
142
126
|
],
|
|
143
|
-
"keywords": [
|
|
144
|
-
"GoogleMaps", "Chrome Extension", "Javascript"
|
|
145
|
-
],
|
|
127
|
+
"keywords": ["GoogleMaps", "Chrome Extension", "Javascript"],
|
|
146
128
|
"startDate": "2016-08-24",
|
|
147
129
|
"endDate": "2016-08-24",
|
|
148
130
|
"url": "http://missdirection.example.com",
|
|
149
|
-
"roles": [
|
|
150
|
-
"Team lead", "Designer"
|
|
151
|
-
],
|
|
131
|
+
"roles": ["Team lead", "Designer"],
|
|
152
132
|
"entity": "Smoogle",
|
|
153
133
|
"type": "application"
|
|
154
134
|
}
|