Resume Schema Design
Configure the JSON structure and prompt used when parsing resumes.TalentPrism lets each team define multiple parsing schemas so you can tailor the JSON output to exactly the fields you care about. Use the in-app Resume Parser Lab (Settings → Resume Parsing) to manage schemas, then reference the schema key in API requests or bulk uploads.
1. Schema Basics
- Each schema has a unique key (e.g.
shipyard). Teams can clone or edit their defaults. - Schemas are zero-code JSON definitions that describe sections/fields, required vs optional values, and allowed formats.
- Behind the scenes we render the JSON definition into a system prompt for the LLM, so updates immediately affect API output.
2. Managing Schemas in the UI
- Navigate to Candidate → Resume Parser Lab.
- Select an existing schema or click “New Schema” to clone a template.
- Edit the definition JSON (fields, labels, value types). The preview panel shows sample responses.
- Mark one schema as your team default (used when the API doesn’t specify
schema_key). - Save changes. The schema key remains stable; clients can immediately reference it in API calls.
3. Referencing Schemas via API
Pass schema_key to either endpoint:
POST /candidate/api/parse-resume/→-F schema_key=shipyardPOST /candidate/api/bulk-parse-resumes/→-F schema_key=shipyard
If omitted, the team’s default schema is used automatically.
4. Schema Definition Tips
Structure: Organize fields into logical sections (contact, trade, experience, preferences). The parser reproduces that shape in parsed_resume.
Field types: Use clear descriptions (string, integer, enum, boolean). The more explicit the instruction, the cleaner the JSON.
Optional vs required: Mark required fields so the LLM prioritizes them, but always handle missing values defensively in your client code.
Custom enums: Provide explicit allowed values (e.g., ["welder","fitter","electrician"]) to keep trade fields normalized.
Raw text: The parser automatically appends raw_text (full OCR text) so you always have the original content available.
5. Example Schema Snippet
{
"sections": [
{
"name": "contact",
"fields": [
{"name": "full_name", "type": "string", "required": true},
{"name": "phone", "type": "string", "pattern": "E.164"},
{"name": "email", "type": "string"}
]
},
{
"name": "trade_profile",
"fields": [
{"name": "trade_primary", "type": "enum", "choices": ["welder","fitter","electrician","pipefitter"]},
{"name": "years_experience", "type": "enum", "choices": ["0-1","1-3","3-5","5+"]},
{"name": "certifications", "type": "array", "items": {"type": "string"}}
]
}
]
}
You can go deeper (nested arrays, objects, etc.) as needed. Keep definitions concise so the LLM stays focused.
6. Testing Changes
- Use the Resume Parser Lab to upload sample resumes against the schema and inspect the JSON instantly.
- Verify downstream forms (candidate create modal, bulk importer) still map the fields you expect.
- Share the schema key with any API consumers so they can opt in to custom fields.
Need Help?
Reach out to TalentPrism support if you need help designing schemas, migrating from a legacy format, or enforcing custom validation. We can also preload schemas for you if you send a JSON definition.
Can't find what you're looking for?
Contact Us