logo
Kurashizu Blogwhere ideas flow
  • Home
  • News
  • Blog
  • About
  • Home
  • News
  • Blog
  • About

© 2026 Kurashizu. All rights reserved.

Admin·New Post·Service Status
Powered by Cloudflare·31.10.26
← Back to news

Show HN: OJCP – an open protocol for agent-consumable job data

Original article
ojcp.dev|12 points|2 comments|by fraywing|Aug 12, 2026

Introducing OJCP: An Open Protocol for Agent-Consumable Job Data

OJCP (Open Job Context Protocol) is a v0.1 draft specification designed as the universal standard for how AI agents locate, analyze, and interact with employment opportunities.

Rather than relying on fragmented web scraping, OJCP allows agents to navigate the job market through a structured, machine-readable framework.

Governance Model: To ensure neutrality, OJCP is managed by an independent steering committee. It is a coalition-driven effort involving ATS vendors, job boards, staffing agencies, employers, and agent platforms. Each member holds exactly one seat with no veto power, ensuring no single vendor controls the standard.


🌐 The Vision: Built for the Agentic Web

The goal of OJCP is to replace opaque, human-only application portals with a shared language that is structured, discoverable, and respects user privacy.

Key Capabilities

  • Universal MCP Integration: Any client utilizing the Model Context Protocol (MCP) can immediately execute search_jobs, get_job_detail, and begin_application.
  • Automated Discovery: Providers host a manifest at /.well-known/ojcp.json, allowing agents to automatically detect available tools and application workflows.
  • Privacy-First Matching: By utilizing resume embeddings, agents can calculate fit-scoring without the need to transmit Personally Identifiable Information (PII).
  • Contextual Ranking: Agents provide a CandidateContext to receive personalized results, where providers return a fit_score and a fit_rationale.
  • Native Browser Access: Through navigator.modelContext, browser-based agents can interact with OJCP tools directly.

The Fit-Score Logic

The matching process can be represented as a function of the candidate's profile and the job requirements: Fit Score=F(CandidateContext,JobPosting)→[0,1]\text{Fit Score} = \mathcal{F}(\text{CandidateContext}, \text{JobPosting}) \rightarrow [0, 1]Fit Score=F(CandidateContext,JobPosting)→[0,1]


🛠 Technical Specification

OJCP consists of seven core schemas and six standardized MCP tools. While search_jobs is a mandatory implementation, all other tools are highly recommended. For proprietary features, providers should use namespaced identifiers (e.g., acme:get_referral_link).

Standard MCP Tools

  1. search_jobs (Required)
  2. get_job_detail
  3. get_employer_context
  4. begin_application
  5. submit_application
  6. check_application_status

Schema Definitions

SchemaFileKey Components
Job Manifestmanifest.jsonojcp_version, provider, tools, mcp_endpoint, auth, rate_limits
Job Postingjob-posting.jsonExtends schema.org/JobPosting with ojcp_id, skills_required, experienceLevel, apply_paths, urgency
Candidate Contextcandidate-context.jsonconsent_scope, skills, experience_years, employment_type_preference
Agent Declarationagent-declaration.jsonagent_id, acting_on_behalf_of, interaction_mode, user_consent_token
Verification Stepverification-step.jsonstep_id, type, verifier_id, verification_url, human_required
Verification Proofverification-proof.jsonJWS proof containing iss, aud, sub, iat, exp, nonce (No PII); subject_hash (SHA-256)
Verifier Manifestverifier-manifest.jsonFound at /.well-known/ojcp-verifier.json; includes verification_types, proof_format (jws|jws+jwe), public_keys_url (JWKS)

⚙️ How It Works

The lifecycle of an OJCP interaction follows a linear progression from discovery to tracking.

  1. Discover: The agent queries the OJCP Registry or probes the provider's /.well-known/ojcp.json to identify tools and auth requirements.
  2. Search: The agent executes search_jobs. If CandidateContext is provided, the provider returns a personalized fit_score.
  3. Apply: The agent initiates the process via begin_application, passing the agent_declaration and a user consent token.
  4. Track: The agent monitors the pipeline using check_application_status for structured updates.

📖 Examples & Implementation

Discovery Payload

Below is an example of a provider's manifest file:

{
  "ojcp_version": 0.1,
  "provider": {
    "name": "Acme Careers",
    "employer_id": "acme",
    "description": "Global leader in industrial innovation",
    "industries": ["manufacturing", "engineering"],
    "hq_location": { "city": "Chicago", "state": "IL", "country": "US" }
  },
  "mcp_endpoint": "https://careers.acme.com/ojcp/mcp",
  "tools": [
    "search_jobs", 
    "get_job_detail", 
    "get_employer_context", 
    "begin_application", 
    "check_application_status"
  ],
  "apply_paths": ["ats_direct", "provider_hosted"],
  "auth": {
    "required": true,
    "optional_scopes": ["apply", "candidate_data"]
  },
  "rate_limits": {
    "anonymous_rps": 10,
    "authenticated_rps": 50,
    "burst_limit": 100
  }
}

Normalized Apply Paths

OJCP categorizes application methods so agents can determine the best path of action.

TypeDescriptionAgent Support
ats_directDirect submission to ATS (e.g., Greenhouse, Lever)Varies
provider_hostedProvider manages flow and delivers to ATSFull Support
platform_nativeThird-party flow (e.g., Indeed Easy Apply)Limited
emailLegacy email submissionsNot Supported
external_redirectRedirect to an opaque external pageNot Supported
customNon-standard/Conversational mechanismsVaries

🚀 Get Started

OJCP Playground

Try the Live Playground

You can test the protocol against mock data using the following endpoints:

  • MCP Endpoint: /api/mcp
  • Manifest: /.well-known/ojcp.json

Available Test Actions:

  • Execute search_jobs (Filter by Min Salary or Remote)
  • Execute get_job_detail (Try ID: globex:sa-2026-004)
  • Execute begin_application (Requires Session Token)
  • Execute submit_application (Requires Mock Proof)
  • Execute check_status (Requires Application ID)

Contribution

Whether you are developing an agent, managing an ATS, or running a job board, the specification is open for contributions.

  • Read the Full Spec: Detailed security and tool requirements.
  • Explore Schemas: Access JSON Schemas for JobPosting and AgentDeclaration.
  • GitHub: View the source and submit PRs.