Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.encoreos.io/llms.txt

Use this file to discover all available pages before exploring further.

Spec: HR-09-ENHANCEMENTS (EN-1: Structured Interview Scorecards)
Regulations: Title VII of the Civil Rights Act, EEOC Uniform Guidelines on Employee Selection Procedures
Date: 2026-03-25
Status: ✅ Implemented

1. Regulatory Context

Title VII and the EEOC Uniform Guidelines require that employee selection procedures (including interviews) be:
  • Job-related and consistent with business necessity (§1607.3)
  • Applied uniformly to all candidates for a given position
  • Free from discriminatory bias in both design and application
  • Documented with sufficient records for adverse impact analysis (§1607.4)
Structured interviews with standardized scoring criteria are recognized best practice for demonstrating compliance.

2. Controls Implemented

2.1 Standardized Evaluation Criteria

ControlImplementationEvidence
Pre-defined competencies per positionhr_interview_scorecard_templates.competencies JSONB with name, description, weight, categoryMigration: 20260325132353_ebf0fec5-db63-41ec-9656-95b6b12e9bb4.sql creates table with NOT NULL competencies
Consistent rating scalehr_interview_scorecard_templates.rating_scale JSONB with min, max, labelsZod schema validation: ratingScaleSchema in ats-scorecards.ts
Template assignment to job postingshr_job_postings.default_scorecard_template_id FKAll candidates for a posting use the same template
Weighted scoring formulacomputeOverallScore() in interviewScorecard.tsUnit tested (13 tests in interviewScorecard.test.ts)

2.2 Blind Evaluation (Bias Prevention)

ControlImplementationEvidence
Interviewers cannot see others’ scores before submittingRLS policy using hr_scorecard_interviewer_has_submitted() SECURITY DEFINER helperMigration lines 92-101: SELECT policy restricts visibility
Submission lockis_submitted flag; once true, scorecard is immutableCHECK constraint + application-level enforcement
Independent evaluationEach interviewer completes their own scorecard independentlyNo shared editing; individual interviewer_id per scorecard

2.3 Audit Trail

ControlImplementationEvidence
Scorecard creation/update timestampscreated_at, updated_at columns with defaultsStandard audit columns in migration
Actor trackingcreated_by, updated_by UUID FK to pf_profilesTracks who created/modified each scorecard
Submission timestampcompleted_at timestamp set on submissionImmutable after submission
Tenant isolationRLS + organization_id on all tablesPrevents cross-org data leakage

2.4 Recommendation Constraints

ControlImplementationEvidence
Standardized recommendation valuesCHECK constraint: strong_hire, hire, no_hire, strong_no_hireMigration CHECK constraint on recommendation
Aggregate recommendation viewcountRecommendations() utility + Comparison GridShows distribution across all interviewers

3. Documentation & Recordkeeping

Per EEOC §1607.15, organizations must maintain records of selection procedures and their impact:
  • Scorecard data is retained indefinitely in hr_interview_scorecards (no TTL/purge)
  • Template history preserved via is_active soft-disable (templates are not deleted)
  • PDF export capability allows generation of compliance-ready documentation
  • Comparison Grid provides aggregate view for adverse impact analysis

4. Gaps and Recommendations

ItemStatusNotes
Adverse impact ratio calculator (4/5ths rule)🔲 Not implementedRecommended for Phase 2; can be built from scorecard aggregate data
Competency validation against job analysis🔲 Manual processTemplates should be reviewed by HR/Legal to ensure job-relatedness
Interviewer calibration training🔲 Organizational processNot a system feature; recommended as operational procedure
Retention policy documentation🔲 PendingDefine retention periods per state/federal requirements

5. Testing Evidence

  • Unit tests: 13 tests covering computeOverallScore, countRecommendations, averageOverallScores
  • RLS tests: hr-interview-scorecard-templates.rls.test.ts, hr-interview-scorecards.rls.test.ts — tenant isolation, cross-org blocking
  • E2E tests: ats-scorecard-workflow.spec.ts — route rendering, skeleton loading, breadcrumbs

6. References