v3.25.2
Revenue from Contracts with Customers - Summary of Disaggregation of Our Revenues by Contract Type and Operating Segment (Detail) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2025
Jun. 30, 2024
Jun. 30, 2025
Jun. 30, 2024
Disaggregation of Revenue [Line Items]        
Revenues by contract type and operating segment $ 49,097 $ 49,534 $ 97,414 $ 96,357
Data and Analytics Services [Member]        
Disaggregation of Revenue [Line Items]        
Revenues by contract type and operating segment 8,589 8,876 17,549 16,943
Data and Analytics Services [Member] | Time-and-Material Contract [Member]        
Disaggregation of Revenue [Line Items]        
Revenues by contract type and operating segment 7,827 6,183 13,475 12,294
Data and Analytics Services [Member] | Fixed-Price Contract [Member]        
Disaggregation of Revenue [Line Items]        
Revenues by contract type and operating segment 762 2,693 4,074 4,649
IT Staffing Services [Member]        
Disaggregation of Revenue [Line Items]        
Revenues by contract type and operating segment 40,508 40,658 79,865 79,414
IT Staffing Services [Member] | Time-and-Material Contract [Member]        
Disaggregation of Revenue [Line Items]        
Revenues by contract type and operating segment 40,508 40,658 79,865 79,414
IT Staffing Services [Member] | Fixed-Price Contract [Member]        
Disaggregation of Revenue [Line Items]        
Revenues by contract type and operating segment $ 0 $ 0 $ 0 $ 0