CV builder (ask.chaipat.cc)
Component
The CV builder, scripts/build-cv.mjs, writes his one-page CV from the knowledge graph on Node.js at every deploy, so the CV and the site can never disagree. It takes his roles with their highlights, his studies, key work in the order he chose, the skills he lists, his languages and interests.
A GitHub Actions job then prints it to PDF with Playwright and a headless Chromium, shrinking the type until it fits one page, and commits the file whenever the graph changes. The result is served at /cv and as /cv.pdf.
In the knowledge graph
CV builder and the 5 things it is linked to. Open any dot for its page, or explore it in the full graph.
As data
Everything on this page is read from triples in the knowledge graph. These are the 12 it states about CV builder, and 2 more its ontology implies; the console runs SPARQL over the whole graph, here in your browser.
@prefix id: <https://ask.chaipat.cc/id/> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix cj: <https://ask.chaipat.cc/ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . id:SiteCV a cj:Component ; rdfs:label "CV builder (ask.chaipat.cc)" ; cj:shortLabel "CV builder" ; cj:componentOf id:ThisSite ; cj:sourceFile "scripts/build-cv.mjs" ; cj:handles id:PDFFormat ; cj:uses id:NodeJS , id:GitHubActions , id:Playwright ; cj:description "Builds the one-page CV from the graph; a GitHub Actions job prints it to PDF with a headless browser on every change." ; cj:article "https://ask.chaipat.cc/wiki/SiteCV"^^xsd:anyURI ; cj:implementationDigest "sha256:b4fedea47522c60dd2c3fe488c96b40c0b4f54d60eb6aec65996adb56eefc5e6" .