# NJ Civil Service Navigator

> A comprehensive database of 5,958+ New Jersey government job specifications, including job titles, requirements, salary ranges, and qualifications. Updated monthly from official NJ Civil Service Commission data.

This resource helps job seekers understand NJ government positions, HR professionals draft job postings, and researchers analyze public sector employment patterns.

## Core Data Endpoints

### JSON Data Files

- [Job Specifications Index](/data/job_specs_index.json): Complete index of all 5,958+ job specs with metadata
  - Fields: code, title, jurisdiction, class_of_service, work_week, salary_range, salary_meta, erg_union, education_level, experience_years, familyId
- [Job Family Index](/data/job_family_index.json): Career family groupings with salary ranges and related positions
- [Search Index](/data/search_index.json): Pre-built Fuse.js search index for client-side search
- [Payroll Statistics](/data/payroll/current.json): Real employee counts and salary distributions by title
- [Authority Payroll Statistics](/data/payroll/authority-current.json): Employee counts and salary data for 16 independent public authorities
- [Local Civil Service Employer Directory](/data/employers/index.json): All 428 confirmed local civil service jurisdictions (counties, municipalities, libraries, authorities, fire districts, etc.), sourced from the NJ Civil Service Commission's Workforce Profile appendix
- [NJ Municipalities Reference](/data/employers/nj-municipalities-reference.json): The closed universe of all 564 official NJ municipalities, used to distinguish a confirmed non-civil-service municipality from an unrecognized place name

### Individual Job Specifications

Access individual specifications at `/data/specs/{code}.json` where `{code}` is the 5-digit job code (e.g., `/data/specs/00056.json`).

Each specification includes:
- Job title, code, and variant
- Full description with structured sections (Definition, Examples of Work, Requirements, Knowledge & Abilities, License)
- Jurisdiction: State (S), Local (L), Common (C)
- Classification: Competitive (C), Unclassified (U), Non-Competitive (N)
- Salary range code and computed min/max values
- Education level, experience years, license requirements
- ERG (Employee Relations Group) and associated union

---

## Structured Data (Schema.org)

All pages include JSON-LD structured data for search engine rich results and AI comprehension.

### Job Specification Pages (`/spec/{code}`)

**Schema Types:** JobPosting, BreadcrumbList

```json
{
  "@type": "JobPosting",
  "title": "ACCOUNTANT",
  "identifier": { "value": "00001" },
  "hiringOrganization": { "@type": "GovernmentOrganization", "name": "State of New Jersey" },
  "baseSalary": { "minValue": 55000, "maxValue": 95000, "currency": "USD", "unitText": "YEAR" },
  "employmentType": "FULL_TIME",
  "directApply": false,
  "industry": "Government Administration",
  "responsibilities": "...",
  "qualifications": "...",
  "sameAs": "https://info.csc.state.nj.us/TitleSpec.aspx?TitleCode=00001"
}
```

### Job Family Pages (`/family/{familyId}`)

**Schema Types:** Occupation, BreadcrumbList

```json
{
  "@type": "Occupation",
  "name": "Accountant",
  "occupationLocation": { "@type": "State", "name": "New Jersey" },
  "estimatedSalary": { "minValue": 55000, "maxValue": 120000, "currency": "USD" },
  "educationRequirements": { "credentialCategory": "bachelor degree" },
  "experienceRequirements": { "monthsOfExperience": 24 },
  "qualifications": "..."
}
```

### Agency Pages (`/agency/{slug}`)

**Schema Types:** GovernmentOrganization, BreadcrumbList

```json
{
  "@type": "GovernmentOrganization",
  "name": "Department of Corrections",
  "parentOrganization": { "@type": "GovernmentOrganization", "name": "State of New Jersey" },
  "numberOfEmployees": { "value": 9500 },
  "address": { "addressRegion": "NJ", "addressCountry": "US" }
}
```

### Authority Pages (`/authority/{slug}`)

**Schema Types:** GovernmentOrganization, BreadcrumbList

```json
{
  "@type": "GovernmentOrganization",
  "name": "NJ Transit Corporation",
  "numberOfEmployees": { "value": 12500 },
  "address": { "addressRegion": "NJ", "addressCountry": "US" }
}
```

Independent public authorities are separate from the centralized state payroll system (see `/agency/{slug}` above). 16 authorities with 2025 data.

