Skip to content

wksudud/resumefit-agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ResumeFit Agent

AI Agent-powered resume-job fit analysis for AI engineering roles.

ResumeFit Agent reads a resume, a target job description, and GitHub repository signals, then produces a structured role-fit report with evidence mapping, rewrite suggestions, skill gap analysis, interview prep questions, and portfolio copy. The Streamlit UI supports resume upload from Markdown, Word .docx, and best-effort legacy .doc files, then exports rewritten resume drafts as Markdown, Word .doc, and Word .docx.

The app now has two generation modes:

  • Offline rules (no API): deterministic parsing, scoring, rewrite templates, and verification. This is the default portfolio-safe mode.
  • API enhanced: runs the offline workflow first, then uses an OpenAI-compatible /chat/completions endpoint to polish rewrite wording, interview angles, and portfolio copy. The deterministic evidence map remains the source of truth, and API keys are never stored in the repository.

Live Demo

Quick Start

pip install -r requirements.txt
python -B scripts/smoke_test.py

Run the Streamlit UI:

streamlit run app.py

Run tests:

python -m pytest

Project Structure

repo/
  app.py              # Streamlit UI (optional)
  README.md
  requirements.txt
  data/
    sample_resume.md          # Synthetic sample resume
    sample_resume.zh-CN.md    # Synthetic Chinese sample resume
    sample_jd.md              # Synthetic sample JD
    sample_jd.zh-CN.md        # Synthetic Chinese sample JD
    github_profile.json        # Sample GitHub metadata
    repositories/              # Repository reference docs
  reports/                    # Generated reports
  scripts/
    smoke_test.py             # E2E smoke test
  src/
    schemas.py                # Data contracts (dataclasses)
    resume_parser.py          # Resume markdown parser
    jd_analyzer.py            # JD markdown parser
    github_evidence.py        # Repository evidence extractor
    fit_scoring.py            # Deterministic scoring rubric
    rewrite_coach.py          # Resume rewrite suggestions
    interview_prep.py         # Interview question generator
    portfolio_copy.py         # Portfolio text generator
    report_writer.py          # Markdown report generator
    agent_workflow.py         # Workflow orchestrator
    verifier.py               # Evidence verification
    sample_data.py            # Sample data loader
  tests/
    test_fit_scoring.py
    test_agent_workflow.py

Agent Workflow

  1. Resume Parser — extracts candidate facts, projects, skills, constraints
  2. JD Analyzer — extracts requirements, skills, hidden signals from JD
  3. GitHub Evidence Agent — maps repository metadata to project evidence
  4. Fit Scoring Agent — applies 5-dimension weighted rubric (role alignment 25%, skill match 25%, project evidence 25%, GitHub proof 15%, risk/honesty 10%)
  5. Rewrite Coach Agent — generates before/after project bullet rewrites
  6. Skill Gap Agent — identifies gaps with priority, proof plan, resources
  7. Interview Prep Agent — generates follow-up questions and answer angles
  8. Portfolio Copy Agent — generates homepage/README-ready copy
  9. Verifier — checks evidence grounding on every claim

Scoring Rubric

Score Label
80-100 Strong match with clear evidence
60-79 Plausible match with targeted rewrite and proof gaps
40-59 Partial match; needs focused artifact building
<40 Not recommended without major repositioning

Constraints

  • Deterministic only — no LLM API calls required
  • No network — runs entirely offline with sample data
  • No secrets — no API keys, tokens, or credentials needed
  • Evidence-grounded — every recommendation has evidence or is assumption-flagged
  • No fabrication — never generates fake metrics, experience, or credentials
  • Sample data — all inputs are synthetic, labeled, and safe to share
  • Resume file support — Markdown and .docx are preferred; legacy .doc parsing is best-effort and should be reviewed before use
  • Two-mode generation — offline deterministic mode plus optional OpenAI-compatible API enhancement
  • Bilingual demo data — English and Chinese sample resumes/JDs switch with the UI language
  • Localized review surfaces — evidence map, rewrite suggestions, skill gaps, interview prep, and Markdown export follow the selected language where practical

Tech Stack

Python 3.8+, dataclasses, Streamlit (optional UI), python-docx, olefile, optional OpenAI-compatible Chat Completions API

Deployment

This project is ready for Streamlit Community Cloud:

  • Main file: app.py
  • Python dependencies: requirements.txt
  • Runtime behavior: offline deterministic demo with synthetic sample data by default
  • Secrets required: none for offline mode; API mode accepts a session-only key in the sidebar

License

This is a portfolio project. All sample data is synthetic.

About

Resume-job fit analysis agent with evidence mapping, rewrite suggestions, scoring, and a Streamlit UI.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages