1. Overview
The Applicant Profile Protocol (APP) is an open, JSON-based specification for representing a job applicant's professional profile in a structured, interoperable, and extensible manner.
APP is designed to act as a canonical source of truth for applicant data, enabling lossless export to existing formats such as ATS schemas, HR-XML, Europass, JSON Resume, and document-based formats (PDF, DOCX).
Key properties:
- Human-readable
- Machine-validatable (JSON Schema)
- AI-compatible (optional enrichment and semantic layers)
- Export-friendly and lossless
- Versioned and evolvable
1.1 Why APP? (Motivation)
The Problem
Existing standards for representing applicant/resume data are fragmented, outdated, or locked to specific vendors:
| Standard | Limitation |
|---|---|
| HR-XML | Heavyweight XML, enterprise-focused, not developer-friendly |
| Europass | EU-specific, tied to government infrastructure, not AI-ready |
| JSON Resume | Developer-friendly but limited: no confidence metrics, no semantic layer, no evidence support |
| ATS Vendor APIs | Proprietary, fragmented, no interoperability between platforms |
How APP Solves This
APP combines the best ideas from all existing standards into one modern, open protocol:
- Canonical Source of Truth — APP is the master format; export to HR-XML, Europass, JSON Resume, or any ATS without data loss.
- AI & ML Ready — Built-in support for skill confidence scores (0.0–1.0), usage recency, embedding references, and JSON-LD semantic layer.
- Verifiable Evidence — Optional evidence layer supports credential URLs, hashes, and W3C Verifiable Credentials.
- Developer-First — JSON format, readable schema, simple validation, modern tooling.
- Enterprise-Ready — Layered architecture scales from simple profiles to rich enterprise data.
- Open Governance — Community-driven, no vendor lock-in, Apache-2.0 license.
2. Definitions
Normative keywords: MUST, SHOULD, MAY follow RFC 2119 semantics.
- Profile: A single APP document describing one applicant.
- Core Layer: The required data model for an APP profile.
- Enrichment Layer: Optional analytical data (e.g., confidence metrics).
- Semantic Layer: Optional JSON-LD overlay for linked data interoperability.
- Evidence Layer: Optional verifiable references to support claims.
- Export Layer: Derived representations (e.g., HR-XML, Europass, JSON Resume).
2.1 Namespace and Identifiers
The canonical namespace for the Applicant Profile Protocol (APP) is:
https://app-protocol.org/
All specifications, schemas, and extensions MUST use this namespace.
- Versioned spec URI:
https://app-protocol.org/spec/1.0 - Schema URI:
https://app-protocol.org/schema/app-1.0.json - URN prefix:
urn:app-protocol:profile:<uuid>
3. Design Goals
- JSON-first: Canonical representation is JSON.
- Layered Architecture: Core separated from enrichment, semantic, and evidence.
- Export-Oriented: Designed to convert cleanly into other standards.
- Non-Opinionated: No mandatory external taxonomy (ESCO, O*NET, etc.).
- AI-Ready: Confidence metrics, evidence, and embeddings supported.
- Versioned: Explicit protocol and schema versioning.
Non-goals:
- Replace ATS/HR systems
- Enforce a single skills taxonomy
- Define hiring or ranking logic
- Act as an identity/auth protocol (may integrate)
4. Protocol Architecture
Applicant Profile Protocol (APP) uses a layered model:
- Core Layer (Required, stable)
- Enrichment Layer (Optional, analytical)
- Semantic Layer (Optional, JSON-LD)
- Evidence Layer (Optional, verifiable data)
- Export Layer (Derived representations)
Only the Core Layer is required for protocol compliance.
5. Core Layer (Required)
5.1 Top-Level Structure
{
"protocol": {
"name": "ApplicantProfileProtocol",
"shortName": "APP",
"version": "1.0.0",
"uri": "https://app-protocol.org/spec/1.0",
"id": "urn:app-protocol:profile:<uuid>"
},
"basics": {},
"experience": [],
"education": [],
"skills": [],
"projects": [],
"credentials": [],
"languages": [],
"preferences": {},
"metadata": {},
"semantic": {},
"enrichment": {},
"evidence": []
}
5.2 basics
{
"name": { "given": "First", "family": "Last", "middle": "Optional" },
"headline": "Professional title",
"summary": "Short professional summary (max 2000 chars)",
"location": {
"country": "US",
"region": "Texas",
"city": "Austin",
"remote": true
},
"contact": {
"email": "user@example.com",
"phone": "+1-555-555-5555",
"website": "https://example.com",
"social": [
{ "label": "GitHub", "url": "https://github.com/username" }
]
}
}
5.3 experience
{
"role": "Job title",
"organization": { "name": "Company", "industry": "Technology" },
"start": "YYYY-MM",
"end": "YYYY-MM",
"current": true,
"employmentType": "Full-time",
"highlights": ["Key achievement"],
"technologies": ["Tech used"]
}
5.4 education
{
"institution": "University name",
"area": "Field of study",
"degree": "Degree or certification",
"start": "YYYY",
"end": "YYYY",
"completed": true,
"grade": "GPA or classification"
}
5.5 skills
{
"name": "Skill name",
"category": "ProgrammingLanguage | Framework | Tool | SoftSkill | Domain",
"level": "Beginner | Intermediate | Advanced | Expert",
"years": 5,
"confidence": 0.85,
"usage": { "lastUsed": "YYYY-MM", "contexts": ["Backend"] },
"evidenceRef": ["cred:aws-sa-2024"]
}
confidence is self-reported or computed (0.0–1.0). Exporters MAY ignore unsupported fields.
5.6 projects
{
"name": "Project name",
"description": "Short description",
"role": "Contributor role",
"stack": ["Technologies"],
"links": { "website": "https://...", "repository": "https://..." },
"highlights": ["Impact or result"]
}
5.7 credentials
{
"name": "Credential name",
"issuer": "Issuing organization",
"date": "YYYY-MM",
"id": "Credential identifier",
"url": "https://issuer.example/verify/123"
}
5.8 languages
{
"name": "Language name",
"proficiency": "Basic | Conversational | Professional | Fluent | Native"
}
5.9 preferences
{
"employmentType": ["Full-time", "Contract"],
"workMode": ["Remote", "Hybrid"],
"relocation": false,
"preferredLocations": ["US-CA", "US-TX"]
}
5.10 metadata
{
"created": "ISO-8601 timestamp",
"updated": "ISO-8601 timestamp",
"source": "SelfReported | Imported | Generated",
"tags": ["keyword-1", "keyword-2"]
}
6. Enrichment Layer (Optional)
The enrichment layer adds analytical or AI-oriented data:
- Skill confidence computation
- Experience weighting
- Career trajectory metrics
- Embedding references (vector IDs or URIs)
This layer MUST NOT alter core semantics.
7. Semantic Layer (Optional)
APP supports JSON-LD for semantic interoperability:
{
"@context": "https://schema.org",
"@type": "Person",
"name": "Example Person",
"knowsAbout": [
{ "@type": "DefinedTerm", "name": "TypeScript", "inDefinedTermSet": "ESCO" }
]
}
The semantic layer MAY reference: Schema.org, ESCO, O*NET, or custom vocabularies.
8. Evidence Layer (Optional)
Evidence provides verifiable backing for claims:
- Certificates
- Signed documents
- URLs and hashes
- Verifiable Credentials (W3C VCs)
9. Export Layer
APP is designed to export into:
- JSON Resume
- HR-XML
- Europass XML
- ATS-specific schemas
- PDF / DOCX / Markdown
Exporter guidance: Preserve meaning, gracefully degrade unsupported fields, avoid lossy round-trips. APP JSON is the source of truth.
10. Versioning
- Protocol versions follow Semantic Versioning (MAJOR.MINOR.PATCH).
- Breaking changes increment MAJOR.
- New optional fields increment MINOR.
- Fixes or clarifications increment PATCH.
11. Security & Privacy Considerations
- APP does not mandate storage or transport mechanisms.
- PII MUST be handled by implementers.
- Encryption, signing, and access control are recommended but out of scope.
- Evidence layer MAY include cryptographic proofs.
12. Governance (Proposed)
- Open specification with public versioned repository.
- Community-driven extensions (APP Enhancement Proposals).
- Backward compatibility encouraged; clear deprecation pathways.
13. Future Extensions (Non-Normative)
- Cryptographic signing
- Verifiable credentials
- AI embedding registries
- Skill taxonomy bindings
- Real-time profile updates
14. Examples
See examples/minimal.json and examples/full.json.
15. Changelog
- 1.0.0 (Draft): Initial public draft with Core, optional layers, schema, and examples.