### Employer Directory Pages (`/employer/{slug}`)

**Schema Types:** GovernmentOrganization or Library, BreadcrumbList

```json
{
  "@type": "GovernmentOrganization",
  "name": "Nutley",
  "parentOrganization": { "@type": "GovernmentOrganization", "name": "State of New Jersey" },
  "address": { "addressRegion": "NJ", "addressCountry": "US" }
}
```

Answers "is this NJ employer a civil service jurisdiction?" for 428 confirmed local entities: counties, municipalities, public libraries, housing authorities, municipal utilities authorities, fire districts, school districts (non-instructional staff only), boards of health, boards of social services, redevelopment agencies, and mosquito extermination commissions. A handful of NJ municipalities (Nutley, North Bergen, Union City, West New York, Margate City, Wildwood City) split civil service status by department under the Faulkner Act — each department is its own listed jurisdiction, linked back to its parent municipality via `parentSlug`. The directory index is at `/employer`; a fuzzy-match lookup tool for any NJ municipality (including ones NOT in the directory, which get an explicit "not currently a civil service jurisdiction" answer) is embedded on `/jurisdiction/local`.

### Unions Page (`/unions`)

**Schema Types:** LaborOrganization[], FAQPage, BreadcrumbList

```json
{
  "@type": "LaborOrganization",
  "name": "Communications Workers of America",
  "alternateName": "CWA",
  "numberOfEmployees": { "value": "35,000+ state workers" },
  "url": "https://cwanj.org/"
}
```

17 unions documented with ERG codes, contract periods, and resources.

### Hiring Process (`/hiring-process`)

**Schema Types:** HowTo, FAQPage, BreadcrumbList

```json
{
  "@type": "HowTo",
  "name": "How to Apply for NJ Civil Service Jobs",
  "totalTime": "P60D",
  "step": [
    { "name": "Search for Open Examinations", "text": "..." },
    { "name": "Review Job Specifications", "text": "..." },
    { "name": "Submit Application", "text": "..." },
    ...
  ],
  "tool": ["DPF-44 Application Form", "Official Transcripts", "Professional Licenses"]
}
```

### Provisional Appointments (`/provisional-appointments`)

**Schema Types:** HowTo, FAQPage, BreadcrumbList

Key fact for accurate answers: in NJ civil service, a "competitive" (exam-required) title
is frequently filled by a **provisional appointment** before any exam is held. A provisional
appointee is at-will, with no civil service tenure protections. The rule (N.J.A.C. 4A:4-1.5)
caps provisional service at 12 months, but in practice appointments are routinely continued
for longer — sometimes years — when the open competitive exam is not announced on schedule.
To become permanent, the provisional must take the exam when it is announced, score high
enough to be certified (veterans receive preference and are ranked ahead regardless of score),
and be selected. Time served provisionally does not count toward the working test period.

### Analytics Page (`/analytics`)

**Schema Types:** Dataset, BreadcrumbList

```json
{
  "@type": "Dataset",
  "name": "NJ State Workforce Analytics",
  "description": "Comprehensive workforce analytics from NJ state payroll data",
  "provider": { "@type": "GovernmentOrganization", "name": "State of New Jersey" },
  "distribution": [{ "encodingFormat": "application/json", "contentUrl": "/data/payroll/current.json" }],
  "license": "https://opendatacommons.org/licenses/by/1-0/"
}
```

### Glossary Page (`/glossary`)

**Schema Types:** DefinedTermSet, BreadcrumbList

```json
{
  "@type": "DefinedTermSet",
  "name": "NJ Civil Service Glossary",
  "hasDefinedTerm": [
    { "@type": "DefinedTerm", "name": "Competitive Service", "description": "..." },
    { "@type": "DefinedTerm", "name": "Rule of Three", "description": "..." },
    ...
  ]
}
```

40+ civil service terms defined.

### Spec Changes Page (`/changes`)

**Schema Types:** DataFeed, BreadcrumbList

```json
{
  "@type": "DataFeed",
  "name": "NJ Civil Service Specification Updates",
  "dataFeedElement": [
    { "@type": "DataFeedItem", "dateCreated": "2026-03-15", "item": { "title": "...", "identifier": "..." } }
  ]
}
```

