create a job_description.json schema
Just a schema that describes job descriptions, it would be great to have llm's digest it to improve AI utilities.
I've created an initial version here https://github.com/jsonresume/jsonresume.org/blob/master/apps/registry/scripts/jobs/gpted.js#L72
Reviewing this issue - the job description schema already exists at apps/registry/scripts/jobs/gpted/jobSchema.js with a comprehensive structure including:
- Basic info (title, company, type, date, description)
- Location details (address, city, region, countryCode)
- Remote work level (Full/Hybrid/None)
- Salary, experience level
- Responsibilities, qualifications, skills arrays
- Meta information (version, canonical URL, lastModified)
Status: Implementation exists but not documented/published
Recommendation:
- Extract this schema to a dedicated package or document
- Publish it similarly to how the JSON Resume Schema is published
- Add documentation on jsonresume.org about the job description format
- Consider adding TypeScript types for the schema
- Add validation utilities similar to resume validation
Should we create a separate repository under the jsonresume org for this schema (e.g., job-schema), similar to how resume-schema exists?
✅ Already Implemented!
This has been completed! The job_description.json schema exists and is actively being used in the HN job processing pipeline.
Schema Location
Primary file: apps/registry/job-schema.json
JS module: apps/registry/scripts/jobs/job-parser/jobSchema.js
Schema Structure
The schema includes:
- Basic fields: title, company, type, date, description
- Location: address, city, region, countryCode, remote (Full/Hybrid/None)
- Compensation: salary field
- Experience: experience level (Senior/Mid/Junior)
- Requirements: responsibilities, qualifications arrays
- Skills: array with name, level, and keywords
- Metadata: canonical URL, version, lastModified
Current Usage
The schema is actively used in:
- AI job parsing - GPT-4.5-mini extracts structured data matching this schema
-
Database storage - Jobs table stores JSON in
gpt_contentcolumn - Semantic search - Embeddings generated from schema fields
- Job matching - Resume-job similarity computed using schema data
Documentation
Comprehensive documentation exists at:
-
apps/registry/scripts/jobs/README.md- Full pipeline documentation - Zod schema validation in job parser
- Example job data in
job-parser/prompts/jobProcessing/exampleJobData.js
Benefits for LLMs
As you mentioned in the original issue, the schema makes it easy for LLMs to:
- ✅ Parse unstructured job postings into structured JSON
- ✅ Extract key information (title, company, skills, salary)
- ✅ Standardize job data across different sources
- ✅ Enable semantic job-resume matching
- ✅ Power AI features like job recommendations
The schema is production-ready and processing hundreds of HN job postings daily through automated GitHub Actions workflows.
Closing as completed!