A Next.js-based hiring intelligence platform that applies psychological network analysis and personality profiling to candidate assessment. Built on research in network theory, Five-Factor Model personality assessment, and emotional dynamics analysis.
This platform integrates multiple psychological frameworks to provide comprehensive candidate profiling:
- Network Theory Application: Treats cognitive processes as interconnected systems using graph theory metrics including clustering coefficients, centrality measures, and community detection
- Five-Factor Model (FFM): Traditional dimensional personality assessment measuring openness, conscientiousness, extraversion, agreeableness, and neuroticism
- Extended Trait Frameworks: Specialized measures including absorption, intellectual openness, interconnectedness, and universalism values
- Emotional Dynamics Analysis: Maps transition patterns between emotional states to identify regulatory strategies
Based on research by Borsboom, Cramer, Epskamp (network approaches in psychology), McAdams and Pals (integrative personality assessment), Marc Lewis (dynamic systems theory for emotions), and De Deyne and Kenett (cognitive-semantic network principles).
Full research details: https://diannt.net/persona_profile.html
- Candidate Explorer: Browse and filter candidates with advanced table controls
- Individual Profiles: Detailed candidate views with education, experience, and skills
- Salary Analysis: Visualization of salary expectations across candidates
- Dashboard: Overview with key metrics and visualizations using Chart.js
- Category Analysis: Candidates grouped by relevant categories
- Persona Profiles: Psychological network analysis visualization using D3.js
- Unified Selection: Integrated view combining multiple assessment dimensions
- Virtual Scrolling: High-performance rendering for large datasets using TanStack Virtual
- Interactive Tables: Advanced filtering, sorting, and selection with TanStack Table
- Data Visualization: D3.js for network graphs, Chart.js for metrics
- Type-Safe Schema: Zod validation for candidate data integrity
- Responsive Design: Tailwind CSS with gradient-based UI
- Framework: Next.js 15.4.6 (with Turbopack)
- UI Library: React 19.1.0
- Styling: Tailwind CSS 4
- State Management: Zustand 5.0.7
- Data Tables: TanStack Table 8.21.3 + TanStack Virtual 3.13.12
- Visualization: D3.js 7.9.0, Chart.js 4.5.0
- UI Components: Radix UI (Dialog, Tabs)
- Animation: Framer Motion 12.23.12
- Validation: Zod 4.0.17
- Data Parsing: csv-parse 6.1.0
- TypeScript: 5.x with strict type checking
hiring-app/
├── webapp/ # Next.js application
│ ├── src/
│ │ ├── app/ # App router pages
│ │ │ ├── candidates/[id]/ # Individual candidate view
│ │ │ ├── dashboard/ # Analytics dashboard
│ │ │ ├── categories/ # Category analysis
│ │ │ ├── personas/ # Persona profiles
│ │ │ └── unified-selection/ # Unified selection view
│ │ ├── components/ # React components
│ │ │ ├── CandidateTable.tsx
│ │ │ ├── PersonaProfile.tsx
│ │ │ ├── FactorCompare.tsx
│ │ │ └── Navigation.tsx
│ │ └── lib/ # Utilities and data loading
│ │ └── candidates.ts
│ └── package.json
└── data/ # Candidate data (JSON format)
└── form-submissions.json
- Node.js 20+ (for React 19 support)
- npm or yarn
# Install dependencies
cd webapp
npm install# Run development server with Turbopack
npm run devOpen http://localhost:3000 to view the application.
# Type check
npm run typecheck
# Build for production
npm run build
# Start production server
npm startCandidate data structure (validated with Zod):
{
name: string
email: string
phone?: string | null
location: string
submitted_at: string
work_availability: string[]
annual_salary_expectation?: Record<string, string>
work_experiences: Array<{
company: string
roleName: string
}>
education: {
highest_level: string
degrees: Array<{
degree: string
subject: string
school: string
gpa: string
startDate?: string
endDate?: string
originalSchool?: string
isTop50?: boolean
isTop25?: boolean
}>
}
skills: string[]
}Advanced table with virtual scrolling, sorting, filtering, and row selection. Handles large datasets efficiently with TanStack Table and Virtual.
D3.js-based visualization of psychological network analysis, showing interconnections between personality traits and cognitive patterns.
Analytics overview with Chart.js visualizations for salary distribution, education levels, and experience metrics.
Comparative analysis view for evaluating candidates across multiple dimensions.
The platform acknowledges:
- Different operational definitions across frameworks may create apparent contradictions
- Confidence levels vary by analysis type:
- Network structure: 85%
- Emotional transitions: 78%
- Behavioral predictions: 68%
- Linting: ESLint with Next.js config
- Git Hooks: Husky + lint-staged for pre-commit checks
- Type Safety: TypeScript strict mode
Private - Not licensed for public use
Nikita A (nikita@diannt.net)
Research foundation based on work by psychological researchers in network analysis, personality assessment, and emotional dynamics theory.