The problem
I had a list of 47 companies I wanted to apply to. Not 500. Not "whatever's on Indeed." Forty-seven specific AI companies — Anthropic, Modal, LangChain, Cohere, Cursor, E2B, Replit, Perplexity, Supabase. The ones building the infrastructure I want to work on.
Almost all of them use Ashby, Greenhouse, or Lever as their ATS. None of the mainstream "AI job tools" support any of these.
What I tried
LazyApply — 1.9 stars on the Chrome Store
LazyApply's pitch is "apply to hundreds of jobs in one click." In practice it autofills LinkedIn Easy Apply forms and calls that an application. It has no support for Ashby, Greenhouse, or Lever — the entire list of ATS platforms my 47 companies use. Even on LinkedIn it's unreliable. Users consistently report blank or half-filled submissions, spam flags, and auto-applying to jobs they never approved.
Simplify — autofill overlay, not an applicator
Simplify is a browser extension that pre-fills forms as you navigate to them. It doesn't submit anything. You still click Apply on every single form. For 47 companies that's 47 manual sessions. It also has no Ashby support — works on lever.co and greenhouse.io but not on Ashby portals.
Huntr and Teal — trackers, not applicators
Kanban-style job trackers. They don't submit applications or connect to any ATS. They're spreadsheets with a better UI. Useful for tracking. Not what I needed.
Loopcv and Sonara — wrong job boards entirely
They advertise "automated job applications" by scraping Indeed, LinkedIn Jobs, and general boards. The companies I'm targeting don't post on Indeed — they post on their own Ashby portals, their own Greenhouse boards, their careers pages. Loopcv doesn't know those exist.
Why these tools specifically don't work for me
The failure isn't bad software — it's that these tools were built for a different use case: high-volume applications to mainstream aggregators. Apply to 500 roles on Indeed, get 5 responses.
That strategy doesn't work for me for two reasons:
1. I'm Canadian, applying to US companies. Most of those 500 Indeed jobs won't sponsor visas or hire internationally. The signal-to-noise ratio is terrible for my situation.
2. I'm not interested in most companies. The 47 I'm targeting are the ones I actually want to work at.
The Ashby job board API is public. api.ashbyhq.com/posting-api/job-board/{slug}
returns every open role in JSON. No authentication. No scraping. The data is just there.
Every tool in this space is doing browser automation on aggregators and none of them are
calling the APIs the actual companies use.
What JobHound does instead
JobHound calls the source APIs directly. Fetches every open role from every company in my list, scores each one with a keyword heuristic (no Claude call, just Python), and queues the ones that match my profile. Claude Code then reads the job description alongside my resume and writes a tailored CV and cover letter for each role. Playwright submits the application form.
The whole thing runs as an MCP server. From inside Claude Code:
jobhound_scan() # fetch and score
jobhound_list("queued") # see what's waiting
jobhound_get_for_tailoring(42) # read the job + resume
[Claude writes the tailored docs]
jobhound_apply_tailored(42, ...) # submit
Results
First run: 47 target companies, one session. 8 confirmed submissions (Cognition, LangChain, Bree, Oscilar, Modal, Supabase, and two others), with more pending. Every application had a tailored cover letter and a re-ordered CV emphasizing the skills most relevant to that specific role.
The tools that were supposed to automate this gave me 0. The tool I built in a weekend gave me 8.
Both repos are on GitHub: jobhound-mcp (MCP server) and jobhound-tui (terminal dashboard).