Inspiration

Hiring is rough for small teams. Recruiters end up manually reading resumes, comparing them against job requirements, and chasing candidates across spreadsheets and email threads. When the Global AI Hackathon by Qwen Cloud opened a track for autonomous business automation agents, hiring stood out as the obvious problem to attack. Painful, expensive, and the kind of thing an agent that can actually reason should be good at, instead of just matching keywords.

What it does

HireFlow AI is an autonomous recruitment agent. A recruiter pastes a job description and uploads resume PDFs, and the agent takes it from there. It parses the job requirements, pulls structured data out of every resume, generates semantic embeddings to check real conceptual fit rather than keyword overlap, and folds that together with Qwen's qualitative reasoning into one weighted score. Strong candidates get shortlisted, emailed, and scheduled for interviews automatically. Weak candidates get rejected automatically. Borderline ones are different: the pipeline pauses and waits for a human recruiter to approve or reject, because some calls shouldn't be made by a machine alone. Every action the agent takes gets logged with its reasoning attached, so there's a full trail a recruiter or judge can read start to finish.

How I built it

The backend is a FastAPI app built around a custom agent orchestrator and state machine, not a single prompt-response loop. The orchestrator calls 11 separate tool modules: a PDF parser, a JD parser, a resume extractor, an embedding service, a semantic matcher backed by Qdrant, a candidate scorer, a report generator, an email sender, a calendar scheduler, an audit logger, and a feedback learner, each talking to Qwen Cloud's API. The frontend is a React dashboard with a live Kanban pipeline view that updates over WebSocket as the agent works through each candidate. Authentication was a deliberate choice here. Instead of OAuth flows that need constant re-consent, I used a Gmail App Password for email and a Google Service Account for calendar access, so the recruiter just clicks once with no login friction at all. The whole thing runs in Docker and is deployed on Alibaba Cloud ECS.

Challenges I ran into

The AI integration wasn't the hard part. Making the agent's autonomy actually trustworthy was. Early versions either auto-approved too eagerly or asked for so much human input that "autonomous" stopped meaning anything. Getting the scoring formula and threshold boundaries right, so clear-shortlist, needs-review, and clear-reject candidates actually separated cleanly, took a lot of back and forth. There was also a real engineering headache keeping the live Kanban board in sync with the backend's pipeline state. Candidates were moving through transitional stages faster than the UI's polling cycle, so the board would look empty even though the pipeline was working fine underneath. Chasing that bug taught me a lot about designing UI state around an async, multi-step agent process instead of a basic request-response API.

What I learned

The biggest thing I learned was that building the AI part wasn't enough. Most of the work went into everything around it: deciding how the agent moves from one step to the next, making sure every decision can be traced back through logs, knowing when it should stop and wait for a human instead of guessing. I also didn't expect authentication to affect the experience as much as it did. Using Service Accounts and App Passwords instead of OAuth cut out a lot of friction, and the whole thing just felt smoother because of it.

What's next for HireFlow AI

Next up is tuning the scoring thresholds against real hiring outcomes instead of test data, and letting recruiters adjust the weighting themselves since "strong fit" varies by role. The feedback learner also needs to actually close the loop, learning from which borderline candidates get approved or rejected over time. On the practical side, I want to add DOCX and LinkedIn import support since right now it's PDF-only. Longer term, multi-role pipelines, one recruiter managing several open positions at once, are the natural next step.

Built With

Share this project:

Updates