jsonresume.org icon indicating copy to clipboard operation
jsonresume.org copied to clipboard

create a job_description.json schema

Open thomasdavis opened this issue 1 year ago • 1 comments

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

thomasdavis avatar May 29 '24 03:05 thomasdavis

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:

  1. Extract this schema to a dedicated package or document
  2. Publish it similarly to how the JSON Resume Schema is published
  3. Add documentation on jsonresume.org about the job description format
  4. Consider adding TypeScript types for the schema
  5. 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?

thomasdavis avatar Oct 29 '25 18:10 thomasdavis

✅ 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:

  1. AI job parsing - GPT-4.5-mini extracts structured data matching this schema
  2. Database storage - Jobs table stores JSON in gpt_content column
  3. Semantic search - Embeddings generated from schema fields
  4. 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!

thomasdavis avatar Dec 04 '25 07:12 thomasdavis