It never submits an application.
Drafts are written into the note and stop there. Applied, interviewing and offer are statuses only a person can set, because only a person knows.
Stop refreshing forty job boards and losing track of what you sent where.
TekJobs watches hundreds of company boards every morning, scores every posting against criteria you own, and files each match as a markdown note in a folder on your machine. It reads your mail for replies, drafts the resume and the letter from your own resume, and stops before anything is sent. The LLM is the coding CLI you already pay for.

A scheduled task does the first three before you wake up. The last two are yours, and the app keeps them short.
Every morning: 350-plus company boards on Greenhouse, Lever, Ashby, Workday and the rest, the Google and Apple career pages, and a dozen aggregator feeds. Around 25,000 postings a run, deduplicated. All public, all key-free.
Each posting is scored against criteria you own: title terms, hard exclusions, description keywords, seniority, a remote rule, a pay floor with a stretch band, recency. Every point is written down as a reason.
A match becomes a markdown note in a folder on your machine: the posting, why it matched, a status log, an application packet. Open the folder in Obsidian or anything else. The notes are the record; nothing else is.
Today shows the few worth a decision and what is about to close. Shortlist or pass, with a reason. Mail says reads your inbox for confirmations, rejections and interviews and asks you to confirm each one.
A tailored resume and a letter written from your resume of record, checked against it, saved into the note. The copy panel holds the answers forms keep asking for. You review, you click send; the app never does.
Dark by default, one accent used sparingly, every number in mono. Filters are chips, views are links, and the sheet says why a job scored what it scored.


A job search is a series of claims about things that happened to you. The software drafts and files; the claims stay yours.
Drafts are written into the note and stop there. Applied, interviewing and offer are statuses only a person can set, because only a person knows.
No profile scraping, no automated messages. A single job link you paste is read once, the way a browser would open it.
The mail check runs with only Gmail's read tools allowed and every write tool denied by name. The model extracts; matching and every change to a note is ordinary code, and nothing changes until you confirm.
The scan runs on your machine, the notes live in your folder, and the LLM is the coding CLI you already pay for, signed in locally. No accounts, no API keys, no telemetry.
The author's own vault, on 22 September 2026. The board registry that produces the first two numbers is in the repository as a markdown table, and pull requests to it are the most useful contribution.
Company boards on nine platforms plus the Atlassian, GitHub, Spotify and Amazon career APIs and the Google and Apple pages, in one daily run.
Fetched, deduplicated across sources, scored, and cut to the ones that clear your bar. About a minute on a laptop.
Claude Code, Claude Desktop, Cursor or ChatGPT can run the whole search over the same notes: find, move, draft, add boards, start scans, read the mailbox.
No sign-up, no server, no key. A folder of markdown and a scheduled task.
Nothing personal lives in the repository. Your profile folder, criteria, notes and mail state are outside it; the repository is the code and the starter notes.
The interview runs through the app's own MCP server in the coding CLI you already have: it reads your resume, asks the few things a resume cannot say, writes your profile and criteria, and runs the first scan. After that a scheduled task does the mornings.
Everything after the first scan is in the docs: the profile folder, scoring, mail, people, the copy panel, letters and resumes, and the 39 MCP tools.
git clone https://github.com/Timurtek/tekjobs && cd tekjobs
npm install
npm run init -- --resume ~/Downloads/resume.pdf # the profile folder, with your resume imported
# Then the interview: open Claude Code in app/ and say
# "Use the tekjobs MCP server. Call onboarding_status, then onboarding_materials, and follow its script."
cd app && npm install
npm run server # API on http://127.0.0.1:8787
npm run dev # the app on http://localhost:5173