FlowRunner
PricingContact
Theme
Start Free

Greenhouse

HR

Connect AI agents to Greenhouse Recruiting via the Harvest API. Agents create and update candidates, attach resumes and notes, advance, move, reject, or hire applications, and read scorecards, interviews, and offers across 33 actions covering the full hiring pipeline.

33 actions Basic auth available
Greenhouse website ↗ Platform Documentation ↗ Capability data verified 2026-07-21
A sourcing tool or careers inbox delivers a new applicant with a resume attached
List Candidates filters on the applicant's email so an existing profile is found before anything is written
Create Candidate writes the profile with an application to the open job, attributed to the recruiting coordinator through the On-Behalf-Of user
Add Attachment to Candidate uploads the resume from FlowRunner file storage onto the profile
Add Note to Candidate logs the source, the outreach thread, and the screen summary on the activity feed
The recruiter reads the screen summary and decides whether this candidate advances or exits
Advance Application moves the keeper to the next stage, or Reject Application closes out with a reason pulled from List Rejection Reasons
The decision posts to the recruiting channel in Slack with a link to the candidate

What This Integration Enables

Greenhouse treats hiring as a pipeline with stages, scorecards, and owners, and the Harvest API exposes all of it. That structure is exactly what agent orchestration needs: FlowRunner agents move candidates through a process the same way they move invoices or orders, with one difference that matters. Every write in Greenhouse requires an On-Behalf-Of user, which means agent work in the hiring pipeline is attributed, auditable, and reversible in reputation even when it is not reversible in fact. With 33 actions across the pipeline, agents handle the mechanical majority of recruiting operations: - Intake: dedupe, create, and enrich candidates with resumes, notes, and correct sources - Progression: move, advance, reject, and hire applications against the stage list read live from Get Job Stages - Visibility: read scorecards, scheduled interviews, and offers to drive digests, calendar sync, and chase-up nudges - Hygiene: keep departments, offices, sources, and custom fields as live reference data instead of tribal knowledge The dividing line stays sharp. Agents do the reading, writing, and reminding. The judgments that touch a human being's candidacy, the rejection, the hire, the offer, belong to people, delivered through [human-in-the-loop](/concepts/human-in-the-loop) gates with full context attached.

Without FlowRunner

Intake by copy-paste Applicants from sourcing tools, referrals, and inbound email get retyped into the ATS days later, or not at all
Pipeline stalls nobody sees Applications sit in a stage because the scorecard is missing and no one is counting the days
Decisions without a trail Who rejected whom, and why, lives in someone's memory instead of the record

With FlowRunner

Every applicant lands once Agents dedupe on email, create the candidate, attach the resume, and log the source before a recruiter opens the profile
Stalls surface themselves Agents read stages, scorecards, and interviews on a schedule and nudge the exact person who owes the next move
Every write is signed Each create, advance, and rejection carries an On-Behalf-Of user, so the audit trail reads like a decision log

Use Case Scenarios

Sourcing intake without the Tuesday backlog

A recruiting team sources from three channels that all end in a spreadsheet. The agent watches the intake sheet in [Google Sheets](/integrations/google-sheets), and for each new row runs List Candidates on the email to catch returning applicants. New people get Create Candidate with an application to the right job, Add Attachment to Candidate for the resume, and Add Note to Candidate recording where they came from, with the source ID matched from List Sources so the channel reporting stays honest. Returning candidates get an Update Candidate refresh and a note instead of a duplicate. Recruiters open Greenhouse each morning to a pipeline that is already current.

The scorecard chase, retired

Interview feedback is the slowest step in most pipelines, and chasing it is nobody's favorite job. On a daily schedule, the agent runs List Applications for active pipelines, then List Scheduled Interviews for Application and List Application Scorecards for each. Interviews that happened without a submitted scorecard generate a direct [Slack](/integrations/slack) nudge to the named interviewer, escalating to the hiring manager after two business days. Upcoming interviews sync to [Google Calendar](/integrations/google-calendar) with candidate context in the description. The pipeline report nobody had time to build posts itself every Friday.

Offer sign-off with the numbers in front of the signer

When an application reaches the offer stage, the agent calls Get Current Offer for Application and sends the compensation, start date, and level to the hiring manager and finance approver through [Gmail](/integrations/gmail-service). Only after both approve does the agent run Hire Application, filling the specific opening from List Job Openings and setting the start date. If the hire fills the last opening, the agent asks whether to backfill, and on a yes runs Create Job Opening with the new headcount reference. The offer goes out once, approved, and the requisition math stays correct without a spreadsheet reconciliation at quarter end.

Human-in-Loop Highlight

