--- title: Nsbecf emoji: 👀 colorFrom: yellow colorTo: purple sdk: gradio sdk_version: 6.9.0 app_file: app.py pinned: false --- # AI Career Fair Matcher AI Career Fair Matcher helps students prioritize career fair companies by analyzing resume fit against live job postings. ## What It Does - Accepts a resume PDF. - Uses a built-in company CSV and optionally accepts a user-uploaded CSV. - Extracts resume text and builds a structured profile JSON. - Uses AI resume parsing through Hugging Face InferenceClient with fallback parsing. - Detects ATS providers from company careers URLs. - Fetches jobs using requests first and Playwright fallback. - Scores jobs with explainable rules. - Ranks companies by fit. - Generates recruiter talking points. ## Project Structure - `app.py` - `src/resume/` - `src/jobs/` - `src/scoring/` - `src/output/` - `NSBE 2026 Baltimore Company_ Schools - Companies.csv` (built-in default) - `data/NSBE 2026 Baltimore Company_ Schools - Companies (1).csv` (alternate built-in) ## Resume Profile Schema ```json { "skills": [], "languages": [], "frameworks": [], "tools": [], "target_titles": [], "locations": [], "experience_level": "" } ``` ## Matching Rules - Rewards skill overlap. - Rewards role match. - Rewards entry-level signals. - Penalizes senior role signals. ## Local Run 1. Install dependencies: `pip install -r ../requirements.txt` 2. Optional but recommended for Playwright fallback: `playwright install chromium` 3. For AI resume parsing, set in `.env`: `HF_TOKEN=...` `HF_MODEL=meta-llama/Llama-3.1-8B-Instruct` ## Output - Ranked companies - Matching jobs - Resume profile JSON - Recruiter talking points