Overview
- Base URL
- https://jordaoqualho.com/api
- Authentication
- None. No key or sign-up, and every call is read-only and safe to repeat, so there is no separate sandbox.
- Format
- JSON in and out. Errors are RFC 9457 problem details (application/problem+json) with a stable code and a hint.
- CORS and caching
- Open CORS, so browsers can call it directly. GET responses are cached at the edge for up to an hour.
- Privacy
- Nothing you send is stored, including job descriptions.
Quickstart
Three calls cover most questions about my experience.
# Profile summary
curl https://jordaoqualho.com/api/profile
# Roles that used AWS
curl "https://jordaoqualho.com/api/experience?technology=AWS"
# Check a job description
curl -X POST https://jordaoqualho.com/api/job-fit \
-H 'content-type: application/json' \
-d '{"job_description":"Senior Backend Engineer: Node.js, TypeScript, AWS"}'Endpoints
GET /api- List every endpoint ·
getApiIndex GET /api/profile- Get the profile ·
getProfile GET /api/cases- List case studies ·
listEngineeringCases GET /api/cases/{slug}- Get one case study ·
getCaseDetail GET /api/experience- Query work history ·
queryExperience POST /api/job-fit- Match a job description ·
evaluateJobFit
Full request and response schemas are in openapi.json.
Errors
Every error, including unknown paths under /api, returns JSON problem details, never an HTML page.
404 not_found- The path doesn't exist. GET /api lists every endpoint.
404 case_not_found- Unknown slug. GET /api/cases for valid slugs.
400 invalid_request- Malformed body or unknown query parameter. The hint names the fix.
405 method_not_allowed- Wrong HTTP method. The Allow header lists valid ones.
{
"type": "https://jordaoqualho.com/developers/#error-case_not_found",
"title": "Case study not found",
"status": 404,
"detail": "No case study has the slug 'payments'.",
"code": "case_not_found",
"hint": "Use one of: financial-onboarding-incident, … GET /api/cases lists them.",
"docs": "https://jordaoqualho.com/openapi.json"
}Function calling and MCP
Import https://jordaoqualho.com/openapi.json as a ChatGPT GPT Action, or map each operation to a tool in any function-calling framework. Every operation has a unique operationId, a description and typed parameters. For Claude, Cursor and other MCP clients, connect the MCP server instead.
Machine-readable files
/openapi.json- OpenAPI 3.1 contract: operationIds, typed parameters and response schemas.
/.well-known/api-catalog- RFC 9727 API catalog linking the spec and these docs.
/api- JSON index of every endpoint.
/llms.txt- When to use this profile, and reading order.
/api/mcp- MCP server (https://jordaoqualho.com/api/mcp), same data as tools.