Reads the hiring web. Keeps the few worth contacting.
Every hour it searches company job boards, works out who is hiring and who handles it, and checks each one against a fixed rule. Nothing gets emailed until a person signs off.
- Runs
- Every hour
- Since
- 8 Sep 2026
- Data stays
- On our machine
companies passed the rule since 8 September
One hour, six steps.
A timer on our own machine starts a pass every hour. Each pass uses one search term, and each term rests before it comes round again.
- 01Search
Pick a search term
One hiring term per run, like recruiter, talent partner or founding engineer.
- 02Collect
Search job boards
Greenhouse, Lever and Ashby boards plus web search, and the Hacker News "Who is hiring?" thread once a day.
- 03Inspect
Read company sites
Checks the company is real, finds contact pages, and sizes it up: agency, founder-led or enterprise.
- 04Locate
Find a person
A named recruiter or talent lead. Otherwise it guesses the email pattern and checks the mail server, then tries Hunter, LinkedIn and X.
- 05Decision
Qualify
The fixed rule approves or rejects. Only records it can't decide go to an AI score, which approves at 0.75 or higher.
- 06Hand off
Send to the CRM
Every decided record goes over as a company and a contact, with the reason attached.
Day by day, most get dropped.
Companies found each day in October, against the ones that passed. On its busiest day it found 281 and kept 52.
The fixed rule made 292 of 315 approvals. An AI score settled the other 23, only where the rule couldn't decide.
The rule. All five must pass.
A record that fails one check is rejected, and the reason is saved next to it so anyone can see why.
- [✓]
A real company
Its own live domain that accepts email. No job-board or directory pages.
- [✓]
Hiring now
A recruiting agency, or a company that posted roles in the last three months.
- [✓]
Someone to reach
A recruiting, talent or people lead with a working email or verified profile, or a hiring inbox like
talent@. - [✓]
Founders only when small
A founder counts as the contact only at companies of 200 people or fewer.
- [✓]
No junk
Article titles, page labels mistaken for names, and competitors are thrown out.
of the companies it checks make it through. Every rejection is stored with the check it failed.
After the engine, people decide.
The CRM stores what the engine sends and never approves anyone by itself. Only approved records can join a campaign, and three human sign-offs stand before any send.
- Automatic
Lead lands in the CRM
As a company and a contact, with the engine's reason.
- Person
Each draft is approved
Someone reads every drafted email.
- Person
The copy is approved
The campaign wording is signed off as a whole.
- Owner or admin
The send is authorised
Only an owner or admin can release it.
- Automatic
The mailer sends
Opted-out addresses are blocked, and new sending domains warm up slowly.
Known gaps. Three warnings.
Problems we know about, written down so they get fixed rather than forgotten.
qualified organisations are enterprises. We sell to founders, small teams and agencies, so the rule needs a size limit.
Off-target terms
Business development, account manager and chief of staff pull in companies that don't fit.
Too much re-syncing
Every hour it re-sends records the CRM already has. Harmless, but noisy.
Where it runs, where it's going.
Runs on our own machine
- A Next.js app with a local SQLite database. Credentials and contact data never leave the machine.
- A system timer starts a pass every hour, then syncs to the CRM.
- It feeds the CRM, which feeds the mailer at mail.vettika.com.
A version for any industry
- The recruiting rules now live in a profile file, so the same engine can look for any kind of customer.
- Describe your customer in plain English and it drafts the profile, then shows how 20 real leads would score.
- One setup command creates the database and asks for your own keys.