Migrate from Greenhouse
INTEGRATIONS · EXPERTINI ATS

Migrate from Greenhouse

Moving off Greenhouse? Bring your jobs, your candidates, and your live pipeline — including which stage every application was at — across in one structured upload.

3 min read · Updated July 2026 · Expertini Editorial

Greenhouse is a capable enterprise ATS, and teams that leave it usually do so over cost and complexity, not capability. What keeps them from moving is the data: years of jobs, thousands of sourced candidates, and — the part every migration tool ignores — the live funnel, who is at phone screen, who is at offer. Expertini's Third-Party ATS Import moves all three: jobs arrive as reviewable drafts, candidates join a searchable talent pool, and applications re-attach each candidate to their job at the stage they were at, with common Greenhouse stage names mapped onto your pipeline automatically.

The migration is self-serve and honest about what it is: Greenhouse lets you export your own data (it's your legal right), you reshape that export to our documented JSON sample — a spreadsheet exercise or a ten-minute script — and upload. No migration consultants, no per-record fees, no quarter-long project plan. Greenhouse is a trademark of its owner; this page describes moving your own data out of your own account, which no vendor can gatekeep.

Watch the 30-second overview — no sign-up needed

Which system are you moving from?

Type to search — picking a vendor opens the dedicated migration guide for it. Every path lands in the same importer, with the same honest batch limits and dedupe rules.

Dependency map — what imports, exactly

Jobstitle, description, location, type, category, salary, experience & education levels — arrive as DRAFTS, nothing goes live by accident
Candidatesname, email, phone, title, location, skills, notes — into the talent pool, deduplicated by email
Applicationscandidate_email + job_external_id + stage + applied_at — rebuilds your funnel; foreign stage names ("phone screen", "offered", "onsite"…) map automatically, unrecognised ones land in Applied
Batch limits500 jobs and 2,000 candidates per upload — split bigger exports; duplicates are skipped, so overlapping batches are safe
CVsdon't travel through JSON — imported candidates carry their profile text; CVs can be added to records any time

Interface blueprint

Structural schematic of the surface — panels, hierarchy, and interaction affordances. A contract, not a screenshot.
Your current ATS
CSV / JSON / API export
Settings → Data export, or ask support — the data is legally yours.
The sample JSON contract
jobs[]candidates[]applications[]
Field names must match the sample exactly; anything extra is ignored. Reshape with a spreadsheet, a small script, or any AI assistant: “convert to this format”.
Inside Expertini ATS
jobs → drafts candidates → talent pool applications → funnel, stages mapped
Deduplicated by email · nothing publishes without your click.
Fig. 1 — the migration pipeline: export from your current system, reshape to the sample JSON contract, import with dedupe and automatic stage mapping.

Interaction flow — states, validations, feedback

Every state below is enforced server-side; the interface reports it, it doesn't decide it.
Export from GreenhouseCSV/JSON/API export — usually Settings → Data export, or ask support; the data is legally yours
Reshape to the sample JSONspreadsheet save-as-JSON, a small script, or paste both files into an AI assistant: "convert to this format"
Upload & validatefield names must match the sample; anything extra is ignored, errors are named
Dedupe + stage mappingcandidates matched by email; foreign stage names map onto your pipeline automatically
Working pipelinejobs as drafts, talent pool populated, funnel rebuilt — review, then publish
Over the batch cap → split the file; overlapping batches are safe because duplicates skipUnknown stage name → lands in Applied, never lostField name mismatch → named validation error; nothing partial importsJobs import as drafts — nothing is published without your clickCVs can't ride in JSON — attach them to imported records afterwards
Fig. 2 — interaction flow: navy = states, gold = server-enforced gates, green = confirmed outcomes; tags list the edge cases and their feedback.

01What comes across, piece by piece

Jobs: title, description, location, employment type, salary data, experience and education levels — landing as drafts so nothing goes live before you review it. Candidates: name, email, phone, title, location, skills, and notes, deduplicated by email into the talent pool where CV parsing and search make them findable again. Applications: the funnel itself — candidate, job, stage, and application date — so your pipeline view on day one in Expertini looks like your pipeline view on the last day in Greenhouse, not an empty board.

02How stage names translate

Greenhouse workspaces name stages freely — "Phone Screen", "Onsite", "Offer", "Take-Home". The importer maps roughly forty common stage vocabularies onto Expertini's pipeline stages automatically (phone screen → screening, onsite → interview, offered → offer, and so on), and anything unrecognised lands safely in Applied rather than failing the row. You can move any application afterwards — the point is that nobody starts from zero.

03How to run it, step by step

One: export from Greenhouse — jobs and candidates via its own export tools or a data request. Two: download our sample JSON from the import page and reshape your export to match it; the sample shows all three arrays (jobs, candidates, applications) with every field named. Three: upload. You get a per-row report — imported, duplicate, invalid, and why — and re-uploading never creates duplicates, so batching a large migration is safe. Most teams finish in an afternoon.

04After the move

Imported candidates flow into the same candidate database as new applicants — searchable, taggable, scoreable with resume scoring against your open roles. Publishing your reviewed draft jobs distributes them across Expertini's network at no per-posting fee, and your team picks up the funnel exactly where Greenhouse left off.

Frequently asked questions

Can I really export my data from Greenhouse?
Yes — your data is yours, and Greenhouse provides export paths. If your plan gates a full export, their support must still hand over your data; the reshape-to-JSON step is the same either way.
Does the funnel really come across?
Yes — the applications array links each candidate (by email) to a job (by your old system's job id) at a stage, and stage names map onto Expertini's pipeline automatically. Unrecognised names land in Applied rather than erroring.
What about CVs?
CV files can't travel through JSON, but candidates arrive with their profile text, and CVs can be attached any time — including in bulk from a Dropbox or OneDrive folder via the cloud CV import.
What does the migration cost?
Nothing beyond the subscription — the importer is included on every plan, with no per-record fees. See pricing.

At a glance

  • Jobs, candidates, AND the live funnel — stages preserved
  • Greenhouse stage names auto-mapped onto your pipeline
  • Jobs arrive as drafts — nothing publishes without review
  • Candidates deduplicated by email into a searchable talent pool
  • Per-row import report; re-uploads never duplicate
  • Self-serve, one afternoon, no migration fees

See migrate from greenhouse on your own hiring.

Bring a real job description to a 30-minute demo — free trial included.

Book a demo
Expertini AI
Online now
Hi! I'm Expertini's AI Product Expert. Ask me anything about our solutions, get guidance on any of our Hiring Tools, or just tell me what you're trying to do — I'll point you in the right direction. For account-specific issues, email support@expertini.com.