Inspiration

As a international and new graduate student in Germany, my daily life focus on sourcing jobs via different platforms, reading all kinds of job description, customizing CV & cover letters, applying, practicing the interview questions and continuously update my personal project.

There is no simple answer that can be applied to everyone, and in real life there are always some strange things can happen. This is usually a lonely journey that no one knows what are the real situations and how prepared or stressed you are. Sometimes I just hope there is a friend I can tell it everything I have gone through, share my feelings, and still get practical advice and confidence from it.

LLMs are definitely such a powerful friend in own life, through proper memory management, MCP, skills, tools and harness. It would be able to really understand your situation, help you, even grow and reflect with you.

What it does

CareerPilot is a local-first workspace for the whole job-search journey. Users can import career materials, review extracted evidence, discover roles from selected job boards, receive a cited fit report with honest gaps, and track every application and next action. Pilot remembers the context across conversations and provides practical support, while final submissions and employer communication always stay with the user.

How we built it

I built CareerPilot with a Next.js frontend, FastAPI backend, SQLite workspace, and an optional Capacitor iOS client. Chroma and local embeddings retrieve relevant career evidence, GPT-5.6 performs the analysis through LangGraph, and deterministic checks verify every citation and job-description quote.

Pilot runs inside a restricted agent harness with memory, skills, allowlisted MCP connections, and scoped one-use approvals. Codex also helped throughout the engineering process—from architecture and implementation to testing, release preparation, and the demo.

Challenges we ran into

The hardest part was balancing personal and flexible support with trust. A fluent answer can still invent experience or misunderstand an approval, so I had to separate retrieval, generation, and verification, treat external content as untrusted, and clearly limit what the agent can do.

Supporting web and iOS clients, two AI connection routes, local credential storage, and cross-platform installation also required more work than expected.

Accomplishments that we're proud of

I am most proud that CareerPilot became a complete working workspace instead of only a chatbot demo. It preserves conversations and career evidence, produces grounded fit reports, guides job discovery, and keeps a clear history of applications and approvals.

It also includes a local installation flow, an iOS client, offline evaluations, hundreds of automated tests, and a reproducible demo workspace.

What we learned

An LLM alone is not the product. Memory needs review, tools need clear scopes, important claims need evidence, and automation needs visible approval boundaries.

I also learned that Codex works best when the architecture, safety boundaries, and acceptance criteria are clearly defined. It can move incredibly fast, but the product direction and final judgment still need to remain human.

What's next for CareerPilot

The next step is to complete evidence-safe CV and cover-letter tailoring, interview practice, semantic long-term memory, and safe scheduled job searches.

Later, I want to add guided connector authorization, stronger Windows and Linux support, production observability, and secure multi-user hosting. CareerPilot should gradually carry more repetitive work while never taking away the user's final control.

Built With

Share this project:

Updates

Submission history