Greenhouse API 422 "first_name can't be blank" when the agent pushes a candidate parsed from a LinkedIn profile with...
Fixes Greenhouse 422 'first_name can't be blank' when the agent pushes a candidate whose parsed name is missing a first name. Use when LinkedIn or resume parsing yields a single token or empty name. Key trigger: 422 on candidate create naming first_name.
Greenhouse 422 "first_name can't be blank" on parsed LinkedIn profile
TL;DR
Greenhouse requires first_name on candidate create, and the parser produced nothing usable for it, so the create is rejected. Fix: validate parsed names before the API call, handle single-token and empty names explicitly, and route unresolvable names to human review instead of submitting. Never invent a first name.
Error
422 Unprocessable Entity
"first_name can't be blank"Steps
Log the raw parsed name for the failing candidate. Expected: you see the actual input, e.g. a single token, a title like "Dr.", or an empty string.
Add a pre-submit name check: if first_name is blank or the full name is a single token, do not call the create endpoint. Expected: the 422 never fires; the candidate is held instead.
Handle the cases explicitly: a single token goes to lastname with firstname held for review; titles and suffixes are stripped before splitting; empty names go straight to the review queue. Expected: deterministic behavior per case, no guessing.
Route held candidates to a human review queue with the source profile link attached. Expected: a recruiter fills in the name in seconds.
Test with the failing profiles plus edge inputs (mononyms, initials, non-Latin scripts). Expected: all resolve to either a valid create or the review queue.
Use this when
- pushing parsed LinkedIn profiles to Greenhouse
- resume parsing yields odd names
- candidate creates 422 on name fields
- profiles with mononyms, titles, or missing names
Not for this skill when
- the 422 names email (that is the email-taken problem)
- the name is present but the create still 422s (check for other blank required fields)
- the parse itself is wrong (fix the parser, not the submitter)
Variant phrasings
- "Greenhouse first_name blank 422"
- "candidate create missing first name"
- "LinkedIn parse no first name Greenhouse"
- "single name candidate Greenhouse API"
Why it happens
Parsers assume Western two-part names, but profiles carry mononyms, titles, company names in the name field, or nothing at all. Greenhouse's candidate model requires first_name, so the API rejects what the parser could not produce. The gap is between the parser's optimism and the API's required fields.
Edge cases
- Some cultures put the family name first; do not assume token order.
- A placeholder first name like "Unknown" pollutes the ATS and confuses recruiters; prefer the review queue.
- If the source profile definitely has a name and the parser dropped it, fix the parser's name extraction.
- Keep the raw name string on the held record so reviewers do not re-parse.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_YqtMn7u30Wy2hMkBiqWd5g