{"openapi":"3.0.3","info":{"title":"PlatPhorm Jobs API","description":"Canonical interview coordination, reference-team collaboration, prep-room, observation, debrief, calendar, kanban, invite-link, MCP, and human-centered job-search workflow layer. Public-safe reads are available by default. Protected mutations require PLATPHORM_API_KEY.","version":"0.6.0","contact":{"name":"PlatPhormNews","url":"https://platphormnews.com"}},"servers":[{"url":"https://jobs.platphormnews.com","description":"Production"}],"paths":{"/api/health":{"get":{"operationId":"system_health_canonical_public_route_alias_","summary":"System health (canonical public route alias)","tags":["System"],"responses":{"200":{"description":"Success"}}}},"/api/v1/health":{"get":{"operationId":"versioned_system_health_canonical_public_route_alias_","summary":"Versioned system health (canonical public route alias)","tags":["System"],"responses":{"200":{"description":"Success"}}}},"/api/docs":{"get":{"operationId":"openapi_json_document_canonical_public_route_","summary":"OpenAPI JSON document (canonical public route)","tags":["System"],"responses":{"200":{"description":"Success"}}}},"/api/v1/interviews":{"get":{"operationId":"listInterviews","summary":"Public-safe counts; protected requests also receive interview records","tags":["Interviews"],"responses":{"200":{"description":"Success"}}},"post":{"operationId":"createInterview","summary":"Create an interview in protected server storage","tags":["Interviews"],"responses":{"200":{"description":"Success"},"401":{"description":"PLATPHORM_API_KEY required"}},"security":[{"PlatPhormApiKey":[]},{"PlatPhormBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company","role","date"],"additionalProperties":true}}}}}},"/api/v1/interviews/{id}":{"get":{"operationId":"getInterview","summary":"Read protected server-side interview detail","tags":["Interviews"],"responses":{"200":{"description":"Success"},"401":{"description":"PLATPHORM_API_KEY required"}},"security":[{"PlatPhormApiKey":[]},{"PlatPhormBearer":[]}]},"put":{"operationId":"updateInterview","summary":"Update protected server-side interview detail","tags":["Interviews"],"responses":{"200":{"description":"Success"},"401":{"description":"PLATPHORM_API_KEY required"}},"security":[{"PlatPhormApiKey":[]},{"PlatPhormBearer":[]}]},"delete":{"operationId":"deleteInterview","summary":"Delete protected server-side interview detail","tags":["Interviews"],"responses":{"200":{"description":"Success"},"401":{"description":"PLATPHORM_API_KEY required"}},"security":[{"PlatPhormApiKey":[]},{"PlatPhormBearer":[]}]}},"/api/v1/team":{"get":{"operationId":"listTeam","summary":"Public-safe counts; protected requests also receive team records","tags":["Team"],"responses":{"200":{"description":"Success"}}},"post":{"operationId":"addTeamMember","summary":"Add a protected server-side team member","tags":["Team"],"responses":{"200":{"description":"Success"},"401":{"description":"PLATPHORM_API_KEY required"}},"security":[{"PlatPhormApiKey":[]},{"PlatPhormBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"additionalProperties":true}}}}}},"/api/v1/interviews/{id}/invites":{"post":{"operationId":"generateInviteLink","summary":"Generate a token-scoped invite link","tags":["Invites"],"responses":{"200":{"description":"Success"},"401":{"description":"PLATPHORM_API_KEY required"}},"security":[{"PlatPhormApiKey":[]},{"PlatPhormBearer":[]}]}},"/api/v1/invites/{token}":{"get":{"operationId":"getInvite","summary":"Public-safe token-scoped invite preview","tags":["Invites"],"responses":{"200":{"description":"Success"}}}},"/api/v1/invites/{token}/accept":{"post":{"operationId":"acceptInvite","summary":"Accept a token-scoped team invite","tags":["Invites"],"responses":{"200":{"description":"Success"}}}},"/api/v1/grok/parse-jd":{"post":{"operationId":"parseJobDescriptionWithGrok","summary":"Parse a job description with xAI/Grok when configured","tags":["AI"],"responses":{"200":{"description":"Success"},"401":{"description":"PLATPHORM_API_KEY required"}},"security":[{"PlatPhormApiKey":[]},{"PlatPhormBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["jobDescriptionText"],"additionalProperties":true}}}}}},"/api/v1/jd/parse":{"post":{"operationId":"parseJobDescription","summary":"Provider-neutral JD parse alias","tags":["AI"],"responses":{"200":{"description":"Success"},"401":{"description":"PLATPHORM_API_KEY required"}},"security":[{"PlatPhormApiKey":[]},{"PlatPhormBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["jobDescriptionText"],"additionalProperties":true}}}}}},"/api/v1/network/calendar":{"get":{"operationId":"getCalendarStatus","summary":"Public-safe Calendar integration status","tags":["Integrations"],"responses":{"200":{"description":"Success"}}},"post":{"operationId":"createCalendarEvent","summary":"Create or sync a Calendar interview event","tags":["Integrations"],"responses":{"200":{"description":"Success"},"401":{"description":"PLATPHORM_API_KEY required"}},"security":[{"PlatPhormApiKey":[]},{"PlatPhormBearer":[]}]}},"/api/v1/network/kanban":{"post":{"operationId":"createKanbanTask","summary":"Create or sync a Kanban interview task","tags":["Integrations"],"responses":{"200":{"description":"Success"},"401":{"description":"PLATPHORM_API_KEY required"}},"security":[{"PlatPhormApiKey":[]},{"PlatPhormBearer":[]}]}},"/api/v1/network/mcp":{"get":{"operationId":"public_safe_mcp_hub_status","summary":"Public-safe MCP hub status","tags":["System"],"responses":{"200":{"description":"Success"}}}},"/api/v1/integrations/status":{"get":{"operationId":"public_safe_jobs_integration_status","summary":"Public-safe Jobs integration status","tags":["System"],"responses":{"200":{"description":"Success"}}}},"/api/events":{"get":{"operationId":"listEvents","summary":"Public-safe event outbox summary","tags":["Events"],"responses":{"200":{"description":"Success"}}},"post":{"operationId":"appendEvent","summary":"Append a protected event outbox entry","tags":["Events"],"responses":{"200":{"description":"Success"},"401":{"description":"PLATPHORM_API_KEY required"}},"security":[{"PlatPhormApiKey":[]},{"PlatPhormBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["type"],"additionalProperties":true}}}}}},"/api/webhooks":{"post":{"operationId":"receiveWebhook","summary":"Receive a protected platform webhook","tags":["Webhooks"],"responses":{"200":{"description":"Success"},"401":{"description":"PLATPHORM_API_KEY required"}},"security":[{"PlatPhormApiKey":[]},{"PlatPhormBearer":[]}]}},"/api/mcp":{"get":{"operationId":"getMcpMetadata","summary":"Public MCP metadata and usage","tags":["MCP"],"responses":{"200":{"description":"Success"}}},"post":{"operationId":"jsonRpcMcp","summary":"JSON-RPC 2.0 MCP endpoint. Private reads and mutations require PLATPHORM_API_KEY.","tags":["MCP"],"responses":{"200":{"description":"Success"}}}}},"components":{"securitySchemes":{"PlatPhormApiKey":{"type":"apiKey","in":"header","name":"X-PlatPhorm-API-Key","description":"Protected actions also accept Authorization: Bearer $PLATPHORM_API_KEY."},"PlatPhormBearer":{"type":"http","scheme":"bearer","bearerFormat":"PLATPHORM_API_KEY","description":"Authorization: Bearer $PLATPHORM_API_KEY"}}},"security":[],"x-platphorm":{"service":"jobs.platphormnews.com","storageMode":"ephemeral-memory","primaryDiscoverySources":["https://platphormnews.com/api/network/graph","https://base.platphormnews.com/sitemap-index.xml"],"integrations":["https://calendar.platphormnews.com","https://kanban.platphormnews.com","https://mcp.platphormnews.com","https://trace.platphormnews.com","https://docs.platphormnews.com","https://webhooks.platphormnews.com","https://browserops.platphormnews.com","https://evals.platphormnews.com","https://jules.platphormnews.com","https://onboard.platphormnews.com","https://monitor.platphormnews.com","https://sheets.platphormnews.com","https://decks.platphormnews.com","https://claws.platphormnews.com"],"publicAccess":true,"protectedAuth":"PLATPHORM_API_KEY","trustPolicy":"Web dashboard, public-safe discovery, browser-based operations, trusted-domain discovery, standard route compliance, Vercel metadata capture, trace inspection, and agentic workflow discovery are intentionally supported for public read-only debugging and operator workflows. Mutating, administrative, ingestion, replay, fork, remediation, deployment, sync, test-triggering, reporting, and write actions require PLATPHORM_API_KEY."},"x-network":{"parent":"https://platphormnews.com","mcpHub":"https://mcp.platphormnews.com/api/mcp","integrations":["https://calendar.platphormnews.com","https://kanban.platphormnews.com","https://mcp.platphormnews.com","https://trace.platphormnews.com","https://docs.platphormnews.com","https://webhooks.platphormnews.com","https://browserops.platphormnews.com","https://evals.platphormnews.com","https://jules.platphormnews.com","https://onboard.platphormnews.com","https://monitor.platphormnews.com","https://sheets.platphormnews.com","https://decks.platphormnews.com","https://claws.platphormnews.com"],"sitemap":"https://jobs.platphormnews.com/sitemap.xml"}}