Start here
API and agent docs
I built three read-only ways for a program to read my work: a REST API over a small, carefully qualified selection of records, an MCP server over the published case studies, and plain-text files for anything that reads text. None of them needs an account or a key.
Pick a starting point
Read selected records
Seven read-only REST routes return a profile, work contexts, projects and capabilities, each with its sources and limits attached.
Make a first requestConnect an agent
Add the MCP server to Claude, Claude Code or another client, then ask it about the published case studies and practice notes.
Connect a clientFetch the plain text
llms.txt, llms-full.txt and a Markdown version of each case study, for anything that reads text.
See the files
The REST API and the MCP server are separate. REST serves a small selection of records, chosen and qualified one by one. MCP and the text files cover the whole published portfolio. Similar names do not mean the same fields or the same scope.
Your first request
There is no key to get. Send a GET with an Accept header and read the answer.
curl -s -H "Accept: application/json" https://jason.sonderman.info/api/v1/profileRead the full response
Derived at build time from the same approved data the API serves. It is an explanatory example, not a live capture, so check meta on the response you actually get.
{
"data": {
"capability_ids": [
"cap_leadership",
"cap_research",
"cap_systems"
],
"experience_ids": [
"exp_arcos",
"exp_cerner",
"exp_tvh"
],
"id": "pro_jason",
"name": "Jason Sonderman",
"qualifications": [
{
"kind": "scope",
"text": "Scoped professional account; no unreviewed employment titles, tenure, credentials or contact fields."
}
],
"revision": 1,
"sources": [
{
"availability": "not_publicly_available",
"id": "src_controltoweraccount",
"kind": "account",
"label": "Jason Sonderman retrospective account, with the required statement-specific limitations",
"public_url": null,
"qualifications": [
{
"kind": "uncertainty",
"text": "Retrospective account; original employer records not independently inspected. Private source material is not provided by this API."
}
],
"revision": 1,
"type": "source_reference"
},
{
"availability": "not_publicly_available",
"id": "src_learningjourneysaccount",
"kind": "account",
"label": "Jason Sonderman retrospective account, with the required statement-specific limitations",
"public_url": null,
"qualifications": [
{
"kind": "uncertainty",
"text": "Retrospective account; original employer records not independently inspected. Private source material is not provided by this API."
}
],
"revision": 1,
"type": "source_reference"
},
{
"availability": "not_publicly_available",
"id": "src_upliftaccount",
"kind": "account",
"label": "Jason Sonderman retrospective account, with the required statement-specific limitations",
"public_url": null,
"qualifications": [
{
"kind": "uncertainty",
"text": "Retrospective account; original employer records not independently inspected. Private source material is not provided by this API."
}
],
"revision": 1,
"type": "source_reference"
}
],
"type": "profile"
},
"meta": {
"api_version": "1",
"revision": "r_5dd98d79d429a73f252b7d8b2205b657b8962e9a5ff157d87fbacfb72e2ec638",
"coverage": "Selected qualified professional retrospective accounts: four selected studies, nineteen resources and seven assertions. Owner-approved selected content; no independent verification, media, raw sources or deployment authority.",
"example": false
},
"links": {
"self": "/api/v1/profile",
"profile": "/api/v1/profile",
"experience": "/api/v1/experience",
"projects": "/api/v1/projects",
"capabilities": "/api/v1/capabilities",
"openapi": "/api/openapi.json"
}
}Next, follow a link to a project or read the full REST reference.
Limits at a glance
| Topic | What to expect |
|---|---|
| Access | Anonymous and read-only. No key, no sign-in, no write operations. |
| Methods | GET, HEAD and OPTIONS. Anything else returns 405. |
| Query strings and bodies | Not accepted. There is no search, filter or paging; a request with one is rejected. |
| Format | JSON. Errors are application/problem+json. |
| Rate limit | 300 requests per address per 15 minutes when configured. A 429 carries Retry-After. Details. |
| Caching | Cache-Control: no-store on every response. |
| Browsers | CORS allows any origin without credentials. |
| Version | Route major /api/v1; meta.api_version is "1". |
What you can explore
The current selection contains a professional profile, three scoped work contexts, and four case-study accounts. Capabilities connect to specific work and supporting account-based evidence.
- ARCOS Control Tower Field Research covers UX field-research leadership. Leadership does not mean sole research authorship.
- TVH Uplift Design System covers Jason’s initial setup of design tokens, shared values used by interfaces, and his scoping of where their source files would live. Conor Sixta’s later completion and governance work is credited separately. The TVH work context also credits shared governance with Engineering Director Jennifer Dennon.
- Cerner Learning Journey Portal, the Healthcare Learning Management System pilot, covers initial discovery with product lead Megan McClukin. The work context preserves the shared research origins and Jason Wander’s vision.
- Harmony design system covers Jason’s architecture leadership and hands-on contribution at Arcos, including work with a senior designer on the token architecture. It also carries selected statements about how token descriptions and chip guidance explain intended use. Other contributors owned or completed parts of the component and implementation work, so the account does not claim sole authorship, universal adoption or ownership of every component.
What you might use it for
A recruiter could find a relevant example and prepare a more specific interview question. A hiring manager could follow a capability to the work used to support it and see who contributed. A developer could reuse the selected structured information in an authorized application. An AI agent with authorized access could summarize the records while retaining their attribution and limitations.
These are intended uses. They are not claims about measured recruiting results, application adoption or AI-answer accuracy.
How to read the information
The professional history was reviewed with Jason. The source descriptions identify retrospective accounts; original employer records were not independently inspected. A supporting evidence link describes the basis for a particular statement. It does not make that statement independently verified or establish sole authorship.
Capability links are editorial associations with selected examples, not proficiency ratings. A source with no public URL means the original material is not supplied through this API. Missing dates, titles, contact details and outcomes should remain unknown rather than be guessed.
Keep the explanation and limitations with any summary you reuse. The selection is a small, read-only view of professional information; it does not provide a complete career history. Images, original working files, private records and additional studies are outside the current selection.
Choose the correct environment
| Context | Origin and access | Evidence boundary |
|---|---|---|
| Proposed public origin | https://jason.sonderman.info |
The owner’s intended public location, released only by a separate owner decision. Treat the API as available only if an anonymous GET /api/v1/profile there returns application/json with meta.example set to false. Sign-in HTML, 401 or 404 means it is not available to you at that origin; do not look for it elsewhere. |
| Protected preview | https://major-revision-knowledge-center-phase2--jason-ux.netlify.app, source 6e75145ca284dda235ffb90488e9decf33128a93, deployment 6ad900b047fe292ab03c16fe |
Netlify sign-in is required. Anonymous HEAD requests to the docs, OpenAPI and API paths were denied with 401 on October 21, 2026, and signed-in reads succeeded. It is a review surface, not a public API or a surface for unattended agents, and it says nothing about the public origin. |
| Local instance | A loopback address such as http://127.0.0.1:4347, from a repository checkout |
A local read proves local functionality only. The Send Test Request button uses whichever origin served the page. |
No unattended login, cookie export, bearer/OAuth key or administration-token bypass is defined for the protected preview. Do not copy credentials. OpenAPI retains https://portfolio.example as a fictional design origin and Avery examples; override the base URL with the origin you have confirmed. Real TEXT19 data and fictional Avery fixtures are separate modes and must not be combined. An earlier private staging project, https://jason-ux-stage1-rest.netlify.app, is historical and not part of this release.
Shared scope and limitations
TEXT19 has nineteen distinct resources and seven qualified assertions across four selected studies. Historical confirmation is not independent inspection of employer records. Keep attribution, collaborator credit, evidence/source limits and qualifications with every explanation. Capabilities are editorial associations, not proficiency or hiring scores. Media is empty; null original-source URLs remain unknown.
Private job-search records and derivatives, raw editors, original employer evidence and private governance/approval records are excluded. CORS, no-store and hashes do not grant rights or prove global withdrawal. The developer guide explains the current revision header, conditional rate limiting and hold/redeploy behavior. Accessibility issues and unverified evidence are recorded for after Phase 2; no conformance or new audit pass is claimed.
What the project demonstrates
The API is a working example of approaching an unfamiliar technical discipline through product-design thinking. Jason began with the audiences, the questions they would ask and the information boundaries. Those needs shape the information architecture: how records and their relationships are organized. Implementation turns that structure into a working service, and documentation explains how to use it. Responses are checked against the selected records.
AI-assisted technical collaboration supported implementation. Jason’s responsibility was to define requirements, question assumptions, evaluate tradeoffs and decide what evidence would show that the approach worked. This illustrates a way of learning through delivery; it does not establish sole code authorship or a measured learning-speed or product-impact claim.