CareerPilot
an autonomous job matching agent
2026-05-29
CareerPilot was built for the Arize track of the Google Cloud Rapid Agent Hackathon. It is my first complete agent project: an autonomous job matching agent for international graduates trying to find work in Germany. You upload a CV, define a candidate profile, point it at some job listings, and the agent ranks the positions for you.
What it does
Instead of a single chat call, CareerPilot runs a real agentic loop. It recalls memory from previous runs, picks its own tools, plans a ranking strategy, scores each job, then judges the quality of its own ranking and rewrites its rubric to do better. It stops by itself once the result is good enough.
Highlights
- Agentic loop. The agent plans, ranks, evaluates itself, and improves its own ranking rubric on its own.
- Learning across runs. Winning rubrics persist as Phoenix prompts and warm up future runs.
- Human feedback. You can add explicit constraints after a ranking for a deterministic rerank.
- Full observability. Every agent step streams to a live console and mirrors to Phoenix as spans.
- Graceful degradation. It still runs locally if Phoenix is not configured.
Stack
Google Gemini via Vertex AI with the Gen AI SDK for the agent, Arize Phoenix (MCP over stdio) for memory and tracing, OpenTelemetry for spans, a Streamlit frontend, and Cloud Run with Docker for deployment.
Honest notes
This is my first hackathon and my first agentic system project. It is still an early project and far from polished. But this is just the starting point. I'd rather show the real thing and improve it iteratively than wait for a perfect one.