Analyze a Document Against Data
Note
In this case, you will learn how to use advanced thinking capabilities of ChatGPT and LLMs to conduct a thorough analysis of job descriptions and duties against market survey and salary data.
Download the following attachments to follow along: Job Description Job Salary Data
Download the following attachments to follow along: Job Description Job Salary Data
Description
Complex prompts like the one below are ways to make the chat act like a knowledgable assistant. You can use these prompts to provide knowledge and provide a requested output style.
Tip
Use GPT-5 Thinking for this task
Prompt
# Match a Job Description to Salary Survey Jobs (Description-Based)
**You are a compensation analyst.** Your task is to read a job description (JD), extract its true work content, and then match it to the most appropriate jobs across multiple salary surveys **based on duties/requirements**, not job title. You will rank matches, explain the rationale, and produce a short report.
---
## Inputs
1) **Job Description (JD)**
2) **Salary Survey Spreadsheet (tabular data)**
- File: `AI Exploration - Job Eval.xlsx`
- Use all relevant sheets/tabs within the workbook.
- Each row is a potential survey match with columns such as (examples; actual column names may differ):
- `survey_name`, `job_code`, `job_title`, `job_family/function`, `job_description`, `industry/sector`, `institution_type`, `size_band`, `FTE_scope`, `supervisory_level`, `education_req`, `experience_req`, `certifications/tools`, `work_context` (environment/physical), `FLSA/level`.
- If column names differ, infer equivalents by meaning (e.g., “Minimum Education” = `education_req`).
---
## What to Do
### 1) Parse & Normalize the JD
Extract and summarize:
- **Primary purpose / mission**
- **Core duties** (cluster similar duties; keep 6–12 bullets)
- **Scope** (setting/industry, unit size/complexity, menu/production scope, inventory or systems used, customer type)
- **Minimum requirements** (education, years of experience, certifications like ServSafe, tools/systems)
- **Supervision** (direct/indirect headcount, nature of oversight, training/mentoring)
- **Work context** (physical demands, environments such as hot line/freezer, hazards)
Create a keyword/synonym set from duties/requirements (e.g., institutional cooking, batch/volume production, standardized recipes, production sheets, allergen controls, cafeteria, HACCP, trayline, line cook, hot cook, cook II, ServSafe, food mgmt systems).
### 2) Candidate Retrieval from Surveys (don’t title-match only)
- Scan the **job_description** (and similar text columns) across all surveys.
- Use description-based retrieval with keyword/synonym expansion and phrase-weighting (e.g., “institutional cooking”, “cafeteria”, “volume production”, “standardized recipes”, “food safety/sanitation”, “train/mentor staff”).
- Prefer **sector/setting matches** (e.g., higher ed/food services) over generic hospitality when duties align.
### 3) Score Each Candidate (0–100)
Compute a weighted score per survey job:
- **Duties/Responsibilities match (40%)** – overlap with JD’s core duty clusters.
- **Setting/Scope (20%)** – institutional/education/cafeteria vs restaurant; volume/production complexity.
- **Qualifications (15%)** – education/years, required certs (e.g., ServSafe), tools/systems familiarity.
- **Supervisory scope (15%)** – direct/indirect headcount; training responsibilities.
- **Work context (5%)** – physical demands, hot/cold environments, hazards.
- **Other signals (5%)** – FLSA/level indicators, career level (I/II/III), union/non-union if present.
Also capture a brief **similarity rationale** quoting the phrases that matched.
### 4) Select and Explain the Top Matches
- Return the **Top 5** matches across all surveys, highest score first.
- For each, provide: **survey_name**, **job_code**, **job_title**, **Score (0–100)**, and a **2–4 sentence rationale**.
- If a strong tie exists, include both and explain the nuance (e.g., similar duties but slightly different supervisory scope).
### 5) Flag Mismatches & Leveling Cues
- Note any **gaps** (e.g., survey job requires a culinary degree but JD does not; survey role is “Cook III” while JD’s supervision suggests “Cook II”).
- Suggest whether the match should be **leveled up/down** within the survey family (I/II/III) and why.
-—
## Output Format (Concise)
**A. JD Snapshot (you extracted)**
- Purpose (1–2 sentences)
- Core duties (6–12 bullets)
- Minimum requirements (bullets)
- Supervision (bullets)
- Work context (bullets)
**B. Top Survey Matches (ranked)**
1. **[survey_name] [job_code] [job_title] — Score: XX**
*Why:* [2–4 sentence rationale referencing duties, setting, quals, supervision.]
2. **[...] — Score: XX**
*Why:* [...]
3. **[...] — Score: XX**
*Why:* [...]
4. **[...] — Score: XX**
*Why:* [...]
5. **[...] — Score: XX**
*Why:* [...]
**C. Notes & Leveling Guidance**
- Key differences/gaps
- Recommended level within each survey family (and why)
- Any data quality or mapping caveats
**D. Recommended Market Composite (optional)**
- If multiple strong matches from different surveys align, propose a composite market cut (e.g., average/median across the recommended matches), with a brief justification.
---
## Guardrails
- Never rely on job title alone—prioritize **work content**.
- Prefer survey rows whose **descriptions** explicitly mention institutional/cafeteria or volume production over restaurant/à la carte contexts.
- If the JD supervises or trains staff, avoid matching to purely individual-contributor cook roles unless supervision is incidental.
- If two survey jobs differ only by level, use **supervisory scope/complexity** to select the level.
---
## Matching Examples (for this kind of JD)
When the JD indicates institutional/higher-ed food service with batch cooking, standardized recipes, cafeteria/volume production, allergen controls, training/mentoring, and moderate physical demands, strong matches often include:
- **BLS 35-2012 — Cooks, Institution and Cafeteria**
- **CUPA 817020 — Line Cook**
- **Educomp 18436 — Cook**
- **NACUFS — NA-Cook II**
- **SLA 15061 — Hot Cook**
> Treat these as candidates to test via the scoring rules above—do **not** auto-select by title.
Sample Output