MCPcopy Index your code
hub / github.com/drakeaxelrod/json-resume-service

github.com/drakeaxelrod/json-resume-service @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
46 symbols 102 edges 30 files 0 documented · 0% updated 20mo ago★ 742 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

JSONResume as a Service

json-resume-service.vercel.app

🔥 Refactors + Secret Gists

Secret Gist

[!Tip] For private secret gists

  • localhost:3000/gist/ the first json file from that secret gist will be attempted the file can be named anything my-private.json

eg: jsonresume-service.vercel.app/gist/6776c2096963f1ca8ddb1817c8674b93

Public Gist

[!Tip] For public gist resume.json

eg: jsonresume-service.vercel.app/user/drakeaxelrod


Deploy with Vercel

resume service example

Serverless service that uses the jsonresume.org schema to generate dynamic resumes from a github gist that you can download or recieve back as a http response.

We use puppeteer with a headless chromium to essentially render an HTML page and convert to a pdf.

What is a json resume?

Have you spent countless hours making a resume only to end up having to redo it with you want to change the format? what json resume does is allow for you to input your data in one place and then dynamically generate your resume with different templates you can learn more about this at their website what is a json resume

The following is a basic schema:[^1]

{
  "basics": {
    "name": "John Doe",
    "label": "Programmer",
    "image": "",
    "email": "john@gmail.com",
    "phone": "(912) 555-4321",
    "url": "https://johndoe.com",
    "summary": "A summary of John Doe…",
    "location": {
      "address": "2712 Broadway St",
      "postalCode": "CA 94115",
      "city": "San Francisco",
      "countryCode": "US",
      "region": "California"
    },
    "profiles": [
      {
        "network": "Twitter",
        "username": "john",
        "url": "https://twitter.com/john"
      }
    ]
  },
  "work": [
    {
      "name": "Company",
      "position": "President",
      "url": "https://company.com",
      "startDate": "2013-01-01",
      "endDate": "2014-01-01",
      "summary": "Description…",
      "highlights": ["Started the company"]
    }
  ],
  "volunteer": [
    {
      "organization": "Organization",
      "position": "Volunteer",
      "url": "https://organization.com/",
      "startDate": "2012-01-01",
      "endDate": "2013-01-01",
      "summary": "Description…",
      "highlights": ["Awarded 'Volunteer of the Month'"]
    }
  ],
  "education": [
    {
      "institution": "University",
      "url": "https://institution.com/",
      "area": "Software Development",
      "studyType": "Bachelor",
      "startDate": "2011-01-01",
      "endDate": "2013-01-01",
      "score": "4.0",
      "courses": ["DB1101 - Basic SQL"]
    }
  ],
  "awards": [
    {
      "title": "Award",
      "date": "2014-11-01",
      "awarder": "Company",
      "summary": "There is no spoon."
    }
  ],
  "publications": [
    {
      "name": "Publication",
      "publisher": "Company",
      "releaseDate": "2014-10-01",
      "url": "https://publication.com",
      "summary": "Description…"
    }
  ],
  "skills": [
    {
      "name": "Web Development",
      "level": "Master",
      "keywords": ["HTML", "CSS", "JavaScript"]
    }
  ],
  "languages": [
    {
      "language": "English",
      "fluency": "Native speaker"
    }
  ],
  "interests": [
    {
      "name": "Wildlife",
      "keywords": ["Ferrets", "Unicorns"]
    }
  ],
  "references": [
    {
      "name": "Jane Doe",
      "reference": "Reference…"
    }
  ],
  "projects": [
    {
      "name": "Project",
      "description": "Description…",
      "highlights": ["Won award at AIHacks 2016"],
      "keywords": ["HTML"],
      "startDate": "2019-01-01",
      "endDate": "2021-01-01",
      "url": "https://project.com/",
      "roles": ["Team Lead"],
      "entity": "Entity",
      "type": "application"
    }
  ]
}

Why use this service?

Because it allows you to provide resumes in various styles as a service. This means that you define one data file (a resume.json) and you upload it as a public gist to github.

[!Tip] use secret gists

  • the filename can be anything
  • the first json file will be attempted

Then you can provide that information to this service which will dynamically generate resumes according to compliant formatters. This means that you can create professional looking resumes within seconds after defining your json resume.

Deploy your own

You'll want to fork this repository and deploy your own resume generator service.

  1. Click the fork button at the top right of GitHub or just click this link Fork
  2. Clone your forked repository
git clone URL_OF_FORKED_REPO_HERE
  1. Change directory to your local copy of the forked repository
cd jsonresume-service
  1. Run locally with the project locally
pnpm dev or npm run dev
  1. Visit localhost:3000
  2. if nothing happens, run
npm i
  1. Deploy to the cloud by running going to Vercel and making an account if you don't have one or you another hosting service of your choice.

Contributors

License

Copyright © 2021-present Drake Axelrod

MIT

Footer

[^1]: json resume basic schema

Extension points exported contracts — how you extend this code

ResumeSchema (Interface)
(no doc)
types/json-resume.d.ts
ResumeFix (Interface)
(no doc)
components/resume/Section.tsx

Core symbols most depended-on inside this repo

tpl
called by 6
components/help.tsx
formatDate
called by 4
lib/utils/string-parsers.ts
generateDateRange
called by 4
lib/utils/string-parsers.ts
fetchById
called by 2
lib/gists.js
setHttps
called by 2
lib/utils/string-parsers.ts
read
called by 2
lib/utils/sample-loader.js
fetchByUsername
called by 1
lib/gists.js
capitalize
called by 1
lib/utils/string-parsers.ts

Shape

Function 40
Class 2
Interface 2
Method 2

Languages

TypeScript100%

Modules by API surface

components/resume/Section.tsx11 symbols
lib/utils/string-parsers.ts7 symbols
pages/_document.tsx4 symbols
components/resume/ResumeFooter.tsx4 symbols
lib/utils/sample-loader.js3 symbols
lib/gists.js2 symbols
components/resume/ResumeHeader.tsx2 symbols
components/resume/Link.tsx2 symbols
types/json-resume.d.ts1 symbols
scripts/get-schema.js1 symbols
pages/user/[username].tsx1 symbols
pages/gist/[gistId].tsx1 symbols

For agents

$ claude mcp add json-resume-service \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page