Inspiration
Most AI job-matching systems give candidates a score.
But a score can hide a dangerous assumption: when evidence is missing, an AI system may treat that missing information as if it were negative evidence.
ApplyPilot was built around a stricter rule:
UNKNOWN is not FAILURE.
If a résumé does not prove something, ApplyPilot keeps it unresolved instead of inventing a conclusion.
That idea became the foundation for an evidence-controlled opportunity intelligence system where AI can interpret evidence, but cannot silently manufacture it.
What it does
ApplyPilot finds real job opportunities and proves why they match a candidate.
The end-to-end workflow is:
Résumé → grounded evidence → human review → candidate profile → live web discovery → deterministic evaluation → bounded AI reasoning → self-audit → ranked opportunities → Why this job?
A candidate uploads a résumé.
Nutrient DWS extracts structured evidence from the document and grounds extracted claims back to the résumé where available.
The candidate reviews that evidence before accepting it into the canonical profile.
ApplyPilot then searches the live public web through SerpApi for real opportunities.
Each opportunity is persisted and normalized in Xano, deterministically deduplicated, analyzed against the candidate evidence, scored through a reproducible rubric, optionally adjusted by bounded AI reasoning, re-examined through reflection, and ranked.
The result is not just a compatibility percentage.
The candidate can open Why this job? and inspect:
- what the job asked for
- what the candidate profile actually proved
- which requirements are supported
- which claims remain unresolved
- which facts genuinely conflict
- the deterministic score
- the bounded AI adjustment
- the final score
- self-audit findings
- the mission/action trail
- the original opportunity source
The score is not the product.
The proof is.
The core decision rule
ApplyPilot explicitly distinguishes three different states:
PROVEN
The candidate evidence supports the requirement.
UNKNOWN / NEEDS REVIEW
The available evidence cannot establish the claim either way.
CONFIRMED CONFLICT
Candidate evidence affirmatively contradicts an explicit requirement.
That distinction matters.
If a job asks for PostgreSQL and the accepted profile proves PostgreSQL, ApplyPilot can show the evidence.
If a job asks for teamwork but the résumé never explicitly proves teamwork, ApplyPilot does not conclude that the candidate lacks teamwork.
It reports:
Could not determine.
Missing evidence remains an open question.
It is not silently converted into failure.
Conversely, if a role explicitly requires three or more years of experience and accepted candidate evidence proves only two, that is a genuine evidence conflict rather than an unknown.
How we built it
ApplyPilot deliberately separates deterministic decision logic from probabilistic AI interpretation.
Nutrient DWS — grounded résumé evidence
Nutrient DWS performs the core document operation in ApplyPilot.
The résumé PDF is sent through the backend for real structured extraction.
The resulting candidate evidence can include:
- professional summary
- location
- skills
- education
- languages
- certifications
Where supported, ApplyPilot preserves document grounding information such as page-level source metadata and confidence.
But extraction does not automatically become truth.
The candidate receives a human review step and can Accept or Reject extracted evidence before it is applied to the canonical Candidate Profile.
Rejected, missing, or empty evidence cannot silently overwrite valid profile information.
Where DWS does the heavy lifting: Nutrient turns an unstructured résumé PDF into grounded, reviewable candidate evidence that can safely become the factual input to every downstream match decision. Without trustworthy document evidence, ApplyPilot's scoring and explanations would have no reliable candidate-side foundation.
SerpApi — live opportunity discovery
ApplyPilot uses SerpApi Google Jobs search to discover real public opportunities during a Mission.
The system preserves the provider query, raw listing evidence, canonical opportunity, and source lineage.
Repostings can be deterministically deduplicated while preserving the underlying sources.
SerpApi is what makes ApplyPilot operate on changing real-world opportunities rather than a static demonstration dataset.
Live web data therefore changes the AI experience directly: the reasoning pipeline evaluates opportunities discovered during the run instead of answering from stale or fabricated listings.
Xano — the operational decision backend
Xano is not a thin storage layer in ApplyPilot.
It is the operational backend that powers the application's data model, APIs, business logic, integrations, and mission workflow.
Xano coordinates and persists:
- Candidate Profiles
- Missions
- raw listings
- canonical opportunities
- source lineage
- deterministic deduplication
- extraction state
- deterministic scoring
- ranking
- reflection state
- agent actions
- résumé evidence review
- audit/history data
The frontend is therefore observing a real backend decision pipeline rather than simulating a job-match experience.
DeepSeek V4 Pro — bounded interpretation
DeepSeek V4 Pro is used where probabilistic interpretation is useful, including structured requirement extraction and reflection.
But the model does not freely own the final decision.
ApplyPilot keeps the deterministic rubric authoritative and bounds the AI score adjustment to a small range.
AI can interpret and explain evidence.
It cannot freely manufacture the ranking.
Why the architecture matters
A traditional LLM-based matcher can collapse:
not mentioned
into:
does not have
Those are not the same statement.
ApplyPilot's evidence semantics are designed to preserve that distinction.
During development, a controlled Golden Sanity Test caught a real semantic violation: an unmentioned skill had been interpreted as a known failure.
Instead of hiding the issue or rewriting historical results, the scoring/reflection boundary was corrected so that absence-only candidate evidence normalizes to UNKNOWN.
The stored test case was replayed against the corrected semantics.
Real conflicts remained conflicts.
Unproven skills became UNKNOWN.
That experience reinforced the core principle behind the project:
AI should be able to say “I don't know.”
Self-audit and transparency
Top results are re-examined before the ranking stands.
The reflection stage checks whether important claims remain supportable from the stored evidence.
If a claim cannot be supported, the system can withdraw it rather than defending an earlier model conclusion.
The user can also inspect the score journey:
Deterministic score + bounded AI adjustment = final score
and the mission flight recorder preserves the sequence from discovery through ranking.
ApplyPilot is therefore designed around inspectability rather than unexplained confidence.
Xano Challenge — What software did I replace?
I chose to reinvent traditional job-matching and recruiting software that reduces candidates and opportunities to opaque percentages, keyword filters, and unexplained recommendations.
The specific workflow I wanted to replace was the familiar:
upload résumé → search jobs → receive mysterious compatibility score
with:
collect evidence → discover opportunities → prove the relationship → expose uncertainty
Why did I choose it?
Employment matching is a consequential decision problem.
A false assumption about a missing skill or qualification can change what opportunities a person considers.
Yet many AI experiences optimize for producing an answer even when the available evidence is incomplete.
I wanted to build the opposite:
a system where uncertainty is an explicit state and every important conclusion can be inspected.
Which AI tools did I use?
During development I used AI-assisted engineering tools including:
- ChatGPT Work / Codex
- Claude
At runtime, ApplyPilot uses:
- DeepSeek V4 Pro for structured interpretation and reflection
AI accelerated implementation, debugging, adversarial testing, and rapid iteration, but deterministic backend rules remain responsible for the core decision semantics.
Approximately how long did it take to build?
ApplyPilot was built through several days of intensive hackathon development, integration, debugging, testing, and refinement.
A significant part of that time was spent not on adding features, but on validating evidence semantics and preventing probabilistic AI output from silently becoming deterministic truth.
What would have taken significantly longer without AI + Xano?
Without AI-assisted development and Xano, building and iterating on the complete operational pipeline would have taken significantly longer.
That includes:
- backend API orchestration
- mission state management
- data models
- provider integrations
- raw-to-canonical opportunity processing
- deterministic deduplication
- scoring
- provenance
- reflection
- failure handling
- audit history
- semantic regression testing
Xano allowed the backend workflow and decision state to live in one operational system instead of requiring a large amount of custom infrastructure.
AI-assisted development dramatically accelerated implementation and testing, especially when tracing subtle semantic failures across extraction, evidence normalization, scoring, and reflection.
Challenges we faced
The hardest challenge was not calling APIs.
It was deciding what the system is allowed to conclude.
We had to make conservative distinctions between:
- required vs preferred qualifications
- proven vs unresolved evidence
- missing evidence vs affirmative contradiction
- deterministic score components vs bounded AI interpretation
We also had to handle real provider behavior, schema failures, latency, deduplication, historical data, and the boundary between document extraction and accepted candidate evidence.
What we learned
The most important lesson was simple:
Reliability is not the same as confidence.
A system can confidently produce the wrong semantic conclusion.
Reliable AI needs explicit authority boundaries.
For ApplyPilot:
- documents provide evidence
- humans decide what evidence is accepted
- deterministic rules control consequential semantics
- AI interprets within bounded authority
- self-audit challenges unsupported claims
- provenance makes the result inspectable
What's next
The current hackathon build focuses deliberately on the candidate side:
Why does this job match me?
The next step is to extend the same evidence architecture to the other side of the employment relationship.
Candidates could have persistent accounts and explicitly opt into an ApplyPilot employer network.
Companies could create employer accounts, publish structured roles, and distinguish REQUIRED from PREFERRED qualifications.
Then the same evidence engine could work in reverse:
Why does this candidate match this role?
For example:
Employer requires Python.
Candidate evidence proves Python.
→ PROVEN
Employer requires Kubernetes.
Candidate profile contains no accepted Kubernetes evidence.
→ UNKNOWN — Needs Review
Employer requires 3+ years.
Candidate evidence proves 2 years.
→ CONFIRMED CONFLICT
Crucially, missing evidence would still never become automatic rejection, and AI would not make the final hiring decision.
The human recruiter would remain responsible for review and selection.
This creates a natural two-sided future:
Candidate side: Find opportunities and prove why they match.
Employer side: Find opted-in candidates and prove why they match the role.
Beyond employment, the underlying architecture points toward a broader idea: evaluating explicit requirements against grounded, human-reviewed evidence while preserving the difference between what is proven, what is unknown, and what genuinely conflicts.
Employment is the first application.
The vision
ApplyPilot is not trying to make AI more confident.
It is designed to make AI accountable for what it knows — and what it does not know.
Evidence first. AI bounded. Every decision inspectable.
ApplyPilot — Find real opportunities, and prove why they match.
Built With
- api
- css
- deepseek
- dws
- html
- javascript
- nutrient
- react
- rest
- serpapi
- typescript
- vercel
- vite
- xano
Log in or sign up for Devpost to join the conversation.