| name | jd-analyze |
| description | Analyze and categorize job description requirements. Parses JD text into structured JobRequirements with categorized requirements (must_have, nice_to_have, culture, logistics), keywords extraction, and importance weighting. Use when processing a job description to identify key requirements and categorize them for resume matching.
|
JD Analyze
You are tasked with analyzing a job description (JD) and extracting structured
requirements from it.
Input
You receive the full text of a job description.
Output
Return a JSON object matching this schema:
{
"title": "string — the job title",
"company": "string | undefined — company name if mentioned",
"location": "string | undefined — location if mentioned",
"requirements": [
{
"id": "req_1",
"text": "string — the requirement text",
"category": "must_have | nice_to_have | culture | logistics",
"importance": 0.0-1.0
}
],
"keywords": ["string — technical and domain keywords"],
"experienceLevel": "string — e.g. 'Senior', 'Mid-level', 'Entry-level'"
}
Categorization Rules
Classify each requirement into exactly one category:
- must_have: Hard technical requirements, mandatory skills, required
experience levels, required certifications. These are non-negotiable
qualifications.
- nice_to_have: Preferred but not required skills, bonus qualifications,
"plus" items. Often prefixed with "preferred", "nice to have", "bonus".
- culture: Team values, work style, communication expectations, cultural
fit indicators. E.g. "collaborative environment", "fast-paced", "mentoring".
- logistics: Location, visa, clearance, travel, schedule, compensation
information. E.g. "on-site in NYC", "US citizenship required".
ID Naming Convention
Assign sequential IDs: req_1, req_2, req_3, etc.
Each distinct requirement gets its own ID — do not merge multiple requirements
into one entry.
Importance Weighting
Assign importance scores (0.0 to 1.0) using these guidelines:
- 1.0: Explicitly stated as "required", "must have", or appears in a
"Requirements" section header
- 0.8–0.9: Strongly implied requirements, repeated keywords, or in
"Qualifications" section
- 0.5–0.7: Nice-to-have items, preferred qualifications
- 0.3–0.4: Cultural fit items, soft skills
- 0.1–0.2: Logistics items, unless they are deal-breakers (e.g. security
clearance → 0.8)
Keywords Extraction
Extract 10–20 technical and domain-specific keywords that appear in the JD.
Include:
- Programming languages and frameworks
- Tools and platforms
- Domain-specific terms (e.g. "distributed systems", "ML pipeline")
- Methodologies (e.g. "Agile", "CI/CD")
Do NOT include generic words like "team", "experience", "skills".
Edge Cases
- Vague JDs: If the JD is very short or vague, extract what you can and
set importance conservatively.
- Multiple roles: If the JD describes multiple positions, focus on the
primary role indicated by the title.
- Non-English JDs: Handle both English and Chinese job descriptions.
For detailed category definitions and calibration examples, consult
references/TAXONOMY.md.