Reject Application can send the rejection email, and that email reaches a person who wanted this job. It cannot be unsent, and a rejection fired at the wrong candidate, or at the right candidate with the wrong reason attached, is a real cost paid in employer brand and occasionally in legal exposure. So in FlowRunner, no agent rejects on its own judgment. The agent assembles the case: the screen summary, the scorecard ratings from List Application Scorecards, the stage history, and the proposed reason from List Rejection Reasons. The recruiter reviews and answers, and only then does Reject Application run, attributed to that recruiter through On-Behalf-Of. The same gate guards Delete Candidate, which permanently removes a person and every application they ever made. Agents prepare decisions about people; people make them.

Agent processes routinely
Detects exception requiring judgment
Clear match Continues automatically
Ambiguous Routes to human via email
Human decides
Agent resumes with decision

Agent Capabilities

33 actions

Candidates

8
  • List Candidates Retrieves a paginated candidate list with filters for created and updated timestamps, job, email, and specific IDs. The dedupe step before any write.
  • Get Candidate Retrieves one candidate with contact details, tags, custom fields, attachments, and an application summary.
  • Create Candidate Creates a candidate, optionally with an application to a job in the same call. A write operation attributed to an On-Behalf-Of user.
  • Update Candidate Partially updates a candidate; supplied fields change and array fields like emails are merged rather than replaced.
  • Delete Candidate Permanently deletes a candidate and all of their applications. Cannot be undone, which is why it sits behind a human gate.
  • Add Note to Candidate Adds a note to the candidate's activity feed with chosen visibility. How agents leave their reasoning where recruiters will read it.
  • Add Attachment to Candidate Uploads a resume, cover letter, or offer letter from FlowRunner file storage to the candidate.
  • List Candidate Applications Retrieves all applications for one candidate with status, stage, job, and source.

Applications

7
  • List Applications Retrieves applications across the organization, filterable by job, status, and creation time.
  • Get Application Retrieves one application with candidate, job, current stage, status, source, and job-post answers.
  • Move Application Stage Moves an application between named stages using stage IDs from Get Job Stages.
  • Advance Application Advances an application to the next stage in its job's pipeline.
  • Reject Application Rejects an application with a reason, optional notes, and an optional rejection email. The action this page's human gate exists for.
  • Hire Application Marks an application hired, optionally filling a specific opening and setting a start date.
  • Update Application Updates an application's source or referrer, keeping channel attribution accurate.

Scorecards and Interviews

2
  • List Application Scorecards Retrieves completed scorecards with interviewer feedback, ratings, and attribute scores. The raw material for feedback chasing.
  • List Scheduled Interviews for Application Retrieves scheduled interviews with times, interviewers, location, and video conferencing details.

Offers

2
  • List Application Offers Retrieves all offers on an application with status, compensation, and start date.
  • Get Current Offer for Application Retrieves the active offer, the numbers a hiring manager approves before anything is extended.

Jobs

5
  • List Jobs Retrieves jobs filterable by status, requisition ID, and creation time, with departments, offices, and hiring team.
  • Get Job Retrieves one job with openings, hiring team, and custom fields.
  • Get Job Stages Retrieves a job's interview stages in pipeline order. Read this live instead of hardcoding stage IDs.
  • List Job Openings Retrieves a job's openings, each a distinct headcount slot a hire can fill.
  • Create Job Opening Adds openings to a job with an optional external reference and employment status. A write operation.

Job Posts

2
  • List Job Posts Retrieves public and internal job posts, filterable to active and live posts.
  • Get Job Posts for Job Retrieves the internal and external postings for a specific job, with content.

Users

2
  • List Users Retrieves Greenhouse users, filterable by email. The way to resolve the On-Behalf-Of user ID that signs every write.
  • Get User Retrieves one user with name, emails, role, and enabled status.

Reference

5
  • List Sources Retrieves the configured candidate sources, so attribution uses real IDs instead of guesses.
  • List Rejection Reasons Retrieves the configured rejection reasons for use with Reject Application.
  • List Departments Retrieves departments including their parent and child hierarchy.
  • List Offices Retrieves offices and their hierarchy.
  • List Custom Fields Retrieves custom field definitions for candidates, applications, jobs, and offers, including types and select options.

Frequently Asked Questions

What can FlowRunner do with Greenhouse?

FlowRunner agents can run List Candidates, Get Candidate, and Create Candidate in Greenhouse, plus 30 more actions.

Does connecting Greenhouse to FlowRunner require OAuth?

No. Greenhouse connects to FlowRunner with basic authentication (a username and password), no OAuth flow required.

Can Greenhouse trigger a FlowRunner workflow automatically?

Greenhouse doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

Start building with Greenhouse

$100 in credits. No card required. Connect in minutes.