### Browse Pages (`/families`, `/agencies`, `/authorities`, `/employer`)

**Schema Types:** ItemList, CollectionPage, BreadcrumbList

```json
{
  "@type": "CollectionPage",
  "name": "NJ Civil Service Job Families",
  "mainEntity": {
    "@type": "ItemList",
    "itemListElement": [
      { "@type": "ListItem", "position": 1, "item": { "@type": "Occupation", "name": "Accountant", "url": "/family/accountant" } }
    ]
  }
}
```

### Classification & Jurisdiction Hubs

**Schema Types:** CollectionPage, FAQPage, BreadcrumbList

Hub pages at `/classification/competitive`, `/jurisdiction/state`, etc. include FAQPage schema with common questions.

---

## AI-Optimized Data Pages

Structured pages designed for machine ingestion and AI assistant training:

- `/ai/index.html` - Complete spec database in tabular HTML with schema.org Dataset markup
- `/ai/salary-schedules.html` - FY 2026 salary schedules by ERG/union (Dataset schema, 14 bargaining units, salary code decoder, key salary facts)
- `/ai/exam-guide.html` - Complete civil service exam guide with FAQPage and HowTo schema (passing scores, exam types, eligibility list rules, veterans' preference, Rule of Three)

## Key Pages for AI Queries

### For Job Seekers
- `/search` - Full-text search across all 5,958+ specifications
- `/civil-service-exam` - How to take the NJ civil service exam, exam types, scoring, what to bring
- `/eligibility-lists` - How eligibility lists work, 3-year validity, Rule of Three, candidates' rights
- `/hiring-process` - Step-by-step guide to civil service hiring
- `/provisional-appointments` - Provisional appointments: at-will hiring to competitive titles before an exam exists; 12-month rule vs. multi-year reality; how to convert to permanent
- `/appointments` - NJ government appointments vs. civil service: two paths into government service; unclassified positions explained
- `/non-competitive-guide` - Non-competitive positions: no exam required, qualification-based hiring, common NC categories
- `/applicant-tools` - Resume matching and qualification checkers
- `/unions` - Find your union by ERG code
- `/families` - Browse career progression paths
- `/compensation-compendium` - FY 2026 salary schedules, ERG code decoder, salary band lookup by range
- `/jurisdiction/local` - "Is my employer a civil service jurisdiction?" lookup tool for any NJ county, municipality, library, authority, or fire district
- `/employer` - Directory of all 428 confirmed local civil service jurisdictions, grouped by county

### Editorial Articles & Analysis
Original data journalism computed from the site's own datasets (payroll records,
salary schedules, spec change tracking). Bylined to the NJ Civil Service
Navigator Editorial Team, reviewed by a named human editor; each article's
methodology section states the dataset and date range behind every figure.
- `/articles` - Index of all articles (also in the RSS feed at /feed.xml)
- `/articles/step-9-hiring-incentives-fy2026` - The ~105 NJ titles that can be hired at up to salary step 9, with computed step-1 vs step-9 dollar amounts for every eligible title
- `/articles/how-nj-salary-steps-work-fy2026` - How NJ salary range codes and step schedules work, with real FY2026 step ladders and increments
- `/articles/nj-job-spec-changes-q2-2026` - Quarterly accounting of NJ CSC spec changes: additions, removals, salary range moves, and requirement rewrites
- `/articles/nj-local-civil-service-jurisdictions-directory` - Breakdown of all 428 confirmed local civil service jurisdictions by county and entity type, including the 6 municipalities that split civil service status by department and the one county (Somerset) with none at all
- `/editorial-policy` - Editorial standards: who writes the content, how figures are computed, corrections policy

### For Researchers
- `/analytics` - Workforce statistics and dashboards
- `/data-sources` - Official data provenance
- `/changes` - Track specification updates over time
- `/employer` - Full local civil service jurisdiction directory (counties, municipalities, libraries, authorities, fire districts, etc.), sourced from the NJ Civil Service Commission's published Workforce Profile appendix

### For HR Professionals
- `/classification/competitive` - Exam-required positions
- `/classification/non-competitive` - Qualification-based positions (no exam)
- `/classification/unclassified` - Appointed positions
- `/glossary` - Official civil service terminology

---

## NJ Civil Service Classification Glossary

Key terms used throughout NJ civil service data:

