Skip to content

Building in public · Agents · Careers

Why I'm building QuizzaHut 2, an open-source job-hunt CLI

Job seekers juggle a tracker, a resume, a chat and a sheet. Why the new QuizzaHut is an open-source agentic CLI, and why it won't auto-apply on LinkedIn.

The question

“Why build an open-source agentic CLI for getting hired as an AI engineer?”

Prafull B.5 min read

It is 1 a.m. A job description is open in one tab, your resume in another, ChatGPT in a third, and a Google Sheet of applications that hasn't been updated since Tuesday. You copy a paragraph from the job description into the chat, ask what to highlight, paste the answer into your resume, and forget to note in the sheet that you applied.

That is how most job searches I see run. Every step is done by hand, badly, late at night. The new QuizzaHut is my attempt to connect those steps, in the open, for anyone to use.

The first QuizzaHut was a Telegram bot for our CDAC exams. That story is here. This one is for a different problem: getting hired.

What already exists

Before building anything, I looked at what people already use and like.

Teal is a web app with a job tracker and a Chrome extension that saves jobs from more than 40 job boards into one place. Its resume builder helps you tailor a resume to each job, using keywords from the job description, and it scores how well your resume matches a posting.

Huntr is similar: a board-style job tracker, a resume tailor that pulls keywords and requirements out of a job description and gives a match score, AI cover letters, and autofill for application forms.

Both are good at what they do, and the features people like in them are worth copying: a tracker that is easy to keep up to date, and a resume shaped to each job. Then there are mock-interview tools, and the usual mix of Google Sheets, Google Docs and ChatGPT that most people fall back on.

Two things are missing.

Nothing connects the steps. The job description should shape your profile, your profile should shape your interview prep, and your interview prep should know which interviews are coming up. Today each tool does one piece, and you are the glue between them.

Your data lives in someone else's account. Both are hosted services. Your applications, resumes and notes sit on their servers, under their plans and their pricing.

What QuizzaHut 2 will do

The plan, in the order I expect to build it:

  1. A profile for each job description. Read the job description and tell me what to highlight and what I'm missing. Everyone does this step by hand, and it is the one I would use first.
  2. Interview prep from that profile. The questions you should be ready for, based on your profile and the role you are targeting, and practice answers checked against them.
  3. A tracker. Where you applied, when, and what to prepare for each upcoming interview.

Why a command-line tool

A CLI keeps everything on your machine, in plain files you can read, copy and back up. Your resume, your job descriptions and your notes stay with you.

There is no subscription. You bring your own API key for the AI parts and pay the model provider only for what you use, with no server of mine in the middle. The code will be open source, so you can read exactly what it sends to the model.

And it suits the people I expect to use it first: developers looking for AI engineering work. Most of them already spend their day in a terminal.

Why agentic, and how much

"Agentic" here means a model that can use tools in a loop: read a file, compare two documents, write a draft, check it, and decide what to do next. Anthropic's guide to building effective agents gives the advice I follow: start with the simplest design that works, and add autonomy only where it clearly helps.

So most of QuizzaHut 2 will be plain code. A tracker doesn't need a model. Parsing a resume into sections barely needs one. The agent is for the parts that really are open-ended: reading a messy job description against your experience, or running a mock interview that follows up on your answers.

The rule I use for the agent parts is simple: the model proposes, the tool decides. The model can suggest an edit to your resume. The code shows you the change, and nothing is saved until you say yes.

Why it won't auto-apply on LinkedIn

The original idea included auto-apply on LinkedIn. It is the feature I'm most careful with.

LinkedIn's User Agreement, in section 8.2, says members must not use bots or other unauthorized automated methods to access the service, and must not use software, scripts or robots to scrape or copy it. Its help page on prohibited software says members who use such tools risk having their accounts restricted or shut down. And section 3.4 of the same agreement lets LinkedIn restrict, suspend or terminate an account that breaks it.

The account at risk is yours, not the tool's. Losing your LinkedIn account in the middle of a job search is the worst outcome I can think of for a job-search tool to cause.

So auto-apply waits. What QuizzaHut 2 will do instead is prepare everything: the tailored profile, the answers to the usual application questions, the note for the tracker. Then you open the job and click apply yourself.

A flow: a job description goes in, QuizzaHut builds a profile for it, then interview prep, then an application ready to send. The last step, clicking apply on LinkedIn, is done by the person.
The agent prepares everything. The person clicks apply, so their LinkedIn account is never at risk.

Building it in public

I can build a first version of this in an afternoon. Making it work for real job seekers is the rest of the job: the job descriptions that don't parse, the resumes in odd formats, the answers the grader gets wrong. That gap is exactly what I write about in these notes, and this time it will be on a real tool, in the open.

I am building it myself, and I won't be accepting pull requests. That is not about keeping people out. A job search is personal, and the tool should bend to yours: fork it and change whatever you want. What I can't do is maintain an open-source project with outside contributions on top of everything else, and I would rather say that now than leave pull requests waiting for months.

What helps most is telling me what's missing. Which step did it make easier? Which step did you still do by hand? That list decides what I build next.

This week

Think back to your last job application. Write down every tool and tab you used, in order, and mark each step you did by hand.

That list is the spec. The first QuizzaHut started the same way: from a problem we had ourselves.

Keep reading

Careers

What is a forward deployed engineer?

An engineer who sits with the client's team, learns how the work gets done and builds AI into it. Where the role came from, what it asks for, and who it suits.

· Prafull B.

Bring your question to a session.

Qohort runs a free weekend Q&A for engineers who build AI systems. Register and we will send you an invite.

Join a free weekend session