OJCPOJCP
v0.1 Draft Specification

The open standard for
|

Part of the Open Agent Jobs Initiative. OJCP defines how AI agents discover, reason over, and act on job opportunities. Built on MCP. Interoperable with schema.org. Designed for the agentic web.

Why OJCP

Built for the agentic web

A shared protocol so AI agents and job providers speak the same language — structured, discoverable, privacy-respecting.

MCP-Native Tools

OJCP tools are valid MCP tools. Any MCP client can call search_jobs, get_job_detail, and begin_application out of the box.

Structured Discovery

Providers expose a manifest at /.well-known/ojcp.json. Agents discover capabilities, tools, and apply paths automatically.

Normalized Apply Paths

A standard taxonomy of application mechanisms — from ATS-direct to agent-ready flows — so agents know exactly how to apply.

Consent-First Privacy

Candidate data is opt-in and scoped. Resume embeddings enable fit-scoring without transmitting PII. Agents self-declare identity.

Agent-Aware Ranking

Pass CandidateContext for personalized results. Providers return fit_score and fit_rationale alongside standard job data.

WebMCP Ready

Browser-native agents can access OJCP tools via navigator.modelContext. Same schemas, same tools, new surface.

Specification

Schemas & Tools

OJCP defines seven core schemas and six standard MCP tools. Providers MUST implement search_jobs; all others are recommended. Custom tools use namespaced names (e.g., acme:get_referral_link).

Job Manifest
manifest.json

Discovery endpoint at /.well-known/ojcp.json

  • ojcp_version
  • provider
  • tools
  • mcp_endpoint
  • auth
  • rate_limits
JobPosting
job-posting.json

Extends schema.org/JobPosting with agent-specific fields

  • ojcp_id
  • skills_required
  • experienceLevel
  • apply_paths
  • urgency
CandidateContext
candidate-context.json

Consent-scoped candidate profile for personalized results

  • consent_scope
  • skills
  • experience_years
  • employment_type_preference
AgentDeclaration
agent-declaration.json

Agent self-identification for audit trails

  • agent_id
  • acting_on_behalf_of
  • interaction_mode
  • user_consent_token
VerificationStep
verification-step.json

Identity verification action for human completion

  • step_id
  • type
  • verifier_id
  • verification_url
  • human_required
VerificationProof
verification-proof.json

JWS proof with required claims: iss, aud, sub, iat, exp, nonce — no PII

  • step_id
  • verifier_id
  • proof_token (JWS)
  • subject_hash (SHA-256)
  • issued_at
  • expires_at
VerifierManifest
verifier-manifest.json

Discovery document hosted at /.well-known/ojcp-verifier.json

  • verifier_id
  • verification_types
  • proof_delivery_methods
  • proof_format (jws|jws+jwe)
  • signing_algorithms
  • public_keys_url (JWKS)

How It Works

Four steps from discovery to application

Discover

Agent probes /.well-known/ojcp.json or queries the OJCP Registry to find providers. The manifest declares available tools, apply paths, and authentication requirements.

Search & Evaluate

Agent calls search_jobs with optional candidate_context for personalized ranking. Each result includes fit_score, apply paths, and structured metadata.

Apply

Agent calls begin_application with an agent_declaration and the candidate's consent token. The provider returns required fields and a session for multi-step flows.

Track

Agent calls check_application_status to monitor progress. Providers emit structured status updates throughout the hiring pipeline.

Examples

See it in action

From discovery to application — real OJCP payloads your agents can use today.

/.well-known/ojcp.json
{
  "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
  }
}

Apply Paths

Normalized application taxonomy

OJCP standardizes the fragmented landscape of application mechanisms into a taxonomy agents can reason over.

TypeDescriptionAgent Submission
ats_directApply directly via ATS (Workday, Greenhouse, Lever, etc.)
Varies
provider_hostedProvider controls the apply flow and delivers to ATS
Full Support
platform_nativeThird-party platform owns the flow (e.g., Indeed Apply, Easy Apply)
Limited
emailLegacy email-based application
Not Supported
external_redirectRedirect to opaque external page
Not Supported
customCatch-all for non-standard apply mechanisms (homegrown, conversational, etc.)
Varies

Live Playground

Try the OJCP API

This site is a live OJCP provider. Fire real tool calls against mock data — the same endpoint MCP clients connect to.

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

Get Started

Build with OJCP

Whether you're a job board, ATS, or agent developer — the spec is open and contributions are welcome.

Read the Spec

The full OJCP v0.1 specification covers tools, schemas, apply paths, and security requirements.

View Specification

Explore Schemas

JSON Schemas for JobPosting, CandidateContext, AgentDeclaration, and the Manifest.

Browse Schemas

Contribute

OJCP is open. File issues, propose changes, or build a reference implementation.

Open an Issue

Join the Discussion

Shape the future of agent-ready hiring. We welcome ATS vendors, job boards, and agent developers.

Get Involved