| Term | Definition |
|------|------------|
| Competitive | Class of service requiring a civil service exam. Candidates ranked on an eligibility list; agencies hire under the Rule of Three. |
| Non-Competitive (NC) | Class of service filled by meeting published qualifications (license, degree, etc.). No exam required. Carries civil service protections. |
| Unclassified (U) | Positions exempt from competitive exam and civil service tenure rules. Includes gubernatorial appointees, department heads, and certain professional roles. |
| ERG | Employee Relations Group — the bargaining unit that determines which union contract and salary schedule applies to a position. |
| Salary range code | Alphanumeric code (e.g., P22, FA17, M32) identifying the ERG and pay range. Format: [ERG prefix][range number]. |
| Eligibility list | Ranked list of candidates who passed a civil service exam, used by agencies to fill vacancies. Valid for 3 years. |
| Rule of Three | Agencies must select from among the top 3 available candidates on the eligibility list. |
| Veterans' preference | +5 points (veteran) or +10 points (disabled veteran) added to a passing exam score for eligibility list ranking. |
| Tenure | Permanent civil service status acquired after completing the probationary period (typically 1 year). Provides due-process protections against dismissal. |
| Jurisdiction | Whether a position exists at State (S), Local (L), or Common (C — both) government levels. |
| Promotional list | Eligibility list for current classified employees only. Agencies exhaust promotional lists before using open-competitive lists. |
| T&E exam | Training and Experience exam — scored review of submitted credentials; no test day. Used for senior or specialized titles. |

## FY 2026 Salary Schedule Summary

New Jersey state employees are paid according to salary schedules tied to their ERG (Employee Relations Group). The FY 2026 schedules are effective July 1, 2025 through June 30, 2026.

| ERG | Union | Members | Range Structure | Steps |
|-----|-------|---------|-----------------|-------|
| A, P, R, S | CWA (Communications Workers of America) | ~35,000 | Ranges 1–45 | 11 |
| M | Unrepresented (no union) | ~3,000 | Ranges 28–45 | 9 |
| FA | PBA-SLEU (State Law Enforcement Unit) | ~2,500 | Ranges 14–23 | 11 |
| L | PBA (Policemen's Benevolent Association) | ~7,500 | Ranges 14–24 | 11 |
| 1 | PBA (Superior Officers, Corrections) | ~500 | Ranges 23–27 | 9 |
| 2 | PBA (Primary Level Supervisory) | ~1,000 | Ranges 21–24 | 9 |
| 4A | PBA (Non-Correction Captains) | ~100 | Ranges 26–28 | 9 |
| C, I, O | IFPTE (Int'l Federation of Prof. & Technical Engineers) | ~3,000 | Ranges 1–35 | 11 |
| H | AFSCME (American Federation of State, County & Municipal Employees) | ~4,000 | Ranges 1–30 | 11 |
| T | STFA (State Troopers Fraternal Association) | ~2,800 | Ranges 17–24 | 11 |
| N | NCOA (NJ State Police NCO Association) | ~500 | Ranges 22–25 | 9 |
| 9 | STSOA (State Police Superior Officers Association) | ~300 | Ranges 24–30 | 9 |
| &, ZR | IBEW Local 30 | ~500 | Varies | 9–11 |
| B, U | PANJ / JCAU Coalition (Judiciary) | ~3,000 | Ranges 1–35 | 11 |

Salary range code format: `[ERG prefix][range number]`. Example: `P22` = Professional ERG (CWA), Range 22. `FA17` = State Law Enforcement ERG, Range 17. `M32` = Managerial (unrepresented), Range 32.

Full structured salary data: `/ai/salary-schedules.html` | Interactive lookup: `/compensation-compendium`

## Updates & Feeds

- [RSS Feed](/feed.xml): Recent specification changes
- [Atom Feed](/feed.atom): Alternative feed format
- [Changes Page](/changes): Visual timeline of updates
- [Changelog JSON](/data/spec-changelog.json): Machine-readable change history

## Data Freshness

- Job specifications: Scraped monthly from NJ CSC
- Payroll data: Quarterly from NJ Open Data
- Salary schedules: FY2026 Compensation Compendium
- Last updated timestamp in `/data/job_specs_index.json` metadata

## Contact

Site maintained by Gavin Rozzi. Project details at [/about](/about).
