JMPAUL for agents

A headless way into this site. Two audiences: hiring agents evaluating Jason Paul for a role, and assistants helping people find or support his apps.

REST · JSONMCP · Streamable HTTPAgent Skills · SKILL.mdllms.txt

Status: Remote W2 (full-time employee) engineering roles (updated 2026-09-17). Everything served here is public; nothing requires a key. Reads are cached and rate limited per IP; writes are delivered to a human by email.

Quick start

curl

Plain JSON over HTTPS.

curl http://www.jmpaul.com/api/v1/profile
curl "http://www.jmpaul.com/api/v1/experience?tech=Kubernetes"
curl http://www.jmpaul.com/resume.md

MCP

Stateless Streamable HTTP. Works with Claude Code, Claude Desktop, Cursor, and any MCP client.

claude mcp add --transport http jmpaul http://www.jmpaul.com/mcp

Agent Skills

Drop a SKILL.md into your agent and it knows how to use this site.

curl -LO http://www.jmpaul.com/skills/jmpaul-hiring.zip
unzip jmpaul-hiring.zip -d ~/.claude/skills/

Hiring

Profile, career history, skills, resume, and public GitHub activity, plus a structured way to send a role. The candidate reads every inquiry himself.

EndpointWhat you get
GET /api/v1/profileAvailability, target roles, focus areas, signature metrics, languages and technologies, education, contact and sharing policy.
GET /api/v1/experienceEvery role, newest first, with summary, highlights and tech. Filter with ?q=, ?tech=, ?category=engineering|leadership|founder|education. Single role: /api/v1/experience/{id}.
GET /api/v1/skillsLanguages, technologies, and per-skill usage derived from experience (where, first and last year, current).
GET /resume.md · GET /resume.jsonResume as Markdown, or in JSON Resume format. Rendered live from the same data as the timeline.
GET /api/v1/activityGitHub commit counts by organization and language, recent-weeks totals. Counts only, from the Commit City cache.
POST /api/v1/inquiriesSend a specific role. Required: company, role, contact_email. Recommended: job_url or description, compensation, work_mode, employment_type, agent. Returns an id; check GET /api/v1/inquiries/{id}.
curl -X POST http://www.jmpaul.com/api/v1/inquiries \
  -H 'Content-Type: application/json' \
  -d '{"company":"Acme","role":"Staff Engineer, Data Platform",
       "contact_email":"recruiter@acme.com","job_url":"https://acme.com/jobs/123",
       "compensation":"$210k-$240k + equity","work_mode":"remote","employment_type":"W2 full-time",
       "agent":"Acme Sourcing Agent (acme.com)"}'

Products

Catalog with per-platform store data, a download redirect, and a support endpoint. No product ships a direct binary; downloads go through the App Store, Google Play, or the web app.

Cure Crystals · cure-crystals

Holistic wellness & crystal identification

ios android web

JSON →

Alpha Desk · alpha-desk

Trading desk intelligence

web

JSON →

NFT Hot or Not · nft-hot-or-not

Tinder-style swipes for NFTs

ios android web

JSON →

EndpointWhat you get
GET /api/v1/productsAll products (?status=live hides retired entries). Single: /api/v1/products/{id}.
GET /api/v1/products/{id}/download?platform=ios|android|web302 to the store or web app. Without platform, the options as JSON.
POST /api/v1/supportBug, feature request, or question for a product. Required: product, email, message. Optional: kind, name, platform, app_version, subject.

MCP server

POST http://www.jmpaul.com/mcp speaks JSON-RPC 2.0 over Streamable HTTP in stateless mode (protocol versions 2025-03-26 through 2025-11-25). No sessions, no SSE stream, no auth.

Toolsget_profile, search_experience, get_skills, get_resume, get_activity, submit_inquiry, list_products, get_product, get_download_link, submit_support_request
Resourcesjmpaul://resume.md, jmpaul://resume.json, jmpaul://profile.json, jmpaul://products.json, jmpaul://llms-full.txt
Promptsevaluate_fit(job_description), app_help(product, question)
curl -X POST http://www.jmpaul.com/mcp -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_download_link","arguments":{"id":"cure-crystals","platform":"android"}}}'

Agent Skills

Two skills in the open SKILL.md format. The index at /skills/index.json lists them with zip downloads.

jmpaul-hiringHow to evaluate the candidate for a role and submit an inquiry. zip
jmpaul-appsHow to find, download, and file support for the apps. zip

Discovery

/llms.txt · /llms-full.txtWhere to start, and everything in one text file.
/openapi.jsonOpenAPI 3.1 for the REST API.
/.well-known/agent-card.jsonAgent card listing the REST, MCP, and Skills interfaces.
/.well-known/api-catalogRFC 9727 API catalog (linkset).
/robots.txtAgents are welcome; runtime and vendor directories are off limits.

Limits and policy

Reads120 requests per minute per IP. Responses carry ETag and Cache-Control; send If-None-Match.
Writes5 inquiries and 5 support requests per hour per IP. 429 carries Retry-After.
SharingEverything served by this API is public and may be quoted or summarized. Do not infer or fabricate details that are not present here (compensation history, citizenship, clearances, certifications, age). Use the inquiry endpoint for roles; include the job description or a link so the candidate can evaluate fit. Automated bulk outreach that is not tied to a specific role will be ignored.
PrivacyRequests are logged (time, path, IP, user agent) to protect the endpoints. Inquiry and support contents go to the site owner only. Privacy policy.