Anjalikumari30/AI_Career_Agent_OpenEnv_Environment
AI Career Agent OpenEnv Environment
An OpenEnv-style benchmark for autonomous career agents. The environment models a real job-search workflow: finding relevant jobs, analyzing requirements, tailoring a resume, checking ATS fit, protecting authenticity, networking for referrals, applying selectively, and tracking outcomes.
Why This Environment Exists
Most resume projects stop at text generation. Real candidates need a fuller loop:
- search selectively instead of mass applying
- adapt resumes without inventing experience
- improve ATS match without sounding machine-written
- decide whether to apply now, revise more, or skip
- network with employees and request referrals
- track outcomes and interview probability
This environment turns that workflow into a reproducible benchmarkable task instead of a toy prompt.
Functional Requirements Coverage
1. Real-World Task Simulation
The environment simulates real career-search decisions rather than a game or puzzle. The core loop lives in career_agent_env/env.py, and the live workflow companion app lives in career_agent_env/live_app.py.
2. OpenEnv Specification Compliance
The repo now includes:
- typed Pydantic
Observation,Action,Reward, andEnvironmentStatemodels incareer_agent_env/models.py reset() -> Observationstep(action) -> (Observation, Reward, Done, Info)state() -> EnvironmentState- an
openenv.yamlmetadata file at the repo root - a FastAPI OpenEnv-compatible server at
server/app.py
Validation command:
python -m openenv.cli validate . --verbose3. Minimum of Three Tasks with Agent Graders
The environment provides three tasks with increasing difficulty and deterministic graders in career_agent_env/tasks.py.
4. Meaningful Reward Function
The reward model gives incremental feedback during the trajectory. It rewards ATS/authenticity improvement and useful actions, while penalizing spammy loops, low-quality submissions, and other undesirable behavior.
5. Baseline Inference Script
The baseline runner is scripts/run_baseline.py.
- If
OPENAI_API_KEYis set, it uses the OpenAI planner incareer_agent_env/openai_policy.py - If
HF_TOKENis set, it uses the same OpenAI-compatible client against the Hugging Face router - Otherwise it falls back to the deterministic heuristic policy in
career_agent_env/policies.py
OpenEnv Runtime
Metadata
The OpenEnv metadata file is openenv.yaml:
spec_version: 1
name: career_agent_env
type: space
runtime: fastapi
app: server.app:app
port: 8000HTTP Endpoints
The FastAPI server exposes:
GET /healthGET /metadataPOST /resetPOST /stepGET /stateGET /docsGET /web
Run locally:
uvicorn server.app:app --host 0.0.0.0 --port 8000Observation Space
The Observation model includes:
- candidate profile
- current resume version
- available job listings
- active job id
- current job analysis
- ATS score
- authenticity score
- networking status
- application history
- interview probability estimate
- remaining steps
- applications remaining
Action Space
Supported actions:
SEARCH_JOBSANALYZE_JOBMODIFY_RESUMEADD_KEYWORDSREMOVE_KEYWORDSPERSONALIZE_RESUMEGENERATE_COVER_LETTERCHECK_ATS_SCOREAPPLY_JOBCONNECT_EMPLOYEEREQUEST_REFERRALWAIT_FEEDBACKSKIP_JOB
Reward Model
The typed Reward model returns:
value: scalar reward in[0.0, 1.0]components: ATS improvement, authenticity improvement, bonus, and penalty
The main reward logic lives in career_agent_env/env.py.
Tasks and Difficulty Levels
1. smart_application (easy)
Apply once with ATS above threshold while keeping authenticity above the required floor.
2. strategic_campaign (medium)
Earn at least one interview with a limited number of applications.
3. career_optimization (hard)
Maximize interview rate across multiple companies while preserving authenticity.
Each task is scored by a deterministic grader returning a value from 0.0 to 1.0.
Data and Market Model
The environment uses dataset/Resume/Resume.csv to train a market model that powers:
- category prediction
- skill extraction
- candidate profile construction
- synthetic job generation
- ATS alignment estimates
The training code lives in career_agent_env/dataset.py.
Live Workflow Companion App
The repo also includes a separate Streamlit app for a more human-facing workflow:
streamlit run career_agent_env/live_app.pyIt can:
- upload a real resume
- infer a domain from the uploaded resume
- fetch jobs from public Greenhouse and Lever boards
- tailor resume and cover-letter drafts
- score ATS and authenticity
- export a tracker and application bundle
Setup
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txtEnvironment variables:
OPENAI_API_KEY=
OPENAI_BASE_URL=
OPENAI_MODEL=gpt-4.1-mini
HF_TOKEN=
HF_OPENAI_BASE_URL=https://router.huggingface.co/v1Usage
Run the OpenEnv API Server
uvicorn server.app:app --host 0.0.0.0 --port 8000Run the Baseline
python scripts/run_baseline.pyTrain the RL Policy
python scripts/train_rl_agent.pyRun Tests
python -m unittest tests/test_env.py tests/test_live_workflow.py tests/test_server.py tests/test_openai_policy.pyRun the Dashboard
streamlit run career_agent_env/dashboard.pyVerified Baseline Performance
Verified locally on April 8, 2026 with the default seed (7) and heuristic fallback policy:
Aggregate baseline:
average_task_score:0.7811success_rate:0.6667policy:heuristic_fallbackseed:7
Containerized Execution
Build and run the Docker image:
docker build -t career-agent-openenv .
docker run -p 8000:8000 career-agent-openenvThe container starts the FastAPI OpenEnv server and serves the lightweight web page at http://localhost:8000/web.
Hugging Face Spaces Readiness
This repository is prepared for a Docker-based Hugging Face Space:
- Docker metadata is defined in the README front matter
- the repo is tagged with
openenv - the container entrypoint is the FastAPI server
- the public web surface is served at
/web
Repository Map
career_agent_env/env.py: environment loopcareer_agent_env/models.py: typed modelscareer_agent_env/tasks.py: task registry and graderscareer_agent_env/scoring.py: ATS and authenticity scoringcareer_agent_env/dataset.py: dataset-backed market modelcareer_agent_env/policies.py: heuristic policycareer_agent_env/openai_policy.py: OpenAI plannercareer_agent_env/live_workflow.py: live workflow orchestrationcareer_agent_env/live_app.py: Streamlit companion appcareer_agent_env/dashboard.py: tracking dashboardserver/app.py: FastAPI OpenEnv serverscripts/run_baseline.py: baseline benchmarkscripts/train_rl_agent.py: RL traineropenenv.yaml: OpenEnv metadata
Team
f-kansal-06MikeanOPAnjalikumari990
