AI Extraction for Candidate Data
How AI automatically extracts candidate data field values from resumes, form responses, and questionnaire answers.
Why It Matters
Reviewing dozens of applications means manually reading each resume, finding the salary expectation buried in a cover letter, and typing it into a field. That adds up fast. AI extraction reads every piece of candidate material submitted — resume, form responses, questionnaires — and fills in your custom data fields automatically, so your team opens each application with the key facts already surfaced.
How It Works
AI extraction runs in three steps:
- Mark a field as AI-extractable — on any custom data field, enable the AI extraction toggle
- Write an extraction prompt — tell the AI exactly what to look for in that field
- AI processes on application — when a candidate applies, extraction runs automatically and populates the field
The extracted value sits alongside a confidence score so your team knows how certain the AI was. High and medium-confidence values surface on kanban cards and in Slack. Low-confidence values are stored but flagged for review.
Enabling AI Extraction
Open a job posting, go to Data Fields, and edit any field. Toggle AI Extractable on. A prompt field will appear — this is required.
Write a prompt that tells the AI exactly what to find. The prompt becomes the extraction instruction sent to the model.
Examples of good prompts:
| Field | Good Prompt |
|---|---|
| Salary Expectation | Extract the candidate’s expected salary, compensation range, or rate. Return null if not mentioned. |
| Availability | Extract when the candidate can start or their notice period. Return null if not mentioned. |
| Location Preference | Extract the candidate’s location, city, country, or remote work preference. |
| Years of Experience | Extract total years of professional experience. Return a number. Return null if not clear. |
| Open to Relocation | Return true if the candidate mentions willingness to relocate. Return false if they say they cannot. Return null if not mentioned. |
| Technical Skills | Extract all programming languages, frameworks, and tools mentioned. Return as a list. |
Prompts that say “Return null if not mentioned” reduce false positives — the AI won’t guess when the information isn’t there.
What Gets Analyzed
The AI receives everything the candidate has submitted, organized into sections:
| Source | What’s Included |
|---|---|
| Candidate profile | Name, email, phone, GitHub username, LinkedIn URL |
| Resume | Full resume text, parsed work history, education, skills list, experience summary |
| Form responses | All answers submitted on the application form |
| Questionnaire answers | Written responses from any questionnaire stages the candidate completed |
The AI only receives material the candidate submitted — nothing from your internal notes or team evaluations.
Writing Effective Prompts
The prompt is the most important part of extraction quality. Match your prompt to the field type:
| Field Type | Example Field | Prompt That Works |
|---|---|---|
| Text | Salary Expectation | “Extract the candidate’s expected salary or compensation range. Include currency if mentioned. Return null if not mentioned.” |
| Number | Years of Experience | “Count total years of professional experience from work history. Return a number only. Return null if not determinable.” |
| Boolean | Open to Management | “Return true if the candidate has managed a team or expresses interest in management. Return false if they prefer individual contributor work. Return null if not mentioned.” |
| Tags | Technical Skills | “Extract all programming languages, frameworks, databases, and tools the candidate mentions. Return as a list of strings.” |
| Select | Seniority Level | “Classify the candidate as Junior, Mid, or Senior based on their experience. Return null if not enough information.” |
| Date | Available From | “Extract the earliest date or timeframe the candidate can start. Convert to a date if possible. Return null if not mentioned.” |
Keep prompts focused on a single piece of information. Compound prompts (“extract salary and notice period”) produce inconsistent results.
Confidence Scores
Every AI-extracted value comes with a confidence score from 0.0 to 1.0, grouped into three tiers:
| Tier | Score Range | What It Means | Shown on Cards/Slack |
|---|---|---|---|
| High | 0.75 – 1.0 | AI found a clear, explicit answer | Yes |
| Medium | 0.50 – 0.74 | AI found a likely answer with some ambiguity | Yes |
| Low | Below 0.50 | AI guessed or inferred — verify before acting | No |
High and medium-confidence values appear on kanban cards and in Slack candidate channels. Low-confidence values are stored in the application record but kept out of compact views to avoid surfacing unreliable data.
When reviewing an application, confidence is shown next to each AI-filled field so your team knows at a glance whether to trust the value or read the source material themselves.
Manual Override
Any AI-extracted value can be edited inline. Click the field value on the application page to edit it. Once you save, the field is marked as manually set — the AI will not overwrite it on future extractions.
The original AI-extracted value is preserved in the record even after you edit it, so you can always see what the AI found before your team made a change.
To force re-extraction on a manually-edited field, clear the value first, then run re-extraction.
Re-extraction
Automatic: Extraction runs once when a candidate applies. New applications are processed automatically — no action needed.
Manual re-extraction: Open the application, scroll to the Data Fields section, and click Re-extract. This re-runs extraction against all current candidate material using the current field prompts.
Re-extraction is useful when:
- You add a new AI-extractable field after the application was received
- You updated a field’s prompt and want fresh results
- The initial extraction failed
Re-extraction respects manual overrides — fields your team has edited will not be overwritten.
Extraction Status
Each application has an extraction status visible in the Data Fields section:
| Status | Meaning |
|---|---|
| Pending | Extraction is queued but hasn’t started yet |
| Processing | Extraction is running now |
| Completed | Extraction finished — results are populated |
| Failed | Extraction encountered an error — see the error message for details |
Common failure reasons include no source material (the candidate submitted nothing the AI can read) or an AI credit limit being reached. If extraction fails, fix the underlying issue and use the manual re-extract button to retry.
Quick Checklist
- Add custom data fields to the job posting
- Enable AI Extractable on fields you want auto-filled
- Write a focused extraction prompt for each field
- Use “Return null if not mentioned” to avoid false positives
- Review medium-confidence values before making decisions
- Edit any incorrect AI values inline — your edit locks the field from re-extraction
- Use Re-extract after adding new fields to existing applications