How Greenhouse actually parses your resume (and the 3 mistakes that cost you scorecard slots)
A walkthrough of Greenhouse's parsing pipeline — section anchoring, candidate-profile extraction, scorecard workflow. Plus the three mistakes that cause resumes to drop content in Greenhouse parsing more often than in any other major ATS.
Greenhouse is the dominant ATS at venture-backed tech companies — most of YC's portfolio, most Series B/C SaaS scale-ups, and a substantial slice of the FAANG-adjacent ecosystem. If you've applied to a hot tech role in the last three years, your resume has very likely been parsed by Greenhouse.
Greenhouse's parser is more forgiving than Workday's on layout but stricter on section anchoring. This post covers what Greenhouse actually does with your PDF, what gets weighted in the parsed candidate profile, and the three formatting choices that consistently cause Greenhouse to drop content from otherwise good resumes.
How Greenhouse differs from Workday
If you've already read How Workday actually parses your resume, the high-level pipeline is similar — extract → structure → match. But the engines differ meaningfully on what they're tolerant of vs strict about.
| Behavior | Workday | Greenhouse |
|---|---|---|
| Multi-column layouts | Catastrophic — interleaves columns | Better but still imperfect |
| Tables | Flattens into noise | Mostly handled but may lose category labels |
| Section anchoring | Loose (extracts what it sees) | Strict — drops content outside named sections |
| Date parsing | Strict — bare years often fail | Moderate — bare years usually work |
| Scoring approach | Single match-rate score | Match-rate + scorecard workflow |
| Recruiter UI | Search-heavy | Pipeline-board-heavy |
The biggest practical difference: Greenhouse drops content that isn't under a recognized section header. A creative section called "Where I've Made Impact" might survive in Workday (parsed as freeform text under no header) but vanish entirely from a Greenhouse candidate profile.
The Greenhouse parsing pipeline
Greenhouse uses a third-party parsing layer (Sovren / Daxtra historically; the specific vendor has changed and is partially proprietary) plus internal Greenhouse logic to populate the candidate profile shown to recruiters.
The flow:
1. Text extraction. PDF converted to plain text using a standard parser. Reading order is left-to-right top-to-bottom, same as Workday.
2. Section identification. Greenhouse looks for standard section headers: Experience / Work Experience / Professional Experience / Employment History / Education / Skills / Summary / Profile. Content found under a recognized header gets extracted into the matching profile field. Content NOT under a recognized header is best-effort: sometimes parsed into "Other" / "Notes," sometimes silently dropped.
3. Entity extraction. Within each section, Greenhouse extracts structured data — for Experience: company name, job title, start date, end date, location, bullet text. Entities populate the candidate profile cards visible in the recruiter UI.
4. JD matching. When the role has required skills entered, Greenhouse computes overlap with the resume's text content. The match score informs candidate ranking but doesn't auto-reject.
5. Scorecard population. When recruiters mark the candidate as "moving forward," the resume is referenced alongside the structured scorecard each interviewer fills. Resume quality affects the implicit anchoring of subsequent interview reads.
What Greenhouse actually weights
Across senior IC and IC-track roles, the signals that dominate Greenhouse rankings:
- Required-skill keyword presence in the resume body. Greenhouse allows the recruiter to enter required skills when posting. A resume that explicitly mentions every required skill outranks one missing any. Stemming is light (handles "manage / managed / managing" but not full synonym expansion).
- Section completeness. A resume with all four standard sections (Summary, Experience, Education, Skills) ranks above one missing any. Senior roles can sometimes skip Summary; missing Skills hurts more.
- Recent role recency. Greenhouse weights most-recent role experience higher than older roles. Bullets from your current role have more impact on ranking than equivalent bullets from 2018.
- Quantified outcomes in bullets. Numerical signals (numbers, %, $) are weighted higher in Greenhouse than in some older engines. Bullets without quantification are lighter on the rank.
What Greenhouse does NOT use: cover-letter content (recruiters read it manually if they get past initial screening), school prestige (unless the recruiter manually filters), the resume's visual design (only insofar as it affects parsability).
The three things that break Greenhouse parsing
After analyzing several hundred resumes through Greenhouse-style parsing, three patterns account for the majority of cases where good content doesn't make it into the candidate profile.
1. Creative section names
This is the single most common Greenhouse failure mode. Designers and creative writers often choose evocative section names — "Where I've Made Impact," "Stories from the Trenches," "Things I've Built." A human reader appreciates the creativity. The Greenhouse regex anchor sees no recognized section header and drops the content.
The visible symptom: the candidate's Greenhouse profile shows "Experience: (none)" even though their resume clearly has work history.
The fix. Use one of the recognized headers exactly:
- "Experience" / "Work Experience" / "Professional Experience" / "Employment History"
- "Education" / "Educational Background"
- "Skills" / "Technical Skills" / "Core Competencies"
- "Summary" / "Profile" / "Professional Summary"
If you want creative naming, put the creative phrase as a tagline UNDER the standard header:
Experience
Where I've made impact
[role bullets...]
Greenhouse's parser sees "Experience" and extracts; the human reader sees both. Best of both.
2. Skills as a wall of comma-separated keywords
Greenhouse is especially good at extracting individual skills from a Skills section — and especially bad at handling a 60-item wall. The parser tries to extract each comma-separated token as an individual skill, and once you exceed roughly 30 items the extraction often degenerates into one giant "skill" containing the whole list.
The visible symptom: the candidate's Skills field in Greenhouse shows one bizarrely long string instead of clean individual skill chips.
The fix. Group your Skills section into 3-5 categories with headers, each with 8-12 items max:
Languages: Python, TypeScript, Go, SQL, Bash
Frameworks: React, Next.js, Django, FastAPI
Infrastructure: AWS, Kubernetes, Terraform, Docker
Data: PostgreSQL, Redis, Kafka, Snowflake
Tools: Datadog, Sentry, GitHub Actions, Linear
The category labels work as sub-headers; each category has a short, parseable list. Greenhouse extracts each item cleanly.
3. Date formats Greenhouse can't parse
Greenhouse parses dates more leniently than Workday but still fails on creative formats. The patterns that work:
- "Jan 2023 — Present" ✓
- "January 2023 — Present" ✓
- "2023 — Present" ✓
- "01/2023 — 12/2024" ✓
- "Jan 2023 - Dec 2024" ✓ (regular hyphen also works)
The patterns that fail:
- "Spring 2023 — Now" ✗ (Greenhouse doesn't parse "Spring" or "Now")
- "Q1 2023 — Q4 2024" ✗ (quarter notation often fails)
- "Recently — Present" ✗ (words instead of dates)
- "23 — Present" ✗ (2-digit years often fail)
The visible symptom: dates show as blank or "Unknown" in the Greenhouse profile, and the role's tenure can't be calculated.
The fix. Stick to the standard formats. If you have a current role, use "Month Year — Present" (or the equivalent format your resume otherwise uses for date ranges, kept consistent throughout).
How to test your resume against Greenhouse
The best diagnostic is the free LSI Resume Analyzer — it runs a Greenhouse-style parser simulation alongside Workday, Lever, Taleo and plain-text. You'll see the per-engine cleanliness score and the specific structural failures (creative section names, skill walls, date format issues) that would happen in Greenhouse on your specific file. Runs entirely in your browser.
If you want to test against an actual Greenhouse instance:
- Find a job at a Greenhouse-using company you don't actually want to work for (their careers page typically has
boards.greenhouse.io/companynamein the URL). - Apply with your resume.
- Most Greenhouse companies don't show you the parsed profile, but they often have an "auto-fill from resume" feature on the application form. Watch what fields populate. Missing fields = parsing failures.
The analyzer approach is faster and doesn't burn applications.
Quick checklist for Greenhouse survival
- Standard section headers — "Experience" not "Where I've Made Impact"
- Skills section grouped into 3-5 categories with 8-12 items each
- Dates in standard format: "Month Year — Present" or "MM/YYYY — MM/YYYY"
- Single column layout (multi-column hurts Greenhouse less than Workday but still hurts)
- Real text PDF (verify by copy-pasting from your PDF)
- Each role with employer name + role title + dates clearly identified
For the broader ATS context, see How an ATS Reads Your Resume which covers all five major engines. For role-specific keyword libraries Greenhouse will check against, see /resume-keywords.
Test your own resume against everything in this post
The free analyzer runs in your browser, simulates 5 ATS engines, and surfaces every issue with a snippet + fix. No signup, fully private.