Instruction
Every weekday at 7 AM read our open roles in Notion, find people whose public work matches each role, and add new candidates with a short fit summary to our sourcing database.
Steps in each run
- 1 Read open roles and requirements Notion
- 2 Load people already reviewed per role
- 3 Search public sources for matching profiles
- 4 Open portfolios and project pages
- 5 Score fit and write a two sentence summary
- 6 Create candidate pages in the sourcing database Notion
Memory. Stores every reviewed person per role with the decision, so no candidate is suggested twice for the same role.
New candidates added this run
Sample output| Candidate | Role | Fit score | Why they fit |
|---|---|---|---|
| Candidate A, Denver | Senior backend engineer | 91 | Maintains a public queue library, talks on database scaling |
| Candidate B, remote | Senior backend engineer | 84 | Six years of payments APIs shown in public portfolio |
| Candidate C, Austin | Product designer | 89 | Portfolio with three B2B dashboard redesigns |
| Candidate D, remote | Product designer | 80 | Published design system case study |
| Candidate E, Chicago | Customer success lead | 77 | Spoke at a regional customer success meetup on onboarding |
-
Candidate A, Denver
- Role
- Senior backend engineer
- Fit score
- 91
- Why they fit
- Maintains a public queue library, talks on database scaling
-
Candidate B, remote
- Role
- Senior backend engineer
- Fit score
- 84
- Why they fit
- Six years of payments APIs shown in public portfolio
-
Candidate C, Austin
- Role
- Product designer
- Fit score
- 89
- Why they fit
- Portfolio with three B2B dashboard redesigns
-
Candidate D, remote
- Role
- Product designer
- Fit score
- 80
- Why they fit
- Published design system case study
-
Candidate E, Chicago
- Role
- Customer success lead
- Fit score
- 77
- Why they fit
- Spoke at a regional customer success meetup on onboarding
Starts as a paused draft in your workspace. You review every step before the first run.
What the sourcing agent does
You keep your open roles in Notion with a short description of the skills, seniority and location you need. Every weekday morning the agent reads each open role, searches public sources such as portfolio sites, open source project pages, conference speaker lists and public professional profiles, and collects people whose public work matches the role.
For each person it writes a short fit summary that points to the public evidence, for example a project they maintain or a talk they gave. New candidates are added to your Notion sourcing database with the role, the summary and the source link. Recruiters then decide who to contact. See more examples on the recruiting use cases page.
Schedule and pacing
The default schedule is every weekday at 07:00 in America/New_York, written as 0 7 * * 1-5. A short batch of new profiles is waiting each morning, and memory keeps it small, so recruiters review a few people a day instead of a backlog. For an evergreen role you can change the sentence to every Monday.
Each step of the sourcing run
- 1Read open roles. The Notion step loads every role marked as open, with its requirements.
- 2Load people already found. A memory step reads the profiles reported in earlier runs.
- 3Search public sources. A web fetch step collects candidate profiles and public work that match the role keywords.
- 4Read public work. A browser step opens portfolios and project pages to confirm skills.
- 5Write fit summaries. An AI step scores each person against the role and explains the match in two sentences.
- 6Add to Notion. The Notion step creates a page for each new candidate above your score threshold.
The template does not contact anyone. If you add an outreach email step, it includes an approval gate so a recruiter reviews every message before it goes out.
How memory keeps the pipeline clean
Every person the agent reviews is stored in memory with the role they were considered for and the decision. On the next run those profiles are skipped for that role, so recruiters never see the same name twice. If someone fits a different role later, the agent can still suggest them for that new role. When a recruiter marks a candidate as not a fit in Notion, the agent reads that status and will not suggest the person again for the same role.
Customising the agent
- Add must have and nice to have skills to each role in Notion.
- Limit sources to the ones that matter in your field, such as design portfolios or code repositories.
- Change the score threshold and the maximum number of new candidates per role per run.
- Post a Slack summary to the hiring channel after each run.
- Add a diversity of sources rule so the agent does not rely on one site.
You can learn how agents combine web reading and reasoning in scheduled AI agents.
Who it is for
The template suits in house recruiters at growing companies, hiring managers without a dedicated recruiter and small recruiting agencies. If a recruiter spends a full day each week searching for profiles, the agent can take over the search and leave the human work of judging and contacting people. Agencies that recruit for several clients can run one cron per client database, so each client sees only candidates for their own roles and the search never mixes one client's requirements with another's.
Frequently asked questions
Does the agent contact candidates?
No. The template only finds and summarises candidates. Any outreach step you add waits for a recruiter to approve each message.
Which sources does it search?
Public web pages such as portfolio sites, open source project pages, conference pages and public profiles. You choose and limit the sources in the instruction.
How does it handle personal data?
It reads only public pages and stores the minimum needed for recruiters to review a candidate. You can delete any candidate from memory and Notion at any time. See security and privacy.
Can it source for several roles at once?
Yes. One cron reads every open role in your Notion database and sources for each one in the same run.
What if a role closes?
Mark the role as closed in Notion. On the next run the agent skips it automatically.