Think of it as HTTP for hiring data
Traditional resumes are written for printers, then awkwardly parsed back into databases — and locked inside whichever platform you built them on. open.rooster.cv flips that around: applicants provide clean, consent-aware data once, and any conforming system can render or import it. The data belongs to the applicant, and it gets more useful as more tools adopt the standard. It has a companion for the other side of the match: open.rooster.jobs, the open job-posting standard.
{
"protocol": { "name": "open.rooster.cv", "version": "0.1" },
"profile": {
"identity": { "displayName": "Maya Chen" },
"work": [{ "employer": "Northstar Apps", "title": "Analyst" }]
},
"consent": { "purpose": "job_application" },
"metadata": { "language": "en-US" }
}Why a structured resume?
One schema, many tools
A single JSON Schema describes identity, experience, education, skills, preferences, and consent — so any conforming tool can read or render it.
Consent-aware by design
Every document carries purpose, scope, retention, and revocation, so employers and platforms know exactly how data may be used.
No vendor lock-in
Career data belongs to the applicant. The protocol is open and portable, not tied to any single ATS or resume builder.
ATS-friendly ingestion
Structured data removes brittle PDF parsing. Applicant tracking systems can import clean fields directly.
Validated end to end
AJV-based validation against open.rooster.cv/0.1 guarantees documents are well-formed before they are submitted.
Extensible
An extensions mechanism lets domains (academic, government, healthcare) add fields without breaking the core.
Why adopt now: agents are here
Roughly a third of active job seekers already use AI agents to search and apply — and today those agents scrape brittle HTML and re-parse PDFs, because hiring never had a data layer. Open, validated JSON on both sides of the match is what makes hiring machine-readable without giving up human review. Interop, not rivalry: open.rooster.cv converts losslessly to and from JSON Resume, and open.rooster.jobs serializes to schema.org JobPosting — adopters give up nothing.
HR departments
Ask your job boards and ATS vendors for open.rooster.jobs feeds and open.rooster.cv import. Structured, consent-aware data means cleaner pipelines, less parsing loss, and machine-readable vacancy-status disclosure as ghost-job regulations arrive.
Convert a posting in 2 minutes →Job boards & aggregators
Serve one clean feed instead of being scraped a hundred ways. Every document maps to schema.org JobPosting, so Google-for-Jobs traffic is untouched — agents and aggregators are pure upside.
See the serialization mapping →Agent & tool builders
Stop scraping. Consume company feeds at /api/feeds/{company}, validate over the public API, and build against stable schemas with reference code in the open-rooster org.
For developers
Build importers, exporters, and integrations against a stable JSON Schema. Validate with any JSON Schema 2020-12 validator — or ours, over the public API (/api/validate/cv, /api/validate/jobs). Adopt the extensions mechanism for your domain-specific fields.
For HR teams
Receive structured, consent-aware applications you can ingest directly into your systems — no scraping, no lost fields. Pair it with our matching tools to find candidates faster.
See the HR platform →