OPEN APPLIER
How it worksWhat we providePricing
  1. Home
  2. /Blog
  3. /Greenhouse, Lever, Ashby: a filler's-eye view

// FIELD NOTE

Greenhouse, Lever, Ashby: a filler's-eye view

May 17, 2026 · 7 min read · Aayush Baniya

From the candidate side, Greenhouse, Lever, and Ashby look like the same product in different colours. From the autofiller side they're three different problems.

Greenhouse: the easy one

Greenhouse is the most filler-friendly ATS in the market. The reason: their public job board API is well-documented, the application page is server-rendered HTML with stable IDs, and the question schema is exposed in JSON before you even render the form.

Practical implications:

  • You can pre-fetch the application's questions before showing the user the form. Ask the LLM for answers in advance, in parallel — by the time the user clicks Apply, the form is already filled.
  • File uploads work with a standard FormData POST. Boring, reliable, almost never breaks.
  • Custom questions per company are well-typed: short answer, long answer, single select, multi select, file. Five categories, each with a deterministic handler.

Failure modes are rare and benign: the occasional unicode-in-name validator error, occasional rate limiting on the file-upload endpoint. About 96% success rate in our logs.

Lever: the in-between

Lever is a single-page React app over a private API. The form is rendered client-side, so you can't scrape the questions before the user opens the page. You have to wait for hydration.

Implications:

  • Pre-fetching is harder. We resort to opening the page in a hidden tab, scraping the rendered questions, and racing the LLM against the user's scroll-to-form.
  • File upload is XHR with a custom multipart format. We reverse-engineered it; the boundary string handling is finicky and broke once when Lever changed it without warning.
  • The “additional information” free-text question varies wildly per company. Some use it as a required “why are you applying” gate; some leave it blank. We probe for the placeholder text to decide.

Lever's biggest gotcha: form state lives in a Redux store that doesn't accept value updates from outside React. You have to dispatch React-style change events; setting input.valuedirectly leaves the React state untouched, the form submits with empty fields, and you get a confusing “why did my application have no name?” bug. Standard pitfall, well known.

Ashby: the polished one

Ashby is the newest of the three and feels like it. The pages are fast, the design is clean, the validation is client-side and informative. From the autofill side it's also the strictest.

  • Ashby uses a custom rich-text editor for long-answer fields. You can't paste plain text into it; you have to dispatch beforeinput events with the right inputType. We had to write a dedicated handler.
  • Multi-select dropdowns animate the option opening, and the option click handler is debounced. We added 50-150ms wait between opening and clicking to avoid clicks on stale option DOM.
  • The file-upload widget shows real-time progress — we treat completion of the visible progress bar as the signal to proceed, not the network response (which sometimes lands later).

Upside: Ashby's validators are accurate. If the form passes its client-side check, it almost always submits successfully. Greenhouse and Lever both have surprise server-side validation; Ashby rarely does.

The cross-cutting headaches

Three things break across all three:

  1. EEO disclosures.Race / gender / veteran status / disability fields. Each ATS uses a slightly different vocabulary. Greenhouse's “Decline to self-identify” is Lever's “I do not wish to answer” is Ashby's “Prefer not to say.” We normalise on a single user preference (“answer” or “decline”) and translate per-ATS.
  2. Custom application questions.“Why are you interested in this role?” comes in all three. They have different character limits, different placeholder text, and different render modes (textarea vs rich-text). The LLM doesn't care about the differences; the fill handler does.
  3. Address parsing. Lever and Ashby want structured addresses (street/city/state/zip); Greenhouse usually wants a single line. Our user profile stores both, and we pick by the field detected.

If you're building this

Start with Greenhouse. The schema is exposed; the failure modes are obvious; you'll have something working in two days. Then add Lever — most of the work is event-dispatch hygiene. Then Ashby — the rich-text editor is the bulk of the work, and getting it right takes a week.

Don't start with Workday. Workday will eat a month of your life and have a 70% success rate on the other side. Get the easy three to 95%+ first; Workday is the post-graduate problem.

// READY?

Apply faster. Review everything.

Open Applier auto-fills Workday, Greenhouse, Lever, and Ashby with AI-tailored resumes. Every application is reviewed before it sends.

See pricingCompared to LazyApplyMore notes

OPEN APPLIER

Review-gated automation for supported ATS flows. © 2026

PricingCompareBlogTermsPrivacyContactRefundsDo Not SellChangelog