{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://github.com/Eurobotics-Association/barba-cv/raw/refs/heads/main/schema/barba-cv.schema.json", "title": "Barba-CV Schema", "description": "Open-source deterministic JSON schema for structured CV data. Barba-CV v1.2 keeps the CV payload at root for backward compatibility while introducing a meta block and an extensions area.", "type": "object", "additionalProperties": false, "required": [ "barba_cv_version" ], "properties": { "barba_cv_version": { "type": "string", "description": "Version of the Barba-CV payload format. Version 1 corresponded to raw Barba-CV JSON without formal schema metadata. Version 1.2 introduces this field, a meta block, and an extensions area.", "examples": [ "1.2" ] }, "personal_info": { "$ref": "#/$defs/personalInfo" }, "profile_summary": { "type": "string", "description": "Free-text professional summary or profile statement. May be empty or omitted." }, "position_sought": { "type": "array", "description": "Target roles or positioning statements describing the candidate's desired position or professional orientation. Often used as the headline of the CV.", "items": { "type": "string" } }, "experiences": { "type": "array", "description": "Professional experience entries. May be empty or omitted.", "items": { "$ref": "#/$defs/experienceItem" } }, "education": { "type": "array", "description": "Education entries. May be empty or omitted.", "items": { "$ref": "#/$defs/educationItem" } }, "skills": { "$ref": "#/$defs/skills" }, "certifications": { "type": "array", "description": "Certification entries. May be empty or omitted.", "items": { "$ref": "#/$defs/certificationItem" } }, "languages": { "type": "array", "description": "Languages known by the candidate. Language level remains flexible and human-readable.", "items": { "$ref": "#/$defs/languageItem" } }, "interests": { "type": "array", "description": "Interests, hobbies, or other personal activities.", "items": { "type": "string" } }, "project_achievements": { "type": "array", "description": "Structured project or achievement extracts derived from the CV. Replaces the legacy projects_achievements_extracts key.", "items": { "$ref": "#/$defs/projectAchievementItem" } }, "meta": { "type": "object", "additionalProperties": false, "properties": { "cv_uuid": { "$ref": "#/$defs/stringOrNull", "description": "Unique identifier for the CV within processing pipelines or databases. Typically a UUID generated by the CV processing engine." }, "cv_title": { "$ref": "#/$defs/stringOrNull", "description": "Human-readable title for the CV used for export, UI display, or filename generation." }, "parsing_errors": { "type": "array", "description": "Parser or mapping issues detected during extraction. In v1 this lived at root; in v1.2 it moves under meta.", "items": { "type": "string" } }, "ats_processed": { "type": [ "boolean", "null" ], "description": "Whether the JSON content reflects ATS-compatible post-processing rather than raw extraction only." }, "processor_engine": { "$ref": "#/$defs/stringOrNull", "description": "Engine or processor identifier that generated or revised the payload, e.g. barba_cv_engine_1.1." }, "parsed_at": { "$ref": "#/$defs/stringOrNull", "description": "Human-readable parse timestamp or ingestion timestamp. Left flexible to avoid rejecting operational data." }, "source_original_text": { "$ref": "#/$defs/stringOrNull", "description": "Original extracted text source when stored alongside the payload." }, "source_ats_revised_text": { "$ref": "#/$defs/stringOrNull", "description": "ATS-oriented revised text representation when available." }, "original_filename": { "$ref": "#/$defs/stringOrNull" }, "source_format": { "$ref": "#/$defs/stringOrNull", "description": "Original source format such as pdf, docx, html, or text." }, "ingested_at": { "$ref": "#/$defs/stringOrNull", "description": "Human-readable timestamp for database ingestion or downstream storage." }, "embedded_at": { "$ref": "#/$defs/stringOrNull", "description": "Human-readable timestamp indicating when vector embedding or downstream enrichment occurred." }, "extraction_confidence_overall": { "type": [ "number", "null" ], "minimum": 0, "maximum": 1, "description": "Optional overall confidence score for AI extraction, between 0 and 1." } } } } }