19arjun89 commited on
Commit
5b3bd15
·
verified ·
1 Parent(s): 0dc4344

Update Guidebook.md

Browse files
Files changed (1) hide show
  1. Guidebook.md +1 -767
Guidebook.md CHANGED
@@ -1,769 +1,3 @@
1
- # AI Recruiting Assistant — Guide Book (Updated)
2
-
3
- ## 0) Overview
4
-
5
- ### What this tool does
6
-
7
- This AI Recruiting Assistant is a **decision-support** system that helps recruiters and hiring managers:
8
-
9
- * Extract **job requirements** from a job description (JD)
10
- * Evaluate resumes against **verified requirements** using **evidence-based** matching
11
- * Assess job-relevant **culture/working-style signals** using retrieved company documents
12
- * Run **factuality checks** to detect ungrounded claims
13
- * Run a **bias & fairness audit** across the JD, analyses, and the model’s final recommendation
14
-
15
- ### The problem it addresses
16
-
17
- Recruiting teams often face three recurring issues when using AI:
18
-
19
- 1. **Hallucinated requirements**: LLMs may “invent” skills that are not explicitly required.
20
- 2. **Opaque scoring**: Many tools produce fit scores without clearly showing evidence.
21
- 3. **Bias risks**: Hiring language and reasoning can leak pedigree/class proxies or subjective criteria.
22
-
23
- This tool addresses those issues by enforcing:
24
-
25
- * **Deterministic verification gates** (requirements are verified before scoring)
26
- * **Evidence-backed scoring** (only verified requirements are scored; each match includes a quote)
27
- * **Self-verification and self-correction** (factuality checks can trigger automatic revision)
28
- * **Bias auditing** (flags risky language and inconsistent standards)
29
-
30
- ### How it differentiates from typical recruiting tools
31
-
32
- Compared with “black-box” resume screeners or generic LLM chatbots, this system emphasizes:
33
-
34
- * **Transparency**: Outputs include *what was required*, *what was verified*, *what was dropped*, and *why*.
35
- * **Auditability**: The scoring math is deterministic and traceable to inputs.
36
- * **Self-verifying behavior**: Claims are checked against source text; unverified claims can be removed.
37
- * **Bias checks by design**: Bias-sensitive content is audited explicitly instead of implicitly influencing scores.
38
- * **Culture check that’s job-performance aligned**: Culture attributes are framed as job-relevant behaviors, not background proxies.
39
-
40
- ---
41
-
42
- ## 1) Inputs and Document Handling
43
-
44
- ### 1.1 What the user uploads
45
-
46
- The tool operates on three inputs:
47
-
48
- 1. **Company culture / values documents** (PDF/DOCX)
49
- 2. **Resumes** (PDF/DOCX)
50
- 3. **Job description** (pasted text)
51
-
52
- ### 1.2 Resume anonymization
53
-
54
- Before resumes are stored or analyzed, the tool applies heuristic redaction:
55
-
56
- * Emails, phone numbers, URLs
57
- * Addresses / location identifiers
58
- * Explicit demographic fields
59
- * Likely name header (first line)
60
-
61
- This reduces exposure of personal identifiers and keeps analysis focused on job evidence.
62
-
63
- ### 1.3 Vector stores (retrieval)
64
-
65
- The tool maintains two separate Chroma collections:
66
-
67
- * **Resumes** (anonymized + chunked)
68
- * **Culture docs** (chunked)
69
-
70
- Chunking uses a recursive splitter with overlap to preserve context.
71
-
72
- ---
73
-
74
- ## 2) End-to-End Logic Flow (Step-by-Step)
75
-
76
- Below is the stepwise flow executed when a recruiter clicks **Analyze Candidates**.
77
-
78
- ### Step 0 — Prerequisite: Documents exist in storage
79
-
80
- * Culture docs and resumes must be stored first.
81
- * If not stored, retrieval will be empty or low-signal.
82
-
83
- ### Step 1 — Extract required skills from the Job Description (LLM-driven)
84
-
85
- **Goal:** Identify only skills that are explicitly required.
86
-
87
- * The tool prompts the LLM to return **JSON only**:
88
-
89
- * `required_skills: [{skill, evidence_quote}]`
90
- * The LLM is instructed to:
91
-
92
- * include only **MUST HAVE** / explicitly required skills
93
- * exclude “nice-to-haves” and implied skills
94
- * copy a short **verbatim quote** as evidence
95
-
96
- **LLM role:** structured extraction.
97
-
98
- **Failure behavior:** If JSON parsing fails, the tool stops and prints the raw output.
99
-
100
- ### Step 2 — Verify extracted skills against the JD (deterministic, Python)
101
-
102
- **Goal:** Block hallucinated requirements from entering scoring.
103
-
104
- Each extracted item is classified:
105
-
106
- * **Quote-verified (strong):** the evidence quote appears verbatim in the JD
107
- * **Name-only (weak):** the skill name appears in the JD, but the quote doesn’t match
108
- * **Unverified (dropped):** neither quote nor name appears
109
-
110
- **Deterministic gate:**
111
-
112
- * Only **quote-verified** skills are used as the final required list for scoring.
113
- * Name-only and dropped skills are reported for transparency.
114
-
115
- **Output:** “Requirements Verification” section shows:
116
-
117
- * extracted count
118
- * quote-verified vs name-only vs dropped
119
- * list of skills used for scoring
120
- * list of retracted/dropped items (with reason)
121
-
122
- ### Step 3 — Retrieve the most relevant culture chunks (deterministic retrieval)
123
-
124
- **Goal:** Ground culture evaluation in actual company documents.
125
-
126
- * The tool runs similarity search over culture docs using the JD as query.
127
- * It selects the top **k** chunks (e.g., k=3).
128
-
129
- **Deterministic component:** vector retrieval parameters.
130
-
131
- **Output artifact:** `culture_context` is the concatenated text of retrieved culture chunks.
132
-
133
- ### Step 4 — Generate job-performance culture attributes (LLM-driven)
134
-
135
- **Goal:** Create a small set of job-relevant behavioral attributes to evaluate consistently.
136
-
137
- * The tool prompts the LLM to return JSON:
138
-
139
- * `cultural_attributes: ["...", "..."]` (4–6 items)
140
-
141
- **Attribute rules:**
142
-
143
- * Must be job-performance aligned behaviors (e.g., “evidence-based decision making”).
144
- * Must avoid pedigree / class / prestige language.
145
- * Must avoid non-performance preferences (e.g., remote-first, time zone).
146
-
147
- **LLM role:** label generation from retrieved culture context.
148
-
149
- ### Step 5 — Retrieve top resume chunks for the JD (deterministic retrieval)
150
-
151
- **Goal:** Identify the most relevant candidates and their relevant resume text.
152
-
153
- * The tool runs similarity search over resumes using the JD.
154
- * It retrieves top **k** chunks (e.g., k=10) and groups them by `resume_id`.
155
-
156
- **Note:** Only retrieved chunks are analyzed. If relevant evidence isn’t retrieved, it may be missed.
157
-
158
- ### Step 6 — Culture evidence matching per candidate (LLM + deterministic cleanup + deterministic scoring)
159
-
160
- **Goal:** Determine which culture attributes are supported by resume evidence.
161
-
162
- **LLM-driven matching:**
163
-
164
- * For each attribute, the LLM may return a match with:
165
-
166
- * `evidence_type`: `direct` or `inferred`
167
- * `evidence_quotes`: 1–2 verbatim resume quotes
168
- * `inference`: required for inferred
169
- * `confidence`: 1–5
170
-
171
- **Deterministic cleanup rules (Python):**
172
- A match is kept only if:
173
-
174
- * attribute is present
175
- * evidence_type is `direct` or `inferred`
176
- * at least one non-trivial quote exists
177
- * confidence is an integer 1–5
178
- * inferred matches include an inference sentence
179
- * inferred matches can be required to meet a minimum confidence
180
-
181
- **Deterministic culture scoring (Python):**
182
-
183
- * Direct evidence weight: **1.0**
184
- * Inferred evidence weight: **0.5**
185
-
186
- Culture score is computed as:
187
-
188
- * `(sum(weights for matched attributes) / number_of_required_attributes) * 100`
189
-
190
- ### Step 7 — Skills matching per candidate (LLM + deterministic scoring)
191
-
192
- **Goal:** Match only the verified required skills to resume evidence.
193
-
194
- **Inputs:**
195
-
196
- * Candidate resume text (retrieved chunks)
197
- * Verified required skills list (quote-only)
198
-
199
- **LLM output (JSON):**
200
-
201
- * `matched: [{skill, evidence_snippet}]`
202
- * `missing: [skill]` (treated as advisory; missing is recomputed deterministically)
203
-
204
- **Deterministic missing calculation (Python):**
205
-
206
- * Missing = required_set − matched_set
207
-
208
- **Deterministic skills scoring (Python):**
209
-
210
- * `(number_of_matched_required_skills / number_of_required_skills) * 100`
211
-
212
- ### Step 8 — Implied competencies (NOT SCORED) for phone-screen guidance (LLM-driven, advisory)
213
-
214
- **Goal:** When a required skill is missing explicitly, suggest whether it may be **implied** by adjacent evidence.
215
-
216
- * This step is **not scored** and does not affect proceed/do-not-proceed.
217
- * The LLM may suggest implied competencies only if it:
218
-
219
- * uses conservative language (“may be implied”)
220
- * includes **verbatim resume quotes**
221
- * provides a **phone-screen validation question**
222
-
223
- **Hard guardrail:** Tool-specific skills (e.g., R/SAS/MATLAB) must be explicitly present in the resume to be suggested.
224
-
225
- ### Step 9 — Factuality verification (LLM-driven verifier)
226
-
227
- **Goal:** Detect ungrounded evidence claims.
228
-
229
- * The verifier checks evidence-backed match lines (e.g., `- Skill: snippet`).
230
- * It ignores:
231
-
232
- * numeric score lines
233
- * missing lists
234
- * policy text
235
-
236
- **Outputs:**
237
-
238
- * verified claims (✓)
239
- * unverified claims (✗)
240
- * factuality score
241
-
242
- ### Step 10 — Final recommendation (LLM, policy-constrained)
243
-
244
- **Goal:** Produce a structured recommendation without changing scores.
245
-
246
- * The model is given:
247
-
248
- * skills analysis
249
- * culture analysis
250
- * fixed computed scores
251
- * deterministic decision policy
252
-
253
- **Decision policy:**
254
-
255
- * If skills_score ≥ 70 → PROCEED
256
- * If skills_score < 60 → DO NOT PROCEED
257
- * If 60 ≤ skills_score < 70 → PROCEED only if culture_score ≥ 70 else DO NOT PROCEED
258
-
259
- **Non-negotiables:**
260
-
261
- * LLM must not re-score.
262
- * LLM must not introduce new claims.
263
-
264
- ### Step 11 — Self-correction (triggered by verification issues)
265
-
266
- **Goal:** Remove/correct any unverified claims while preserving scores/policy.
267
-
268
- * If any unverified claims exist:
269
-
270
- * The tool asks the LLM to revise the recommendation
271
- * Only the flagged claims may be removed/corrected
272
- * Scores and policy must remain unchanged
273
-
274
- ### Step 12 — Bias audit (LLM-driven audit across docs + reasoning)
275
-
276
- **Goal:** Flag biased reasoning, biased JD language, or inconsistent standards.
277
-
278
- **Audit scope includes:**
279
-
280
- * Job description
281
- * Skills analysis
282
- * Culture analysis
283
- * Final recommendation text
284
- * Culture context
285
-
286
- **What it flags (examples):**
287
-
288
- * Prestige/pedigree signals (elite employers/education as proxy)
289
- * Vague “polish/executive presence” language not tied to job requirements
290
- * Non-job-related culture screening
291
- * Inconsistent standards (penalizing requirements not in JD)
292
- * Overclaiming certainty
293
-
294
- **Outputs:**
295
-
296
- * structured list of bias indicators (category, severity, trigger text, why it matters, recommended fix)
297
- * recruiter guidance
298
-
299
- ---
300
-
301
- ## 3) Scoring and Decision Rules (Deterministic)
302
-
303
- ### 3.1 Skills score
304
-
305
- * Only quote-verified required skills count.
306
- * Score = matches / required.
307
-
308
- ### 3.2 Culture score
309
-
310
- * Score = weighted matches / attributes.
311
- * Direct = 1.0; inferred = 0.5.
312
-
313
- ### 3.3 Labels
314
-
315
- * ≥70: Strong fit
316
- * 50–69: Moderate fit
317
- * <50: Not a fit
318
-
319
- ### 3.4 Recommendation
320
-
321
- Recommendation follows the fixed policy described in Step 10.
322
-
323
- ---
324
-
325
- ## 4) System Flow Diagram (Textual)
326
-
327
- Below is a simplified, end-to-end flow of how data moves through the system.
328
-
329
- ```
330
- [User Uploads]
331
- |
332
- v
333
- +-------------------+
334
- | Culture Documents |
335
- +-------------------+ +-----------+
336
- | | Job Desc |
337
- v +-----------+
338
- +-------------------+ |
339
- | Culture Vector DB |<--------------+
340
- +-------------------+ |
341
- | v
342
- | +---------------------+
343
- | | Skill Extraction |
344
- | | (LLM, JSON Output) |
345
- | +---------------------+
346
- | |
347
- | v
348
- | +---------------------+
349
- | | Requirement |
350
- | | Verification |
351
- | | (Deterministic) |
352
- | +---------------------+
353
- | |
354
- | v
355
- | Verified Required Skills
356
- | |
357
- | v
358
- +-------------------+ +---------------------+
359
- | Resume Documents |------->| Resume Vector DB |
360
- +-------------------+ +---------------------+
361
- |
362
- v
363
- Similarity Search (k=10)
364
- |
365
- v
366
- Resume Chunks (Grouped)
367
- |
368
- v
369
- +-----------------------------+
370
- | Culture Attribute Generator |
371
- | (LLM, JSON Output) |
372
- +-----------------------------+
373
- |
374
- v
375
- +-----------------------------+
376
- | Culture Evidence Matching |
377
- | (LLM + Rules + Weights) |
378
- +-----------------------------+
379
- |
380
- v
381
- Culture Score (Deterministic)
382
- |
383
- v
384
- +-----------------------------+
385
- | Technical Skill Matching |
386
- | (LLM + Deterministic Scoring)|
387
- +-----------------------------+
388
- |
389
- v
390
- Skills Score (Deterministic)
391
- |
392
- v
393
- +-----------------------------+
394
- | Implied Competencies (LLM) |
395
- | (Not Scored, Advisory) |
396
- +-----------------------------+
397
- |
398
- v
399
- +-----------------------------+
400
- | Factuality Verification |
401
- | (LLM Verifier) |
402
- +-----------------------------+
403
- |
404
- v
405
- +-----------------------------+
406
- | Recommendation Generator |
407
- | (Policy-Constrained LLM) |
408
- +-----------------------------+
409
- |
410
- v
411
- +-----------------------------+
412
- | Bias & Fairness Audit |
413
- | (LLM Audit) |
414
- +-----------------------------+
415
- |
416
- v
417
- Final Recruiter Report
418
- ```
419
-
420
- ---
421
-
422
- ## 5) Audit Artifacts and Traceability
423
-
424
- For every analysis run, the system produces and retains multiple audit artifacts that enable post-hoc review, regulatory defensibility, and debugging.
425
-
426
- ### 5.1 Input Artifacts
427
-
428
- 1. **Original Job Description**
429
-
430
- * Full pasted JD text
431
-
432
- 2. **Sanitized Resume Text**
433
-
434
- * Redacted resume content
435
- * Redaction summary (internal)
436
-
437
- 3. **Retrieved Culture Chunks**
438
-
439
- * Top-k (default: 3) culture document segments
440
- * Vector similarity scores (internal)
441
-
442
- 4. **Retrieved Resume Chunks**
443
-
444
- * Top-k (default: 10) resume segments
445
- * Resume ID metadata
446
-
447
- ---
448
-
449
- ### 5.2 Requirement Verification Artifacts
450
-
451
- 1. **Raw LLM Skill Extraction Output**
452
- 2. **Parsed Required Skills JSON**
453
- 3. **Verification Classification Table**
454
-
455
- * Quote-verified
456
- * Name-only
457
- * Dropped
458
- 4. **Dropped-Skill Justifications**
459
-
460
- ---
461
-
462
- ### 5.3 Culture Analysis Artifacts
463
-
464
- 1. **Generated Culture Attribute List**
465
- 2. **LLM Raw Matching Output**
466
- 3. **Cleaned Match Records**
467
-
468
- * Evidence type
469
- * Quotes
470
- * Inference
471
- * Confidence
472
- 4. **Weighted Match Table**
473
- 5. **Computed Culture Score**
474
-
475
- ---
476
-
477
- ### 5.4 Skills Analysis Artifacts
478
-
479
- 1. **Verified Required Skill List**
480
- 2. **LLM Raw Matching Output**
481
- 3. **Accepted Matched Skills**
482
- 4. **Deterministic Missing-Skill Set**
483
- 5. **Computed Skills Score**
484
-
485
- ---
486
-
487
- ### 5.5 Implied Competency Artifacts (Advisory)
488
-
489
- 1. **Missing Skill List**
490
- 2. **LLM Implied Output (JSON)**
491
- 3. **Accepted Implied Records**
492
-
493
- * Resume quotes
494
- * Explanation
495
- * Phone-screen questions
496
- 4. **Rejected Inferences (internal)**
497
-
498
- ---
499
-
500
- ### 5.6 Verification and Correction Artifacts
501
-
502
- 1. **Verifier Prompt and Output**
503
- 2. **Verified / Unverified Claim Lists**
504
- 3. **Factuality Scores**
505
- 4. **Self-Correction Prompts and Revisions (if triggered)**
506
-
507
- ---
508
-
509
- ### 5.7 Recommendation and Policy Artifacts
510
-
511
- 1. **Final Recommendation Prompt**
512
- 2. **Policy Threshold Snapshot**
513
- 3. **Immutable Score Values**
514
- 4. **Generated Recommendation Text**
515
-
516
- ---
517
-
518
- ### 5.8 Bias Audit Artifacts
519
-
520
- 1. **Bias Audit Prompt**
521
- 2. **Audit Input Bundle (JD + Analyses + Recommendation)**
522
- 3. **Structured Bias Indicator List**
523
- 4. **Severity and Mitigation Suggestions**
524
- 5. **Recruiter Guidance Text**
525
-
526
- ---
527
-
528
- ### 5.9 System Metadata
529
-
530
- 1. Timestamp of run
531
- 2. Model version
532
- 3. Prompt versions
533
- 4. Chunking parameters
534
- 5. Retrieval k-values
535
- 6. Scoring parameters
536
-
537
- ---
538
-
539
- ## 6) Known Limitations
540
-
541
- 1. **Retrieval scope**: evaluation depends on retrieved chunks; some evidence may be missed.
542
- 2. **Attribute generation variance**: culture attributes can vary per run unless cached or cataloged.
543
- 3. **LLM evidence overreach**: mitigated by verification and cleanup, but not eliminated.
544
- 4. **Bias audit is advisory**: it flags issues; it does not enforce policy changes unless you add an auto-rewrite step.
545
-
546
- ---
547
-
548
- ## 6) Governance and Change Control
549
-
550
- * Prompt changes must preserve JSON contracts.
551
- * Any change that affects scoring or policy should be versioned.
552
- * Audit outputs should be retained for traceability.
553
-
554
- ---
555
-
556
- ## 7) Intended Use
557
-
558
- This tool is built for:
559
-
560
- * faster, evidence-based screening
561
- * transparent reasoning
562
- * safer use of LLMs via verification and audits
563
-
564
- It is not a substitute for:
565
-
566
- * human judgment
567
- * legal review
568
- * formal HR policy compliance
569
-
570
- ---
571
-
572
- ## Diagram Flow
573
-
574
- ### High-level pipeline (inputs → outputs)
575
-
576
- **Inputs uploaded by recruiter**
577
-
578
- 1. Company culture/values docs (PDF/DOCX)
579
- 2. Resumes (PDF/DOCX)
580
- 3. Job description (text)
581
-
582
- ⬇️
583
-
584
- **Indexing (deterministic, Python)**
585
-
586
- * Culture docs → chunk + embed → `culture_store`
587
- * Resumes → anonymize → chunk + embed → `resume_store`
588
-
589
- ⬇️
590
-
591
- **Candidate assessment (per JD run)**
592
-
593
- 1. **Extract required skills (LLM)** → JSON `required_skills[{skill,evidence_quote}]`
594
-
595
- 2. **Verify extracted skills (Python)** → quote-verified / name-only / dropped → *quote-only list used for scoring*
596
-
597
- 3. **Retrieve relevant culture context (deterministic retrieval)**
598
-
599
- * Query: JD
600
- * Retrieve: top-k culture chunks (**current: k=3**)
601
- * Output: `culture_context`
602
-
603
- 4. **Generate job-relevant culture attributes (LLM)** → JSON `cultural_attributes[4–6]`
604
-
605
- 5. **Retrieve relevant resume chunks (deterministic retrieval)**
606
-
607
- * Query: JD
608
- * Retrieve: top-k resume chunks (**current: k=10**)
609
- * Group by `resume_id`
610
-
611
- 6. **Per candidate: culture matching (LLM → cleanup → deterministic score)**
612
-
613
- * LLM proposes matches (direct/inferred) + quotes
614
- * Python enforces validity gates
615
- * Deterministic weighted culture score (direct=1.0, inferred=0.5)
616
-
617
- 7. **Per candidate: skills matching (LLM → deterministic score)**
618
-
619
- * LLM proposes matched skills + evidence snippets
620
- * Python recomputes missing list deterministically
621
- * Deterministic skills score using quote-verified requirements only
622
-
623
- 8. **Per candidate: implied competencies (LLM, NOT SCORED)**
624
-
625
- * Inputs: missing skills + matched skills + resume + JD
626
- * Output: implied items with quotes + phone-screen questions
627
- * Guardrail: tool-like skills (R/SAS/MATLAB) require explicit mention
628
-
629
- 9. **Factuality verification (LLM verifier)** → ✓/✗ for evidence-backed match lines + factuality score
630
-
631
- 10. **Recommendation (LLM, policy constrained)** → uses fixed scores + fixed decision policy
632
-
633
- 11. **Self-correction (conditional)** → triggered if any unverified claims exist
634
-
635
- 12. **Bias audit (LLM)** → audits JD + analyses + recommendation → structured bias indicators + guidance
636
-
637
- ⬇️
638
-
639
- **Outputs per candidate**
640
-
641
- * Requirements verification summary (global)
642
- * Culture analysis + score
643
- * Skills analysis + score
644
- * Implied (not scored) follow-ups
645
- * Fact-check results
646
- * Final recommendation (+ revision note if corrected)
647
- * Bias audit
648
-
649
- ---
650
-
651
- ### Component map (LLM vs deterministic)
652
-
653
- **LLM-driven components**
654
-
655
- * Required skill extraction (JSON)
656
- * Culture attribute generation (JSON)
657
- * Culture match proposals (JSON)
658
- * Skills match proposals (JSON)
659
- * Implied (not scored) follow-ups (JSON)
660
- * Factuality verification (✓/✗)
661
- * Final recommendation (policy constrained)
662
- * Bias audit (structured)
663
-
664
- **Deterministic / Python-enforced components**
665
-
666
- * Resume anonymization
667
- * Chunking + embedding + storage
668
- * Retrieval parameters (top-k)
669
- * Required-skill verification (quote/name-only/dropped)
670
- * Deduplication of requirements
671
- * Culture match cleanup rules (validity gates)
672
- * Skills missing list recomputation
673
- * Skills score computation
674
- * Culture score computation with weights
675
- * Decision thresholds (proceed / do not proceed)
676
- * Self-correction trigger (presence of unverified claims)
677
-
678
- ---
679
-
680
- ## Audit Artifacts
681
-
682
- This section lists the primary artifacts produced (or recommended to persist) to make runs reviewable and defensible.
683
-
684
- ### Inputs (source-of-truth)
685
-
686
- * Job description text (as provided)
687
- * Culture documents (original files)
688
- * Resumes (original files)
689
-
690
- ### Pre-processing
691
-
692
- * Sanitized resume text (post-anonymization)
693
- * Redaction notes (what was removed/masked)
694
- * Chunking configuration (chunk_size, chunk_overlap)
695
- * Embedding configuration (embedding model + settings)
696
-
697
- ### Retrieval
698
-
699
- * Culture retrieval query: JD text
700
- * Culture retrieved chunks: top-k (**current: k=3**)
701
- * Resume retrieval query: JD text
702
- * Resume retrieved chunks: top-k (**current: k=10**)
703
- * Candidate grouping: chunks grouped by `resume_id`
704
-
705
- ### Requirements verification
706
-
707
- * LLM `required_skills` JSON (raw)
708
- * Normalized required skill list (deduped)
709
- * Verification output:
710
-
711
- * quote-verified list
712
- * name-only list
713
- * dropped/unverified list
714
- * counts and factuality score
715
- * Final scoring-required list: quote-verified only
716
-
717
- ### Per-candidate analyses
718
-
719
- **Culture analysis**
720
-
721
- * Raw LLM culture-match JSON
722
- * Post-cleanup matched culture list
723
- * Missing culture attributes list
724
- * Culture score + label
725
- * Culture evidence lines shown to recruiters
726
-
727
- **Skills analysis**
728
-
729
- * Raw LLM skills-match JSON
730
- * Matched skills list (with evidence snippets)
731
- * Deterministically computed missing skills list
732
- * Skills score + label
733
-
734
- **Implied (NOT SCORED)**
735
-
736
- * Raw LLM implied JSON
737
- * Filtered implied list (must include resume quotes + phone-screen questions)
738
-
739
- ### Verification & correction
740
-
741
- * Verifier raw output (✓/✗ lines)
742
- * Verified claims list
743
- * Unverified claims list
744
- * Factuality score
745
- * Self-correction trigger status (yes/no)
746
- * Corrected recommendation (if triggered) + revision note
747
-
748
- ### Bias audit
749
-
750
- * Bias audit raw output (structured)
751
- * Bias indicators list (category, severity, trigger_text, why_it_matters, recommended_fix)
752
- * Overall assessment
753
- * Recruiter guidance
754
-
755
- ### Run-level trace (recommended)
756
-
757
- For reproducibility/governance, also persist:
758
-
759
- * Timestamp, model name, temperature, seed
760
- * Prompt versions (hash or version ID)
761
- * Retrieval parameters (k values)
762
- * Score thresholds and policy version
763
- * Any configuration overrides used during the run
764
-
765
-
766
-
767
  AI RECRUITING ASSISTANT — TABULAR PIPELINE (SWIM-LANE VIEW)
768
 
769
  +------+-------------------+----------------------------+------------------------------+------------------------------+
@@ -823,4 +57,4 @@ AI RECRUITING ASSISTANT — TABULAR PIPELINE (SWIM-LANE VIEW)
823
 
824
  Current Retrieval Parameters:
825
  - Culture store: k = 3 chunks (JD query)
826
- - Resume store: k = 10 chunks (JD query)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  AI RECRUITING ASSISTANT — TABULAR PIPELINE (SWIM-LANE VIEW)
2
 
3
  +------+-------------------+----------------------------+------------------------------+------------------------------+
 
57
 
58
  Current Retrieval Parameters:
59
  - Culture store: k = 3 chunks (JD query)
60
+ - Resume store: k = 10 chunks (JD query)