### Install and Initialize resume-cli Source: https://docs.jsonresume.org/examples Installs the resume-cli globally using npm and then initiates a new resume file interactively in the current directory. This is the recommended easiest method for starting a new resume. ```bash npm install -g resume-cli resume init ``` -------------------------------- ### Install docxtemplater and pizzip dependencies Source: https://docs.jsonresume.org/examples This command installs the necessary npm packages for the Handlebars + Docx template method. It is required before running the Node.js script. ```bash npm install docxtemplater pizzip ``` -------------------------------- ### Install JSON Resume Theme with npm Source: https://docs.jsonresume.org/getting-started This command installs a specific theme for the JSON Resume project using npm. Replace '[theme-name]' with the desired theme's identifier. ```bash npm install jsonresume-theme-[theme-name] ``` -------------------------------- ### Start Development Servers Source: https://docs.jsonresume.org/developers Launches the development servers for the JSON Resume project. It can start all applications or specific ones like the registry or documentation. ```bash # Start all apps pnpm dev # Or start specific apps: pnpm --filter registry dev # Registry app (port 3000) pnpm --filter docs dev # Documentation (port 3001) ``` -------------------------------- ### Install JSON Resume CLI Source: https://docs.jsonresume.org/getting-started Installs the JSON Resume Command Line Interface globally using npm. This tool is used for local development, validation, generation, and export of JSON Resumes. ```bash npm install -g resume-cli ``` -------------------------------- ### Serve Resume with Theme Source: https://docs.jsonresume.org/getting-started Starts a local development server to preview your resume using a specified theme. The `--theme` flag allows you to choose from various pre-built rendering styles. ```bash resume serve --theme [theme-name] ``` -------------------------------- ### Install Dependencies with pnpm Source: https://docs.jsonresume.org/developers Installs project dependencies using pnpm, the recommended package manager for this project. Ensure Node.js and pnpm are installed globally. ```bash pnpm install ``` -------------------------------- ### Install json2csv and run export script Source: https://docs.jsonresume.org/examples These commands install the 'json2csv' npm package and then execute the Node.js script responsible for converting the JSON Resume data into CSV files. This is part of the CSV export method. ```bash npm install json2csv node export-csv.js ``` -------------------------------- ### Install and Validate JSON Resume CLI Source: https://docs.jsonresume.org/examples Installs the JSON Resume Command Line Interface (CLI) globally, initializes a new resume project, and validates the generated resume.json file. This is a fundamental step for managing your resume in JSON format. ```bash # Install the CLI npm install -g resume-cli # Create a new resume resume init # Edit the generated resume.json with your data # Then validate resume validate ``` -------------------------------- ### Configure Environment Variables Source: https://docs.jsonresume.org/developers Sets up environment variables required for local development. It involves copying an example file and filling in necessary credentials for OAuth, API keys, and database connections. ```bash # Copy example environment file cp apps/registry/.env.example apps/registry/.env # Edit .env and add your credentials: # - GITHUB_ID and GITHUB_SECRET (OAuth) # - OPENAI_API_KEY (for job matching) # - SUPABASE_URL and SUPABASE_ANON_KEY ``` -------------------------------- ### Install AJV and ajv-formats Source: https://docs.jsonresume.org/developers Installs the necessary npm packages for using AJV with JSON schema validation, including support for common formats. ```bash npm install ajv ajv-formats ``` -------------------------------- ### Version Control Resume with Git Tags Source: https://docs.jsonresume.org/getting-started This snippet demonstrates how to use Git tags for semantic versioning of your resume. It involves creating a tag and pushing it to the remote repository. ```bash git tag v1.0.0 git push origin v1.0.0 ``` -------------------------------- ### Initialize a New JSON Resume Project Source: https://docs.jsonresume.org/cli Initializes a new JSON Resume project directory structure and creates a basic `resume.json` file. This is the starting point for creating or managing a resume using the JSON Resume format. Assumes `resume-cli` is installed. ```shell mkdir my-resume && cd my-resume resume init ``` -------------------------------- ### Install Handlebars Dependency Source: https://docs.jsonresume.org/developers This command installs the Handlebars templating engine as a project dependency using npm. Handlebars will be used to render the resume data into an HTML structure. ```bash npm install handlebars ``` -------------------------------- ### Install a JSON Resume Theme Source: https://docs.jsonresume.org/cli Installs a specific theme package for JSON Resume using npm. Theme names must start with `jsonresume-theme-`. This is necessary before serving or exporting a resume with a custom theme. ```shell npm install jsonresume-theme-xyz ``` -------------------------------- ### Install npm Dependencies for CSV Parsing Source: https://docs.jsonresume.org/examples This command installs the 'csv-parser' npm package, which is required for parsing CSV files within the Node.js script. ```bash npm install csv-parser ``` -------------------------------- ### Create Project Structure and Initialize npm Source: https://docs.jsonresume.org/developers This snippet demonstrates the initial commands to create a new project directory for the theme, navigate into it, and initialize a new Node.js project with default settings using npm. ```bash mkdir jsonresume-theme-myname cd jsonresume-theme-myname npm init -y ``` -------------------------------- ### Install a Custom Resume Theme Source: https://docs.jsonresume.org/cli Demonstrates how to install a resume theme from npm, which can then be used with the `resume export` or `resume serve` commands to customize the resume's appearance. ```shell npm install jsonresume-theme-professional ``` -------------------------------- ### Install and Serve Theme with resume-cli Source: https://docs.jsonresume.org/themes Demonstrates how to install a custom theme using npm and then serve a resume using that specific theme via the resume-cli. This is useful for testing custom themes. ```bash npm install jsonresume-theme-mytheme resume serve --theme mytheme ``` -------------------------------- ### Install Dependencies and Build Project Source: https://docs.jsonresume.org/contributing Commands to install all project dependencies using pnpm and then build the project packages. This step is crucial after cloning the repository to ensure all necessary packages are available and the project is ready for development. ```bash pnpm install pnpm build ``` -------------------------------- ### Installing Themes from npm (Bash) Source: https://docs.jsonresume.org/themes Demonstrates how to install themes directly from npm using the `npm install` command. It shows the naming convention for standard themes and scoped themes under the `@jsonresume/` namespace. ```bash npm install jsonresume-theme-standard npm install jsonresume-theme-elegant npm install jsonresume-theme-spartacus # Scoped themes use "@jsonresume/" npm install @jsonresume/jsonresume-theme-professional ``` -------------------------------- ### JSON Resume CLI: Serve Resume Locally Source: https://docs.jsonresume.org/examples Command to serve your resume locally using the JSON Resume CLI. This command starts a local web server, typically accessible at http://localhost:4000, allowing you to preview your resume in a browser. ```bash # Serve your resume locally resume serve # Opens http://localhost:4000 in your browser ``` -------------------------------- ### Netlify CLI Deploy Commands (Shell) Source: https://docs.jsonresume.org/integration This snippet outlines the essential Netlify CLI commands for installing the CLI, logging in, initializing a new site, building the project, and deploying it to production. It also includes steps for linking to a GitHub repository for continuous deployment. ```shell # Install Netlify CLI npm install -g netlify-cli # Login netlify login # Initialize site netlify init # Build and deploy netlify build netlify deploy --prod # Continuous deployment (link to GitHub) netlify link # Netlify will auto-deploy on every push to main ``` -------------------------------- ### Install Official JSONResume TypeScript Types Source: https://docs.jsonresume.org/developers Installs the official TypeScript types for JSONResume, enabling type checking and autocompletion for resume structures. This package is installed as a development dependency. ```bash npm install --save-dev @types/resume-schema ``` -------------------------------- ### Check Installed JSONResume Themes Source: https://docs.jsonresume.org/cli Lists globally or locally installed npm packages and filters for those starting with 'jsonresume-theme'. ```bash # Global themes ``` ```bash npm list -g --depth=0 | grep jsonresume-theme ``` ```bash # Local project themes ``` ```bash npm list --depth=0 | grep jsonresume-theme ``` -------------------------------- ### Node.js PDF Text Extraction for JSON Resume Source: https://docs.jsonresume.org/examples A Node.js script utilizing the 'pdf-parse' library to extract raw text content from a PDF file. The extracted text can then be processed by AI tools or custom parsing logic to convert it into the JSON Resume format. Requires 'pdf-parse' to be installed via npm. ```javascript const pdf = require('pdf-parse'); const fs = require('fs'); async function convertPDFToJSON(pdfPath) { const dataBuffer = fs.readFileSync(pdfPath); const data = await pdf(dataBuffer); const text = data.text; console.log('Extracted text from PDF:'); console.log(text); console.log('\nCopy this text to an AI tool for JSON Resume conversion'); // Alternatively, implement custom parsing logic here return text; } convertPDFToJSON('resume.pdf'); ``` ```bash npm install pdf-parse node convert-pdf.js ``` -------------------------------- ### Multilingual JSON Resume Example (English) Source: https://docs.jsonresume.org/examples An example of a JSON resume in English, following the standard schema. This version includes sections for basics, work experience, education, skills, and languages. ```json { "basics": { "name": "Yuki Tanaka", "label": "Software Engineer", "email": "yuki.tanaka@example.com", "phone": "+81-90-1234-5678", "url": "https://yukitanaka.dev", "summary": "Software engineer with 5 years of experience in web development. Specialized in React, Node.js, and cloud technologies. Fluent in Japanese and English.", "location": { "city": "Tokyo", "countryCode": "JP" } }, "work": [ { "name": "Tech Company Japan", "position": "Senior Software Engineer", "startDate": "2021-04-01", "summary": "Building cloud-based SaaS applications for enterprise customers.", "highlights": [ "Led frontend development for customer portal (100K+ users)", "Mentored 3 junior engineers", "Improved application performance by 40%" ] } ], "education": [ { "institution": "University of Tokyo", "area": "Computer Science", "studyType": "Bachelor", "startDate": "2015-04-01", "endDate": "2019-03-31" } ], "skills": [ { "name": "Frontend", "keywords": ["React", "TypeScript", "Next.js"] }, { "name": "Backend", "keywords": ["Node.js", "Python", "PostgreSQL"] } ], "languages": [ { "language": "Japanese", "fluency": "Native" }, { "language": "English", "fluency": "Fluent (TOEIC 950)" } ] } ``` -------------------------------- ### CLI Installation and Usage (Bash) Source: https://docs.jsonresume.org/themes Provides commands for installing and using the `resume-cli` tool to serve and export resumes locally with specified themes. It covers global installation, theme installation, serving, and exporting. ```bash # Install the CLI npm install -g resume-cli # Install a theme npm install jsonresume-theme-professional # Serve with theme resume serve --theme professional # Export with theme resume export resume.pdf --theme professional ``` -------------------------------- ### Install resume-cli Globally (npm on Windows) Source: https://docs.jsonresume.org/cli Installs the `resume-cli` package globally using npm on Windows. It's recommended to run the command prompt as an administrator to avoid permission issues. ```shell # Run as Administrator npm install -g resume-cli ``` -------------------------------- ### Exporting Multiple Resume Versions with Different Themes Source: https://docs.jsonresume.org/cli This example shows how to create and export multiple versions of a resume tailored for different roles, using separate JSON files and applying specific themes during the export process. ```bash # Create different resumes for different roles resume-fullstack.json resume-backend.json resume-frontend.json # Export each with appropriate theme resume export fullstack.pdf --theme professional < resume-fullstack.json resume export backend.pdf --theme stackoverflow < resume-backend.json ``` -------------------------------- ### Install Figma Plugin CLI and Create Plugin Files Source: https://docs.jsonresume.org/faq This snippet details the steps to install the Figma plugin CLI using npm and subsequently create the necessary files (manifest.json, code.ts, ui.html) for a new Figma plugin project. ```bash # Install Figma plugin CLI npm install -g @figma/plugin-typings # Create plugin mkdir figma-json-resume cd figma-json-resume # Create files touch manifest.json code.ts ui.html ``` -------------------------------- ### JSON Resume Skills Section Example Source: https://docs.jsonresume.org/examples An example of how to structure the 'skills' section in a JSON Resume. It allows categorizing skills with a name, proficiency level, and associated keywords. Levels can indicate expertise. ```json { "skills": [ { "name": "Category Name (e.g., Programming Languages)", "level": "Expert/Advanced/Intermediate/Beginner", "keywords": ["Skill 1", "Skill 2", "Skill 3"] } ] } ``` -------------------------------- ### Serve Resume Locally with Live Reload Source: https://docs.jsonresume.org/cli Starts a local development server to preview the resume with live reloading. This is useful for theme development and quick iterations. It supports custom ports and themes. ```shell # Start server (default: http://localhost:4000) resume serve # Specify a custom port resume serve --port 8080 # Use a specific theme resume serve --theme professional # Use a local theme directory for theme development resume serve --theme ./my-theme ``` -------------------------------- ### Multilingual JSON Resume Example (Japanese) Source: https://docs.jsonresume.org/examples An example of a JSON resume translated into Japanese. It mirrors the structure of the English version but contains Japanese text for all relevant fields, showcasing multilingual support. ```json { "basics": { "name": "田中 ゆき", "label": "ソフトウェアエンジニア", "email": "yuki.tanaka@example.com", "phone": "+81-90-1234-5678", "url": "https://yukitanaka.dev", "summary": "5年間のWeb開発経験を持つソフトウェアエンジニア。React、Node.js、クラウド技術を専門としています。日本語と英語が堪能です。", "location": { "city": "東京", "countryCode": "JP" } }, "work": [ { "name": "テックカンパニージャパン", "position": "シニアソフトウェアエンジニア", "startDate": "2021-04-01", "summary": "エンタープライズ向けクラウドベースSaaSアプリケーションの開発", "highlights": [ "顧客ポータルのフロントエンド開発をリード(10万人以上のユーザー)", "3人のジュニアエンジニアをメンタリング", "アプリケーションパフォーマンスを40%改善" ] } ], "education": [ { "institution": "東京大学", "area": "コンピュータサイエンス", "studyType": "学士", "startDate": "2015-04-01", "endDate": "2019-03-31" } ], "skills": [ { "name": "フロントエンド", "keywords": ["React", "TypeScript", "Next.js"] }, { "name": "バックエンド", "keywords": ["Node.js", "Python", "PostgreSQL"] } ], "languages": [ { "language": "日本語", "fluency": "ネイティブ" }, { "language": "英語", "fluency": "流暢(TOEIC 950点)" } ] } ``` -------------------------------- ### Example Commit Message Source: https://docs.jsonresume.org/developers An example of a commit message following Conventional Commits standards. This format helps in automating changelog generation and understanding the nature of changes. ```git feat(api): add resume validation endpoint Implements JSON schema validation for resume uploads. Uses AJV validator with JSON Resume schema v1.0.0. Closes #123 ``` -------------------------------- ### JSON Resume Education Section Example Source: https://docs.jsonresume.org/examples An example of how to structure the 'education' section in a JSON Resume. It includes fields for institution, dates, area of study, and courses. Ensure dates follow ISO 8601 format. ```json { "education": [ { "institution": "University Name", "url": "https://university.edu", "area": "Your Major", "studyType": "Bachelor/Master/PhD", "startDate": "2015-09-01", "endDate": "2019-05-31", "score": "3.8", "courses": ["Course 1", "Course 2", "Course 3"] } ] } ``` -------------------------------- ### CI/CD Workflow for Deploying Resume to GitHub Pages Source: https://docs.jsonresume.org/cli This GitHub Actions workflow automates the deployment of a resume to GitHub Pages. It checks out the code, sets up Node.js, installs the resume CLI, validates the resume, exports it to HTML, and deploys the output to the gh-pages branch. ```yaml name: Deploy Resume on: push: branches: [main] jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '18' - name: Install CLI run: npm install -g resume-cli - name: Validate Resume run: resume validate resume.json - name: Export to HTML run: resume export index.html --theme professional - name: Deploy to GitHub Pages uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: . publish_branch: gh-pages ``` -------------------------------- ### Data Scientist JSON Resume Example Source: https://docs.jsonresume.org/examples A comprehensive example of a JSON Resume for a Data Scientist. It includes basic information, work history, education, publications, and skills. This structure is useful for programmatically generating resumes or profiles. ```json { "basics": { "name": "Dr. Priya Sharma", "label": "Senior Data Scientist | Machine Learning Engineer", "email": "priya.sharma@example.com", "phone": "(555) 456-7890", "url": "https://priyasharma.com", "summary": "Data scientist with 8+ years of experience building machine learning models and data pipelines. Expert in Python, TensorFlow, and statistical analysis. Ph.D. in Statistics with focus on predictive modeling and causal inference. Proven track record of delivering business impact through data-driven solutions.", "location": { "city": "New York", "region": "New York", "countryCode": "US" }, "profiles": [ { "network": "GitHub", "username": "priyasharma", "url": "https://github.com/priyasharma" }, { "network": "LinkedIn", "username": "priyasharma", "url": "https://linkedin.com/in/priyasharma" }, { "network": "Kaggle", "username": "priyasharma", "url": "https://kaggle.com/priyasharma" } ] }, "work": [ { "name": "Netflix", "position": "Senior Data Scientist", "location": "Los Gatos, CA", "url": "https://netflix.com", "startDate": "2020-02-01", "summary": "Lead data scientist for recommendation systems team. Build and deploy ML models serving 200M+ subscribers.", "highlights": [ "Developed deep learning recommendation model improving user engagement by 15%", "Built A/B testing framework processing 1B+ daily events", "Led project to personalize homepage thumbnails, increasing CTR by 30%", "Mentored 3 junior data scientists and presented at internal ML summit", "Deployed models to production using TensorFlow Serving and Kubernetes", "Published research on recommendation systems at RecSys 2022 conference" ] }, { "name": "Airbnb", "position": "Data Scientist", "location": "San Francisco, CA", "url": "https://airbnb.com", "startDate": "2017-06-01", "endDate": "2020-01-31", "summary": "Data scientist on pricing team. Built pricing models and analytics tools.", "highlights": [ "Created dynamic pricing model increasing host revenue by 12% ($500M annual impact)", "Built demand forecasting model with 95% accuracy for 50+ cities", "Developed feature engineering pipeline reducing model training time by 60%", "Conducted causal inference studies to measure impact of product changes", "Collaborated with product and engineering teams on 10+ major launches" ] }, { "name": "Insight Data Science", "position": "Data Science Fellow", "location": "New York, NY", "url": "https://insightdatascience.com", "startDate": "2016-09-01", "endDate": "2017-05-31", "summary": "Intensive fellowship program transitioning from academia to industry data science.", "highlights": [ "Built fraud detection system using XGBoost and neural networks", "Processed 10M+ transaction records using Spark and AWS EMR", "Achieved 98% precision and 92% recall on fraud detection", "Presented project to 50+ hiring companies" ] } ], "education": [ { "institution": "Columbia University", "url": "https://columbia.edu", "area": "Statistics", "studyType": "Ph.D.", "startDate": "2011-09-01", "endDate": "2016-05-01", "summary": "Dissertation: 'Bayesian Methods for Causal Inference in Observational Studies'", "courses": [ "Statistical Learning", "Bayesian Statistics", "Causal Inference", "Time Series Analysis" ] }, { "institution": "University of California, Berkeley", "url": "https://berkeley.edu", "area": "Mathematics", "studyType": "Bachelor of Arts", "startDate": "2007-09-01", "endDate": "2011-05-01", "score": "3.95" } ], "publications": [ { "name": "Deep Learning for Personalized Recommendations at Scale", "publisher": "ACM RecSys 2022", "releaseDate": "2022-09-18", "url": "https://dl.acm.org/doi/example", "summary": "Novel deep learning architecture for recommendation systems handling billions of items" }, { "name": "Causal Inference in High-Dimensional Settings", "publisher": "Journal of the American Statistical Association", "releaseDate": "2018-03-01", "url": "https://tandfonline.com/example", "summary": "Methods for estimating causal effects with many confounding variables" } ], "skills": [ { "name": "Programming", "level": "Expert", "keywords": [ "Python", "R", "SQL", "Scala", "Bash" ] }, { "name": "Machine Learning", "level": "Expert", "keywords": [ "TensorFlow", "PyTorch", "Scikit-learn", "XGBoost", "Keras", "Deep Learning", "Natural Language Processing", "Computer Vision", "Recommendation Systems", "Time Series Analysis", "Causal Inference", "Statistical Modeling" ] }, { "name": "Big Data", "level": "Advanced", "keywords": [ "Spark", "Hadoop", "AWS EMR", "Databricks", "SQL", "NoSQL" ] }, { "name": "Cloud", "level": "Advanced", "keywords": [ "AWS", "Azure", "GCP", "Docker", "Kubernetes" ] }, { "name": "Tools", "level": "Expert", "keywords": [ "Git", "Jupyter Notebooks", "VS Code", "PyCharm", "Tableau", "Looker" ] } ] } ``` -------------------------------- ### Install Zod for JSON Resume Validation Source: https://docs.jsonresume.org/developers Install the Zod library using npm. Zod is a TypeScript-first schema declaration and validation library that provides type safety. ```bash npm install zod ``` -------------------------------- ### Theme Development Workflow Source: https://docs.jsonresume.org/cli Outlines the steps for creating and serving a custom resume theme locally. This involves creating a theme directory, setting up a package.json, defining a render function, and then serving the resume with the local theme. ```shell # 1. Create a theme directory mkdir my-custom-theme cd my-custom-theme # 2. Create theme package.json npm init -y # 3. Create index.js with render function # (see Theme Development section) # 4. Serve your resume with the local theme cd .. resume serve --theme ./my-custom-theme # 5. Edit theme files - server auto-reloads ``` -------------------------------- ### Merge Multiple JSON Resumes (Node.js) Source: https://docs.jsonresume.org/examples This Node.js script merges multiple JSON Resume files into a single combined resume. It reads resume files, combines common sections like 'work' and 'education', deduplicates skills, and sorts work experience by start date. This is useful for consolidating information from various sources into a unified resume. ```javascript const fs = require('fs'); function mergeResumes(resumePaths) { const resumes = resumePaths.map((path) => JSON.parse(fs.readFileSync(path, 'utf8')) ); const merged = { basics: resumes[0].basics, // Use first resume's basics work: [], education: [], skills: [], projects: [], volunteer: [], awards: [], publications: [], }; // Merge all arrays resumes.forEach((resume) => { if (resume.work) merged.work.push(...resume.work); if (resume.education) merged.education.push(...resume.education); if (resume.skills) merged.skills.push(...resume.skills); if (resume.projects) merged.projects.push(...resume.projects); if (resume.volunteer) merged.volunteer.push(...resume.volunteer); if (resume.awards) merged.awards.push(...resume.awards); if (resume.publications) merged.publications.push(...resume.publications); }); // Deduplicate skills by name const skillMap = new Map(); merged.skills.forEach((skill) => { if (!skillMap.has(skill.name)) { skillMap.set(skill.name, skill); } else { // Merge keywords if skill already exists const existing = skillMap.get(skill.name); if (skill.keywords) { existing.keywords = [ ...new Set([...(existing.keywords || []), ...skill.keywords]), ]; } } }); merged.skills = Array.from(skillMap.values()); // Sort work by start date (most recent first) merged.work.sort((a, b) => new Date(b.startDate) - new Date(a.startDate)); return merged; } // Usage const merged = mergeResumes([ 'resume-tech.json', 'resume-design.json', 'resume-consulting.json', ]); fs.writeFileSync('resume-combined.json', JSON.stringify(merged, null, 2)); console.log('Resumes merged successfully!'); ``` -------------------------------- ### Create a JSON Resume Theme Package (Shell) Source: https://docs.jsonresume.org/faq Demonstrates the steps to create a new theme package for JSON Resume. Includes creating a directory, initializing an npm package, defining the `render` function in `index.js`, and publishing to npm. ```shell # Create new theme package mkdir jsonresume-theme-yourname cd jsonresume-theme-yourname # Initialize npm init # Create index.js cat > index.js << 'EOF' function render(resume) { return `