SDK Quick Start — Human Resources & Workforce Management
Getting started: Human Resources & Workforce Management
This guide takes you from install to your first attributed governance record in human resources & workforce management. You will install the SDK, configure a provider, instrument a workflow step with the real OTel attribute vocabulary from this vertical, and have a reviewable evidence record in your portal within an afternoon. There is no scaffolding project — just your API key and the three steps below.
Why this matters right now. As of March 2026, agentic AI in HR and workforce management is deployed across: AI resume screening and candidate ranking (most common HR AI deployment; subject to NYC LL144, EEOC, EU AI Act Annex III), AI video interview analysis (facial expression, tone, language; subject to Illinois AIVIA), AI-driven performance evaluation and continuous feedback generation, predictive attrition and flight risk scoring, compensation benchmarking and pay equity analysis (mandated reporting under EU Pay Transparency Directive from June 2026), workforce planning and headcount forecasting, learning recommendation engines and skill gap analysis, employee sentiment and engagement analysis (may constitute monitoring under NLRA), AI scheduling and shift optimisation (FLSA compliance), AI-powered HR service desk and case triage, DEI analytics and representation gap identification, and AI-assisted occupational health and safety monitoring. The EU AI Act Annex III para 4 explicitly classifies AI used in recruitment, selection, task allocation, performance monitoring, promotion, termination, and access to self-employment as high-risk — applying from August 2, 2026 with the full conformity assessment, logging, human oversight, and transparency obligations of Title III Chapter 2. NYC Local Law 144 is the most operationally specific binding regulation globally — it requires annual independent bias audits, public posting of audit results, and candidate/employee notice before any AEDT is used. NYC Local Law 144 (effective July 5, 2023) requires employers and employment agencies using Automated Employment Decision Tools (AEDTs) in NYC to: conduct or commission an independent bias audit within one year prior to use; publish a summary of the audit results on their website; provide candidates and employees with notice at least 10 business days before the AEDT is used; and offer an alternative selection process on request. The Colorado AI Act (SB 24-205, effective February 1, 2026) extends similar obligations statewide for high-risk AI in consequential decisions including employment. The EU Pay Transparency Directive (2023/970) requires member state transposition by June 2026 — employers with 100+ employees must conduct joint pay assessments with works councils where gender pay gaps exceed 5% and cannot be justified. EU AI Act Annex III para 4 makes recruitment, selection, task allocation, and performance monitoring AI high-risk — the August 2026 application date is approaching. Works councils in EU member states with AI consultation rights (DE, FR, NL, AT, BE) must be informed and consulted before deploying new HR AI systems.
How the layering works
You are not adopting a separate product surface for this vertical. You are adding a market-specific vocabulary layer on top of the same core session model used everywhere in VeriProof.
| Layer | What you configure | What changes downstream |
|---|---|---|
| Core SDK | API key, application identity, session lifecycle, export path, base governance metadata | The same trace, evidence, and export foundation used across every implementation |
| Human Resources & Workforce Management | OTel attributes, permitted values, and workflow metadata drawn from this vertical catalog | Portal evidence records, policy inputs, and exports become standards-literate for this market |
| Review surfaces | Rules, evidence packages, and internal reviewer workflows | The same labels and values appear without translation during review or audit |
If you need the cross-industry baseline first, open the core SDK reference, Python core, or .NET core before continuing here.
Step 1 — Install
TypeScript / Node.js
npm install @veriproof/sdk-corePython
pip install veriproof-sdk.NET
dotnet add package Veriproof.SdkStep 2 — Configure
Call the configuration helper once, before any AI framework initialises. After that call, every OTel span in the process — whether emitted by your code or by a framework adapter — is exported automatically to VeriProof.
Your API key comes from the VeriProof portal. Try a live demo to see the portal before you register, or start a free Builder account and use the environment variable pattern above directly.
Need a production credential path rather than sandbox exploration? Get API access for a Builder account, or contact the team if you need an architecture or compliance review alongside implementation.
Step 3 — Instrument your workflow
The governance vocabulary for this vertical lives in the Human Resources & Workforce Management reference. Use the OTel attribute names below — they are the same names the portal uses in evidence records and the same names your policy engine will evaluate. Consistency here is the point.
| OTel attribute | Sample value | Category |
|---|---|---|
hr.recruitment.stage | job_posted | RecruitmentStage |
hr.ai_decision.type | resume_ranking | AIEmploymentDecisionType |
hr.recruitment.candidate_notice_status | notice_not_required | CandidateNoticeStatus |
hr.recruitment.requisition_status | draft | RequisitionApprovalStatus |
hr.bias_audit.outcome | compliant_no_disparate_impact | BiasAuditOutcome |
hr.bias_audit.protected_class | race_ethnicity | AdverseImpactProtectedClass |
TypeScript example
import { configureVeriproof, VeriproofClient, VeriproofSdkOptions, SessionMetadata } from '@veriproof/sdk-core';
import { RecruitmentStage, RecruitmentStageMeta, AIEmploymentDecisionType, AIEmploymentDecisionTypeMeta } from '@veriproof/sdk-core/verticals/hr-workforce-management';
// Call once at application startup
configureVeriproof(
VeriproofSdkOptions.createProduction({
apiKey: process.env.VERIPROOF_API_KEY!,
applicationId: 'hr-workforce-management-app',
}),
{ serviceName: 'hr-workforce-management-app', setGlobal: true },
);
// Instrument a governed workflow
const client = new VeriproofClient(
VeriproofSdkOptions.createProduction({ apiKey: process.env.VERIPROOF_API_KEY! }),
);
const session = client
.startSession('hr.workforce.management.review')
.withSessionMetadata(SessionMetadata.forTransaction('txn-001').withEnvironment('production'))
.addStep('evaluate', { output: { status: 'completed' } })
.withMetadata(RecruitmentStageMeta.otelAttribute, RecruitmentStage.job_posted)
.withMetadata(AIEmploymentDecisionTypeMeta.otelAttribute, AIEmploymentDecisionType.resume_ranking)
await session.complete();Python example
import os
from opentelemetry import trace
from veriproof_sdk import VeriproofClientOptions, configure_veriproof
from veriproof_sdk.verticals import hr_workforce_management as hwm
# Call once at application startup
configure_veriproof(
VeriproofClientOptions(
api_key=os.environ["VERIPROOF_API_KEY"],
application_id="hr-workforce-management-app",
),
service_name="hr-workforce-management-app",
set_global=True,
)
tracer = trace.get_tracer(__name__)
# Instrument a governed workflow
with tracer.start_as_current_span("hr_workforce_management.review") as span:
span.set_attribute(hwm.RecruitmentStage.__otel_attribute__, hwm.RecruitmentStage.job_posted.value)
span.set_attribute(hwm.AIEmploymentDecisionType.__otel_attribute__, hwm.AIEmploymentDecisionType.resume_ranking.value)
span.set_attribute(hwm.CandidateNoticeStatus.__otel_attribute__, hwm.CandidateNoticeStatus.notice_not_required.value)
....NET example
using Veriproof.Sdk;
using Veriproof.Sdk.Core.OpenTelemetry.Verticals.HrWorkforceManagement;
// Configure once at application startup
builder.Services.AddVeriproof(options =>
{
options.ApiKey = builder.Configuration["VERIPROOF_API_KEY"]!;
options.ApplicationId = "hr-workforce-management-app";
});
// Instrument a governed workflow step
using var activity = ActivitySource.StartActivity("evaluate");
activity?.SetTag(RecruitmentStage.Metadata.OtelAttribute, RecruitmentStage.job_posted);
activity?.SetTag(AIEmploymentDecisionType.Metadata.OtelAttribute, AIEmploymentDecisionType.resume_ranking);
activity?.SetTag(CandidateNoticeStatus.Metadata.OtelAttribute, CandidateNoticeStatus.notice_not_required);How teams use this in production
- Recruitment & Applicant Tracking: Recruitment Stage. AI recruitment agent tags every candidate touchpoint with recruitment stage. OPA policy enforces that 'resume_screening' and 'ai_assessment' stages require bias audit on file and candidate notice delivered before the AI output influences the selection decision. (Eu AI Act Annex3 4a: EU AI Act Annex III para 4(a) — AI in recruitment and selection is high-risk from August 2, 2026; conformity assessment, logging, transparency, and human oversight required)
- Recruitment & Applicant Tracking: AIEmployment Decision Type. Every AI HR agent action is tagged with its decision type. OPA policy enforces that 'termination_risk_flag', 'involuntary_separation_recommendation', and 'workforce_reduction_targeting' outputs require HR Business Partner and Legal review before any communication to managers or employees. (Eu AI Act Annex3 4a: EU AI Act Annex III para 4(a)(i-iv) — All decision types listed are high-risk AI; full Title III Chapter 2 obligations apply)
- Recruitment & Applicant Tracking: Candidate Notice Status. OPA policy blocks AI recruitment agent from using AEDT output to influence any hiring decision unless candidate_notice_status is 'notice_window_elapsed_aedt_permitted'. 'Alternative_process_requested' status blocks AEDT use entirely for that candidate until alternative process outcome. (Nyc Ll144: NYC LL144 § 20-871(b) — Employer must notify candidates at least 10 business days before AEDT use; must accommodate requests for alternative process)
- Recruitment & Applicant Tracking: Requisition Approval Status. AI talent sourcing agent checks requisition status before initiating any candidate outreach. 'Pending_dei_review' status ensures new requisitions are assessed for inclusive job description language before publishing. OPA policy blocks AI from advancing candidates to interview without 'approved_open' status.
Next steps
- Open the full Human Resources & Workforce Management governance reference for all 20 enum categories, policy patterns, and source standards.
- Review TypeScript SDK core for advanced session-builder options, batch export, and Merkle verification.
- Review Python SDK core for decorator-based annotations and framework adapter options.
- Review .NET SDK core for Semantic Kernel, AutoGen, and Activity-based instrumentation.
- Browse all vertical references to understand how the core governance vocabulary layers underneath vertical-specific attribute sets.
- Compare this guide with the public industry pages if you need the commercial and workflow framing behind the same vocabulary.
Register a free Builder account — 500 tamper-proof Proofs per month, full SDK and REST API access, and your first evidence record in the portal before you leave your desk.