# Data model

> The content files behind the site, the bot and the API: entries, lenses, skills, documents and tags.

## Files

| What | Path |
| --- | --- |
| experience entries | `content/corpus/experiences/<slug>.md` |
| education entries | `content/corpus/education/<slug>.md` |
| community entries | `content/corpus/community/<slug>.md` |
| project entries | `content/corpus/projects/<slug>.md` |
| role lenses | `content/corpus/lenses/<slug>.md` |
| bot skills | `content/corpus/skills/<name>.md` |
| profile document | `content/corpus/profile.md` |
| credentials document | `content/corpus/credentials.md` |
| capabilities document | `content/corpus/capabilities.md` |
| talks-and-writing document | `content/corpus/talks-and-writing.md` |
| thinking document | `content/corpus/thinking.md` |
| translation glossary | `content/corpus/i18n/glossary.json` |
| docs | `content/docs/{tutorials,how-to,explanation}/<slug>.md` |

## Entry frontmatter

| Field | Rule |
| --- | --- |
| `slug` | kebab-case id; must equal the file name (content/corpus/<dir>/<slug>.md) |
| `kind` | one of experience, education, community, project |
| `title` | official role or project title (job titles stay in English in every locale) |
| `org` | organisation name |
| `orgUrl` | optional https URL |
| `location` | optional |
| `start` | YYYY-MM |
| `end` | YYYY-MM or 'present' |
| `period` | optional display label that overrides start/end (e.g. '2010 — 2011') |
| `approx` | optional boolean: dates are approximate (shown as years) |
| `tags` | industry tags: it, engineering, ai, devrel, web3, business, marketing, consulting, hospitality, community, creative |
| `lenses` | role lenses (see GET /api/admin/schema → lenses) |
| `skills` | list of skills / tools |
| `metrics` | list of key results — short, factual, with numbers where known |
| `summary` | one-sentence short form |
| `featured` | optional boolean: show on the home page |
| `timeline` | optional boolean (projects only): also show in the career timeline |
| `proof` | list of { type: article\|video\|code\|talk\|paper\|site, title, url? } |
| `image` | optional path under web/public, e.g. /img/jenks/xero-talk.webp |
| `imageAlt` | required when image is set |
| `body` | Markdown with ## sections: Overview, What Jenks did, Achievements, Why it matters to employers |

## Tags

`it` · `engineering` · `ai` · `devrel` · `web3` · `business` · `marketing` · `consulting` · `hospitality` · `community` · `creative`

## Role lenses

- `head-of-ai` — Head of AI
- `ai-transformation-consultant` — AI transformation
- `engineering-manager` — Engineering manager
- `solution-architect` — Solution architect
- `system-integrator` — System integrator
- `support-engineer` — Support engineer
- `ict-specialist` — ICT specialist
- `developer-advocate` — Developer advocate
- `developer-evangelist` — Developer evangelist
- `digital-marketer` — Digital marketer
- `hospitality` — Hospitality

## Languages

English is the source. CI translates into `zh`, `zh-hant`, `ja`, `fr`, `es`, `eo` (AI-assisted, hash-cached, with a fixed glossary for headings and role names). Official job titles stay in English.
