Job Searcher
A Hugging Face hackathon project turns a resume into a small, reasoned job shortlist by generating search queries, scraping results, and scoring fit.
Intelligence analysis by GPT-5.4 Mini

The article describes a resume-aware job-search assistant built for new grads drowning in applications. It uses a teacher-student setup to draft search queries, pull LinkedIn results through JobSpy, and score each role across five fit dimensions with reasoning.
It is like having a smart helper sort through a huge pile of job cards, pick the ones that fit a resume best, and explain why. Instead of throwing darts blindfolded, it makes a smaller, smarter pile to look at first.
Analysis
What the system does
The project aims to cut down the grind of job hunting for new graduates. Instead of forcing someone to scan hundreds of listings, it reads a resume plus preferences like role type, location, and work style, generates a few LinkedIn-like search queries, searches for matching roles, and then scores each posting against the resume.
How it is built
The pipeline has three steps. First, a model drafts search queries while explaining its reasoning. Second, those queries are sent to LinkedIn through JobSpy, one at a time. Third, for each resume-job pair, the model produces five fit scores: skills match, experience relevance, education and certifications, industry or domain fit, and seniority alignment. The output is meant to be a short shortlist with explanations the user can inspect.
Training setup
The article uses a teacher-student distillation setup. DeepSeek V4 Pro serves as the teacher that labels the data offline, while Qwen3-8B is the smaller student model used for inference after quantization. The dataset is built from 2,500 resumes and about 10,000 job postings that were surfaced by teacher-generated queries. The labels include one sentence of reasoning per scoring dimension.
Deployment details
Training was done as two LoRA SFT runs on a single A100 through Modal, one adapter for query generation and one for fit evaluation. The final Space runs on Hugging Face ZeroGPU with llama-cpp-python and streams reasoning token by token in the UI. The article also notes that the entire Claude Code session used to build the Space was published as an agent-traces dataset.
What the author learned
Two adapters worked better than one because combining tasks caused formatting drift between JSON and prose. The author also found that the teacher prompt mattered more than the student size: making the teacher score against specific resume details carried that discipline into the distilled model.
Key points
- The project turns a resume into a ranked shortlist of jobs with explanations.
- It uses DeepSeek V4 Pro as an offline label-making teacher and Qwen3-8B as the distilled student.
- The dataset pairs 2,500 resumes with about 10,000 job postings gathered through teacher-written queries and JobSpy.
- Two separate LoRA adapters worked better than one because query generation and evaluation interfered with each other.
- The live demo runs on a Hugging Face ZeroGPU Space with streaming inference.
If it works well, the system could save job seekers a lot of time and reduce the noise of endless applications. The teacher-student setup also shows a path for turning a large model’s careful judgment into a smaller, cheaper model that can run in a live product.
The assistant depends on resume quality, scraped search results, and the model’s ranking judgment, so weak inputs could still produce poor shortlists. The article also shows that formatting and task separation can be fragile, which suggests the system may need careful tuning to stay reliable.



