{"id":13609909,"url":"https://github.com/hexagontk/codecv","last_synced_at":"2025-07-11T14:31:55.520Z","repository":{"id":65219775,"uuid":"586619949","full_name":"hexagontk/codecv","owner":"hexagontk","description":"Manage your resume as structured data: CV format specification and tools to manage CV documents.","archived":false,"fork":false,"pushed_at":"2025-07-06T21:42:23.000Z","size":499,"stargazers_count":159,"open_issues_count":0,"forks_count":2,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-07-06T22:32:51.405Z","etag":null,"topics":["cv","graalvm-native-image","hacktoberfest","json","json-schema","kotlin","resume","toml","yaml"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hexagontk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["hexagontk"]}},"created_at":"2023-01-08T19:08:01.000Z","updated_at":"2025-07-03T05:37:58.000Z","dependencies_parsed_at":"2023-02-12T22:30:37.106Z","dependency_job_id":"64de0861-7e61-42b0-a751-8c5f06a4a58a","html_url":"https://github.com/hexagontk/codecv","commit_stats":null,"previous_names":["hexagontk/codecv"],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/hexagontk/codecv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexagontk%2Fcodecv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexagontk%2Fcodecv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexagontk%2Fcodecv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexagontk%2Fcodecv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hexagontk","download_url":"https://codeload.github.com/hexagontk/codecv/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexagontk%2Fcodecv/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264709597,"owners_count":23652222,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cv","graalvm-native-image","hacktoberfest","json","json-schema","kotlin","resume","toml","yaml"],"created_at":"2024-08-01T19:01:39.187Z","updated_at":"2025-07-11T14:31:55.248Z","avatar_url":"https://github.com/hexagontk.png","language":"Kotlin","funding_links":["https://github.com/sponsors/hexagontk"],"categories":["Kotlin"],"sub_categories":[],"readme":"\n# ![CodeCV](logo.png)\nManage your resume as structured data.\n\nThis project has two sides:\n* CV format specification and documentation\n* Reference tool to cover the basis of CV maintenance\n\nHere you can see a [3 min quick demo](https://youtu.be/t4aOSJibuzs).\n\n\u003e [!NOTE]\n\u003e Follow the @hexagontk Twitter account to be updated with the improvements on this and other\n\u003e development tools.\n\n## 💻 Install\n1. Download the latest binary from the [releases page](https://github.com/hexagontk/codecv/releases)\n2. Copy or link the binary to a directory in the PATH\n3. Type `codecv --help` to check how to use the reference tool\n\n## 🤔 Motivation\nThe format was developed and evolved with the simple requirement to store and maintain my own CV.\n\nThe main driver for this development was to separate content from presentation. Also using open\nstandards that prevented the need to keep documents updated upon new Word Processor versions.\n\nOver the years my CV has become big and the need to split it in different files and provide\ndifferent versions has arisen (i.e.: a brief version and a full one, one with partial education and\nother only with finished degrees, etc.). So a modular approach has been implemented to fulfill this\nrequirement.\n\n## 🎯 Goals\n1. Readable CVs in code form\n2. Leverage existing editors features (use a JSON schema version widely supported)\n3. Allow documents to be imported and exported easily from/to other sites\n4. Create documents in a flexible way. Composing files to make your CV modular.\n5. Not only state your career's details, but also record details of what happened (i.e.: why you\n   quit a job, etc.). You can think of it as a professional diary\n6. Batteries included: provide a reference tool to manage and maintain CV documents\n\n## ♻️ Differences with other CV formats\n* Allow to compose CVs in a modular way (including different files to create profiles) creating\n  different views from the data\n* It is field compatible with other formats as [JSON Resume], [Eures] and [Manfred MAC]\n  (import/export functionality pending)\n\n[JSON Resume]: https://jsonresume.org\n[Eures]: https://eures.ec.europa.eu/index_en\n[Manfred MAC]: https://github.com/getmanfred/mac\n\n## 📄 CV Format Schema\nThe CV JSON schema is located at [/cv.schema.json](/cv.schema.json). The URL to use on the CVs will\nbe: `https://raw.githubusercontent.com/hexagontk/codecv/\u003cversion\u003e/cv.schema.json`. Being `version`\nthe schema version (`master` can be used to link to the latest published version).\n\nThe schema can be used to validate documents in different formats (YAML, JSON and TOML at the\nmoment).\n\nThe format allows the use of the `$schema` key to reference the schema URL (this key is used by some\neditors to attach a schema to a file).\n\nSome formats (YAML and TOML) allow the use of a ['shebang'][shebang] to make them \"executable\" and\nlaunch the CV server automatically upon execution. Check the examples for more information.\n\nThe schema is also published in the [JSON Schema Repository](https://www.schemastore.org/json). This\nmeans that CV documents will be supported out of the box at some code editors (most notably\n[VS Code] and [JetBrains IDEs]).\n\nIt implies that you will get autocomplete, documentation and validation for the following file\npatterns:\n- `cv.{json,yaml,yml,toml}`\n- `*.cv.{json,yaml,yml,toml}`\n\nFiles can end with a locale code. I.e.:\n- `*\\[_en_US].cv.{json,yaml,yml,toml}`\n\n[shebang]: https://en.wikipedia.org/wiki/Shebang_(Unix)\n[VS Code]: https://code.visualstudio.com\n[JetBrains IDEs]: https://www.jetbrains.com\n\n## 🧰 Examples\nYou can check some CV examples (in different formats) on the [/examples](/examples) directory.\n\nThere are some modular CVs definitions in the [/examples/modular](/examples/modular) directory.\nThese CV files use the `Resources` key to include different files in different cv documents,\nallowing to have different documents with different data each one.\n\n## 🎨 Templates\nThe templates are attached to documents with the `Templates` key (each document can get a different\ntemplate).\n\nA sample template is provided as an example and a reference to create different ones. The template\nengine used to render it is the [Pebble Template Engine].\n\n[Pebble Template Engine]: https://pebbletemplates.io\n\n## 🤖 Reference Tool\nCompiling this project you will get an application with the following features:\n* Change a CV file data format (among JSON and YAML)\n* Check the schema documentation in HTML\n* Render a CV to a Web page (allowing it to be printed)\n\nTo compile this tool you will need a JDK 16+. After installing it, executing `gradlew build` on the\nproject root directory will create a binary on `/build/codecv/bin/codecv`.\n\nTo use the tool in CVs' [shebangs][shebang] you need to copy or link the binary to a directory in\nthe `$PATH` variable. On Unix systems you can do so with (assuming `~/.local/bin` is in the path):\n`ln -s \"$(pwd)/build/codecv/bin/codecv\" \"$HOME/.local/bin/codecv\"`\n\n## 🎚️️ Editor Settings\nJSON schemas are assigned to files based on patterns registered on a [central repository]. As the\nCodeCV format is not registered there yet, you may have to register it on your editor of choice.\n\nHowever, some editors (most notably Visual Studio Code) support schema binding via the `$schema` key\non the documents, if your editor support this convention, you won't need to change its settings.\n\n[central repository]: https://www.schemastore.org/json\n\n## 🤝 Contributing\nThis project is Open Source under the [MIT License](license.md). If you want to propose an\nimprovement, file a bug or resolve a usage doubt, you are absolutely encouraged to do so! Read the\n[contributing guide] for details on how to proceed on each case.\n\nAlso, if you want to contribute a new feature on the tool or a change on the schema. You can also\ndo so by creating an issue and filing a PR. Please read the [contributing guide] before doing so.\n\n[contributing guide]: https://github.com/hexagontk/codecv/contribute\n\n## ❤️ Support the Project\nIf you want to see more progress on this project, and see more developer targeted tools,\nspread the word on social networks! and don't forget to give it a ⭐!\n\nTo be notified on updates or new tools developed within the Hexagon organization. Follow the Twitter\naccount ([@hexagontk]) and the [GitHub organization].\n\nThanks for your support!\n\n[@hexagontk]: https://twitter.com/hexagontk\n[GitHub organization]: https://github.com/hexagonkt\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexagontk%2Fcodecv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhexagontk%2Fcodecv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexagontk%2Fcodecv/lists"}