-
Landing Page
-
List of analyzed job URLs
-
resume version control
-
Enter job URL to check quality
-
Job post quality check result part 1
-
Job post quality check result part 2
-
Resume tailoring via the iohunt browser extension
-
Analyzing job URL quality using the iohunt browser extension
-
Enterprise AI Agent API
-
Automatic job listing discovery via the backend system
-
Automated scheduled job URL crawling (backend system)
-
Full job information after AI-assisted quality check part 1
-
Full job information after AI-assisted quality check part 2
-
Full job information after AI-assisted quality check part 3
-
Weak resume–job match
IOHunt
Inspiration
The hackathon theme asked: how do we identify high-quality, legitimate remote job opportunities? I developed an AI-enabled pipeline to solve this:
Job seeker pain point (resume chaos) -> solve it with AI resume tailoring/management -> users submit job URLs to tailor resumes -> each URL becomes a seed -> AI discovers full job list URLs from seeds -> scheduled crawler automatically and periodically harvests new jobs from saved job lists -> every job scored for trust and quality -> continuously growing list of verified, high-quality remote jobs
I started by looking at what already exists. Every major job board crawls every other job board. The discovery problem is technically solved, but it is expensive. Crawling the Internet requires significant infrastructure, and processing every page with AI burns through tokens fast. Neither approach scales cheaply.
Then I noticed something. Job data has a proximity property. A single job posting almost always links back to the company's full career page or the job board it came from. One URL leads to dozens more. If you have enough starting points, you can map out a huge portion of the Internet's job listings without brute-force crawling.
That raised the real question: where do the starting points come from?
I realized that job seekers are already doing this work every day. They browse career pages, scroll through job boards, and click through links. They are discovering jobs constantly. If I could capture even a fraction of those URLs, I would have a self-growing seed database at zero crawling cost.
But job seekers would not hand over URLs for free. I needed to offer something genuinely useful in return. After talking to other job seekers, I found a universal pain point: resume version management. In today's competitive market, you have to tailor your resume and cover letter for every single application. Each version emphasizes different skills and drops others. After a few weeks of applying, you have a mess of files and no way to track what you sent where. Linear resume updates are no longer possible.
That was my "aha" moment. Build a tool that solves resume management, and use it as the engine to crowdsource job discovery.
What it does
IOHunt is a platform where job seekers upload a master resume, paste a job URL (or use the Chrome extension), and get an AI-tailored resume and cover letter in seconds. Every version is saved, named, and organized. No more losing track of your experience across dozens of files.
Every job URL a user submits becomes a seed. The system scrapes the page, runs security and trust checks (domain age, scam pattern detection, outlink analysis, search result analysis), and uses OpenAI's GPT-4o to extract metadata: job title, company, salary, required skills, remote status, and a trust verdict. The AI also identifies the company's job list URL from the page. A scheduled crawler then monitors that URL for new postings.
The pipeline works like this:
- Users seed job posts by using the resume tool
- AI analyzes each page and discovers job list URLs
- A scheduled crawler checks those URLs regularly for new jobs
- Every new job goes through the quality analyzer to filter out scams and low-quality postings
The result is a semi-crowdsourced, AI-verified list of high quality jobs that grows with usage. The more people manage their resumes on IOHunt, the more jobs get discovered, analyzed, and verified.
Key features include:
- Trust scoring: Every job gets a score out of 100 based on domain age, scam patterns, suspicious emails, shortened URLs, linked domain verification, and SERP checks
- AI analysis: GPT-4o extracts job metadata, writes a verdict, flags red flags, and provides actionable tips
- Resume version management: Upload a master resume, generate tailored versions per job, every version saved and named
- AI resume tailoring: One click to rewrite your resume for a specific job, with optional cover letter generation
- Resume-job matching: See how well your resume matches a job before applying, with a match score, matching skills, and gap analysis
- Chrome extension: Analyze any job posting and tailor your resume without leaving the job posting page
- Automated job discovery: A background system that continuously monitors discovered job list URLs and pulls in new postings as they appear
- Enterprise API: Companies and AI agents can submit jobs directly via API
How I built it
IOHunt is a web application built with Node.js. When a user submits a job URL, the system visits the page using a headless browser (the same way a real person would view it), converts the content to text, and runs it through two layers of analysis.
The first layer is automated trust checks. I look up how old the domain is, check for known scam patterns (like requests for payment or cryptocurrency), verify linked domains, and search for the company's online presence. These checks produce a baseline trust score.
The second layer is AI analysis. I send the job content along with all the trust signals to OpenAI's GPT-4o, which extracts structured information (job title, salary, skills, remote status) and writes a human-readable verdict. The same AI layer powers resume tailoring: it reads the user's resume and the job description, then produces a tailored version with a changes summary and optional cover letter.
The Chrome extension works by reading the job page directly from the user's browser and sending it to the API. This is important because many job sites block automated access, but the extension sees the same page the user sees.
For job discovery, a scheduled process reads the job postings already in the database, uses AI to find links to the company's full job list, and then monitors those lists for new postings over time.
Challenges I faced
Job sites blocking automated access. Many popular job platforms actively block bots and scrapers. I had to use a full headless browser to reliably read job pages, and the Chrome extension turned out to be a key workaround since it reads pages the user is already viewing.
Getting consistent AI output. Early on, the AI would flag harmless things as red flags or write an enthusiastic verdict for a suspicious posting. I spent significant time refining the prompts so the AI's tone matches the trust score and it only flags genuinely concerning signals.
Domain verification is messy. Looking up domain registration data sounds simple, but every registrar returns information in a different format, and many domains hide their details behind privacy services. I had to build in fallbacks for when data is unavailable.
The chicken-and-egg problem. The platform is most valuable when it has lots of jobs, but it needs users to get those jobs. I solved this by making the resume tool valuable on its own. Users get value from day one, and the job database grows as a side effect of their usage.
What I learned
The most important lesson was that the best way to crowdsource data is to solve a real problem for the people who have the data. Job seekers have the URLs. They also have a resume management problem. Solving the second problem gives you the first for free.
I also learned that trust signals for job postings are surprisingly computable. Domain age, linked domain ages, scam pattern matching, and SERP presence together create a strong baseline signal before any AI analysis even runs. The AI layer adds nuance (is this role realistic for this company? does the salary match market rates?), but the automated checks catch the obvious scams reliably.
Finally, I learned that keeping the stack simple pays off during a hackathon. Every hour I did not spend configuring infrastructure was an hour I spent building features.
To put it all together: IOHunt gives job seekers a resume management tool that solves a real pain point. Every time they use it, the job URL they submit becomes a seed. From that seed, AI discovers the company's full job list. A scheduled crawler monitors those lists for new postings. Every new posting runs through the trust and quality scoring system. The end result is a continuously curated list of high-quality, legitimate remote jobs, built not by crawling the Internet, but by the people who are already searching it.
Built With
- chatgpt
- claude
- cloud
- express.js
- html5
- node.js
- nunjucks
- openai
- sqlite
Log in or sign up for Devpost to join the conversation.