Sourcing bench for each open role, straight into Greenhouse
Pick a live requisition, build a rated shortlist against it, and push the best people into Greenhouse as prospects without a spreadsheet in sight.
Build me a sourcing bench my recruiters open per open role, so sourcing a requisition happens on one screen instead of across twenty LinkedIn tabs and a spreadsheet nobody trusts. Crustdata is where candidates get discovered and enriched, Greenhouse is the system of record I push people back into, and the app itself owns the shortlists, fit notes, ratings and push history.
The app opens on a role picker. Pull my live requisitions with the Greenhouse List Jobs operation filtered to open jobs, and show each one with its title, department and office. Picking a role opens that role's bench, and everything from that point on is scoped to that requisition. Seed the search from the role itself: prefill the title from the job title and the location from the job's office, then let me correct or add to anything before I run a search. I should be able to move between roles without losing work I have already done on another one.
The search panel builds a candidate query out of title, skills, location and current company. Every one of those pickers is a type ahead backed by the Crustdata Autocomplete Person Search Fields operation, which is free, so I am always choosing values the dataset actually recognizes rather than typing keywords that quietly match nothing. Running the search calls the Crustdata Search People (In-DB) operation. Be explicit with me about cost, because that search bills per result returned while the autocomplete does not: let me set how many results I want before I run, show me the total size of the matching pool that comes back with the first page so I can judge whether to narrow the filters before paging deeper, and never silently fetch more pages than I asked for. Note that skills are a filter only field in that dataset, so I can search on them but should not expect them echoed back on the results.
Results render as cards, not a dense table. Each card shows the person's name, current title and company, location, and their career history built from the experience data already in the search payload, with previous companies, titles and date ranges so I can read a trajectory at a glance. Show me enough history to judge someone without opening anything else, and link out to their profile.
On engineering roles, each card gets an Add developer detail action. That calls the Crustdata Enrich Developer Profiles operation for that person and renders repositories, follower counts and linked handles beside the profile. Keep it as an explicit per person action rather than something the app runs across every result automatically, because it is an extra lookup per person and it is only interesting on technical roles. Once pulled, keep it on the card so I never fetch the same person twice.
From a card I move someone into this role's shortlist, which is where the real work happens. A shortlisted person carries a fit note in my own words and a rating. Shortlists are per recruiter: my shortlist for a role is mine, and another recruiter working the same requisition keeps their own alongside it. Let me sort and filter the shortlist by rating, and drop someone off it when I change my mind.
Contact details stay hidden until someone is shortlisted. Only then does a Reveal contact action appear, calling the Crustdata Enrich Person Contact Info operation to surface business email, personal email and phone numbers. This ordering is the whole point rather than a detail: contact lookups are the expensive part and I want them spent on the handful of people I have actually committed to, never on everyone I browsed past. Cache what comes back onto the shortlist entry so a second look does not cost a second lookup, and when no contact data is found say so plainly instead of showing an empty field that reads like a bug.
An Add to Greenhouse action on a shortlisted card writes the person back with the Greenhouse Create Candidate or Prospect operation. Default to creating them as a prospect, which is the sourcing case, and let me switch to creating a candidate with an application against this requisition when that is genuinely what I want, because Greenhouse treats those as two different things. Carry over their name, the contact details I revealed, their current company and title, and my fit note, so whoever picks them up in Greenhouse can see why they were sourced. Greenhouse attributes every write to a real user, so let me pick which recruiter gets credited from the Greenhouse List Users operation and use them as the acting user on the write.
Two rules have to be enforced by the app rather than left to recruiters remembering. First, stamp every pushed person with the date they were sent and the role they were attached to, and show that on the card. Second, once someone has been pushed for a requisition, grey them out everywhere on that role's bench, in fresh search results as well as on shortlists, for every recruiter and not only the one who pushed them, and block a second push with a message naming who sent them and when. Two recruiters working the same open role must not be able to double add the same person. That push history is shared across the team and has to persist.
On practicalities: Crustdata rate limits these endpoints separately and the enrichment calls are tighter than search, so pace per person lookups sequentially rather than firing them all at once when I open a busy shortlist, and show progress instead of appearing to hang. Handle a search that returns nothing with an empty state that suggests which filter to loosen. Never invent an email address, a phone number or a repository. If the lookup came back without it, show it as not found.
What does this prompt do?
- Start from a real open role: pick one of your live requisitions and the bench seeds a candidate search from its title, skills, location and target companies, with type-ahead pickers so you are choosing values that actually exist rather than guessing keywords.
- Every result is a card showing career history at a glance, and on engineering roles you can pull in someone's public developer profile so repositories, followers and linked handles sit right next to the work history.
- Shortlist the people worth pursuing with a fit note and a rating, and only then reveal emails and phone numbers, so you are not paying for contact details on everyone you merely scrolled past.
- Push shortlisted people into Greenhouse as prospects attached to that role, stamped with the date they were sent, with anyone already pushed greyed out so two recruiters working the same role never add the same person twice.
What do I need to use this?
- A Greenhouse account with permission to view jobs and create candidates and prospects
- At least one open role in Greenhouse to source against
- A Crustdata account, which is what powers the candidate search and the contact lookups
- A rough idea of the roles you want the bench pointed at first: the title, the location, and the companies you like to hire from
How can I customize it?
- Change how many results a search pulls by default, so you can browse wide on a hard role and stay tight on an easy one
- Adjust the rating scale and what the fit note asks for, to match how your team already talks about candidate quality
- Decide whether the push defaults to a prospect or to a full candidate with an application, and which recruiter gets credited for the source
FAQs
Does this add people to Greenhouse as candidates or as prospects?
When does looking someone up actually cost me money?
Will it stop two recruiters adding the same person to the same role?
Is this only useful for engineering roles?
Does each recruiter get their own shortlist?
Related templates
See every candidate who has gone silent on your open roles, how long they have been quiet, and restart them on WhatsApp in one click.
See every interviewer's scores next to what the candidate actually said, spot where the panel disagrees, and catch ratings nothing backs up.
See every take-home waiting on a verdict, read the code in the app, and have it built and tested in a throwaway machine instead of on your laptop.
See every incoming hire, which onboarding documents they have actually signed, and who starts in days with paperwork still outstanding.
See every interview still missing a writeup, listen back to what the candidate actually said, and file the feedback before you forget it.
Open one screen per open role, search for candidates, work them across a Sourced, Shortlisted and Rejected board, and send the best people to Greenhouse.
Stop sourcing out of twenty LinkedIn tabs.
Open one bench per role, shortlist the people worth your time, and send them to Greenhouse in a click.