Most tutorials on how to build an AI agent for job search end in one of two places. Either a bot that fires your resume at 300 listings while you sleep, or a seven-service stack with a cloud server, a vector database and a tracing dashboard. The first gets your account restricted and your application binned. The second never gets finished. This is the version in between: an agent that scouts, scores and drafts, then stops and waits for you. You can build it in a weekend, and when it works, the agent itself is the best thing on your resume.
The short answer
Build four parts: a profile, one search tool, a scorer and a drafter. Add a gate so nothing is ever submitted without you reading it. That is the whole architecture, and the gate is not a compromise. It is the part that makes the agent worth having, because the numbers below say the volume game is already lost.
Why the agent must stop before the submit button
What recruiters are drowning in
Greenhouse analysed over 640 million applications across more than 6,000 companies between 2022 and 2025 and found the average open role now draws 244 applications. Their March 2026 report puts the increase at 111%, from roughly 115 applications per role in 2022, while recruiting teams shrank by about half over the same period.
A chunk of that pile is machines. Breezy HR looked at 3,261,897 applications submitted between December 2025 and May 2026 and flagged 7.08% as bot-automated. Remote roles attract 176.1 candidates on average against 113.9 for on-site ones, which is exactly where the bots concentrate. The same report lists what separates a real application from spam in the screener's eyes: proof of work such as portfolio links and repos, and specifics about the actual company.
And the people on the other side are tired. In Greenhouse's 2025 AI in Hiring survey, 34% of recruiters said they spend up to half their working week filtering spam, while 22% of US candidates admitted to using bots to submit applications. Every auto-applied resume makes the human reading yours a little less patient.
What tailoring is actually worth
Huntr tracked 1.39 million applications in the second quarter of 2025 and found customised applications converted to interviews at 5.75% against 2.68% for generic ones. That is the number that decides the design. Twenty tailored applications a week beat two hundred generic ones, and twenty is a volume a human can review. The same page cites a TopResume survey of 600 hiring managers in which 33.5% said they can spot an AI-written application in under 20 seconds and 19.6% reject it on the spot. They are not running detection software. They are recognising the same paragraph for the fortieth time.
The rule that gets accounts restricted
The build that ranks highest for this search uses Claude Code and Selenium to drive your logged-in LinkedIn session, finding 50 to 130 postings per run and submitting each in 60 to 90 seconds. It is impressive engineering. It also does the one thing LinkedIn's user agreement explicitly bans: section 8.2 prohibits bots, crawlers and extensions that automate activity on the site, with account restriction as the stated consequence. A popular open-source repo offers the same thing with a minimum score of 70, a cap of 10 applications per run and a dry-run flag. Use that repo's dry-run idea. Never flip it to live.
What the agent does: scout, score, draft, you decide
The loop on paper
Before you open an editor, write the loop in one line. Dexity's guide, which follows Anthropic's own agent-engineering advice, gets it right in six steps: intake, one search tool, score with reasons, draft, a human-approval gate, then masking and logging. The agent holds your authority to search and draft. It never holds your authority to submit.
If you have never built an agent at all, read our guide to building your first AI agent with no code first. It explains the four parts every agent has, and this project is the same shape with a job board plugged in as the tool.
The weekend build
Saturday morning: the profile and one search tool
Start with the thing nobody wants to write: your master profile. One tutorial calls it a master career database, a long document listing every project, metric, tool and failure from every job you have held, used as the only source the drafter may pull from. For a graduate it is two pages, not ten. Include the group project you actually led, the hackathon, the part-time job. The agent can only reference what you give it.
Then give the agent exactly one search tool. The cheapest honest version is the Hacker News Who is Hiring thread, which has a free JSON endpoint and needs no login, plus any RSS feed from a remote board. If you want the big boards, the open-source jobspy library wraps several of them, and the builder who used it warns that you must set the flag that fetches the full description, because without it you get a two-sentence snippet and the scoring is useless. A neat trick from the same cluster: searching for the URL strings of ATS portals such as greenhouse.io or lever.co takes you straight to the source and skips the aggregator lag.
Save everything as one line of JSON per listing. By lunch you should have a file of raw postings and no AI involved yet.
Saturday afternoon: the scorer
Now the model earns its keep. For each posting, send your profile and the full description and ask for a score from 0 to 100, the skills that matched, the gaps, and one sentence of reasoning. The reasoning is not decoration. It is how you catch the scorer being wrong and fix the prompt.
Steal the control logic from the LangGraph Job Scout build, which scores in batches of five, caps the search at 25 postings, and loops back to broaden the query if fewer than five jobs clear a score of 60, at most twice. That bounded loop is the line between a workflow and an agent, and the cap is what keeps your API bill at pennies. Set your threshold between 70 and 75, which is where both of the public builds landed, and keep the rest of the postings in the file rather than deleting them. You will want to see what it rejected.
Sunday morning: the drafter
For every posting above the threshold, the agent drafts two things: a tailored version of your resume and a short cover note. Two rules, both from builders who shipped this. Reword, do not invent: rewrite your existing bullets in the posting's language, and if the role wants something you lack, the agent says so instead of fabricating it. And never overwrite the master: every tailored version is a new file named for the company and date, while the master stays read-only. The second rule sounds trivial until the day the agent silently rewrites the only copy of your real resume.
Tell the drafter to use real metrics from the profile and to keep the note under 150 words. Short, specific and grounded in things you can repeat in an interview is the whole brief.
Sunday afternoon: the gate, the log, the break test
The gate is the simplest part and the one everyone skips. The agent writes its shortlist somewhere you will see it and stops. The Telegram build sends the top five every morning at seven and waits for you to reply tailor or skip; the Sunday-workflow build reviews the top ten once a week in 30 minutes. Pick one. Either way, you open the posting, read the draft, change what sounds like a machine, and submit by hand on the employer's site.
Log every run: what was found, what was scored, what you approved, what you skipped. Those skip reasons become new scoring rules next weekend, which is how the agent learns your taste without a database.
Then break it. The student tutorial that ranks for this search says a good first agent has a clear goal, few tools and an obvious way to check the output. Test all three. Feed it a posting with no salary and see whether it writes unknown or guesses. Point the search tool at a dead URL and see whether it reports the failure or returns a cheerful empty shortlist. Give it a role you are clearly unqualified for and check that the score is low and the reasoning says why.
Code or no code?
Both routes reach the same agent. In n8n you wire a schedule trigger, an HTTP node for the job feed, an AI agent node for scoring and drafting, a Google Sheet for the log, and a Slack or Telegram message as the gate. In Python it is one script of a few hundred lines and a cron entry. The builder who did it in Python put the setup at about three hours, then 30 minutes every Sunday to refresh the feeds and review the top ten.
If you are starting from zero, the no-code route gets you a working loop faster and you can port it to code later; our planned guide to building an AI agent from zero covers that jump, and if automation is the skill you really want, start with learning AI automation as a beginner.
The agent is the application
Here is the part the tutorials miss. A graduate with a thin resume does not need a tool that sends more applications. They need something to show. The agent you just built is that thing: a repo with a README, a log of real runs, and a paragraph on what it got wrong in the break test and how you fixed it. That is proof of work, and proof of work is what the Breezy screeners list as the signal that gets a real applicant past the spam filter.
We see this every intake. At EX EPIC Academy in Canggu, Bali, participants from 26 nations work on 15 live projects with no grades and no exams. The 78 open positions run four to six months on-site, with AI and automation as one of the tracks, and people are placed into operating roles at real companies: Zero X in waste-to-energy, Gemino AI in automation, LIV in wellness. More than 250 operators have been trained and deployed this way. The applications that get a reply from us are rarely the polished ones. They are the ones with a link to something that runs.
So when the agent surfaces a role you want, do not send the draft. Send the draft plus the agent. Put the repo link in the first line, the way we describe in the cold emails for a startup internship that actually got replies. If the role is an AI internship, the agent is literally the proof that you can get an AI internship with no experience, because you now have some. And if you want a second project, there are more AI project ideas for beginners and a guide to building a portfolio with no experience that starts exactly here.
Build it this weekend. Run it next Sunday. Apply to five jobs with a link to the thing that found them.
FAQ
Is it legal to build an AI agent that applies to jobs for you?
Building one is fine. Letting it drive a logged-in LinkedIn session or auto-submit forms is what the platform prohibits, and most applicant tracking systems say the same in their terms. The line is simple: the agent may search, score and draft, and you press submit. An agent that stops at the review step is indistinguishable from a careful manual application, because that is what it produces.
Can recruiters tell when an AI wrote my application?
Often, and quickly, but by reading rather than by software. A third of hiring managers say they spot it in under 20 seconds, and the tells are generic phrasing, a letter that never names the actual role, and round numbers you cannot explain. A draft rewritten from your real profile, in your own words, with a link to real work, does not trip any of those.
How many jobs should the agent surface per week?
Fewer than it can find. The daily-digest builds send five a morning and the weekly builds review ten on a Sunday, which is 20 to 30 tailored applications a week at most. That is roughly the volume where tailoring still happens and the interview math still works. If the shortlist is longer than you can read, raise the threshold, do not lower your attention.
Do I need to pay for job-board APIs to build this?
No. The Hacker News hiring thread has a free JSON endpoint, several remote boards publish RSS, the jobspy library scrapes the major boards without keys, and the LangGraph build runs with zero required API keys on a committed offline cache of about 247 postings. Your only real cost is model tokens, which stay at pennies if you cap the search at 25 postings per run.
