Inspiration

Job descriptions are often vague, overloaded with requirements, and hard to evaluate objectively. CareerAgent was built to answer one simple question: “Based on my resume, is this job worth applying to?”

What it does

CareerAgent compares a resume with a job description and returns:

  • a match score
  • matched and missing skills
  • evidence from the resume
  • skill gaps
  • interview preparation topics
  • a recommendation: APPLY, MAYBE, or SKIP

Its core principle is:

The LLM interprets. Code decides. Evals verify.

How we built it

CareerAgent uses:

  • Python
  • Strands Agents SDK
  • Amazon Bedrock
  • Amazon Nova
  • Amazon Bedrock AgentCore
  • FastAPI
  • PostgreSQL
  • SQLAlchemy
  • Alembic
  • Docker
  • Nix
  • pytest

The LLM extracts and interprets information, while deterministic Python code handles normalization, scoring, and recommendation rules.

Challenges we ran into

The biggest challenge was deploying to AgentCore.

The runtime appeared healthy but returned HTTP 500 errors. We traced the issue to a Python 3.13 compatibility problem in the Strands tool serialization path.

Rebuilding the runtime with Python 3.11 fixed the issue.

We also used evals to catch problems such as unsupported skill claims and prompt vocabulary leaking into extracted skills.

Accomplishments that we're proud of

CareerAgent became more than a chatbot wrapper.

We built:

  • a real agent workflow with tools
  • deterministic recommendation logic
  • AgentCore deployment
  • persistent evaluation history
  • a web UI and API
  • automated tests and LLM evals

A representative evaluation run achieved roughly:

  • 97% skill recall
  • 99% skill precision
  • 92% recommendation accuracy
  • 100% tool invocation success
  • 0% fabricated evidence

What we learned

The biggest lesson was that AI systems are more reliable when probabilistic reasoning and deterministic logic are separated.

We also learned a lot about:

  • Strands agents
  • Bedrock and Nova
  • AgentCore deployment
  • tool calling
  • LLM evals
  • cloud debugging
  • structured AI outputs

What's next for CareerAgent

Next, we want to focus on:

  • loading jobs directly from URLs
  • reducing response latency
  • benchmarking additional Bedrock models
  • improving evaluation history
  • comparing multiple jobs at once

Long term, CareerAgent could help users prioritize the opportunities where they are most likely to succeed.

Built With

Share this project:

Updates

Submission history