Skip to content

rlanier-webdev/ai-job-analyzer

Repository files navigation

Job Analyzer

An AI-powered web application that automatically finds and analyzes job postings against your professional profile to provide intelligent matching recommendations, skill gap analysis, and personalized interview tips.

Features

  • Automatic Job Search: Finds remote USA jobs matching your profile title and skills — scored and ranked automatically
  • Resume Auto-fill: Upload a PDF resume to automatically extract and structure your profile data
  • Multi-input Job Analysis: Analyze jobs via pasted text, PDF upload, or URL scraping
  • Qualification Scoring: Get a 0-100 match score with color-coded ratings (only jobs ≥75 shown)
  • Skills Analysis: See matching skills (green) vs. missing skills (red)
  • Apply Verdict: Clear YES/NO recommendation with reasoning
  • Salary Assessment: Compare job compensation against your expectations
  • Red/Green Flags: Identify potential concerns and positive indicators
  • Interview Tips: Personalized preparation advice based on the job requirements
  • Export to PDF: Export any analysis result to PDF directly from the browser

Tech Stack

  • Backend: FastAPI, Uvicorn, Pydantic
  • AI: Claude
  • Frontend: HTML5, CSS3, Vanilla JavaScript
  • Data Processing: BeautifulSoup4, pypdf

Prerequisites

  • Python 3.7+
  • Claude API key

Installation

  1. Clone the repository:

    git clone https://github.com/rlanier-webdev/ai-job-analyzer.git
    cd ai-job-analyzer
  2. Create and activate a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
  3. Install dependencies:

    pip install -r requirements.txt
  4. Create a .env file from the example:

    cp .env.example .env
  5. Add your Claude API key to .env:

    ANTHROPIC_API_KEY=your-api-key-here
    

Usage

  1. Start the server:

    python main.py
  2. Open your browser to http://127.0.0.1:5003

  3. Set up your profile:

    • Click "Auto-fill from Resume (PDF)" to upload your resume, OR
    • Click "Edit Manually" to enter your information
  4. Find jobs automatically:

    • Click "Find Jobs for Me" to search for remote USA jobs matching your profile
    • Results are scored by Claude and ranked — only matches ≥75% shown
    • Click "Full Analysis" on any result for a deep-dive, or "View Posting" to open the original
  5. Analyze a specific job posting:

    • Choose input method (Paste Text / Upload PDF / Enter URL)
    • Provide the job posting content
    • Click "Analyze Job"
  6. Review your results including qualification score, skill matches, and recommendations

  7. Click Export PDF to save the analysis results to a PDF file

Project Structure

job-analyzer/
├── main.py              # Entry point - starts Uvicorn server
├── index.html           # Single-page application UI
├── requirements.txt     # Python dependencies
├── .env.example         # Environment template
├── profile.example.json # Sample profile structure
├── src/
│   ├── web.py          # FastAPI routes & endpoints
│   ├── parser.py       # Job posting extraction logic
│   ├── analyzer.py     # Job-profile matching analysis
│   ├── profile.py      # Profile data model & management
│   └── searcher.py     # Automatic job search (Remotive API)
└── static/
    ├── styles.css      # UI styling
    └── scripts.js      # Frontend JavaScript

API Endpoints

Method Endpoint Description
GET / Serve the web application
GET /api/profile Get current profile
POST /api/profile Save profile manually
POST /api/profile/upload-resume Parse resume PDF and create profile
POST /api/analyze/{mode} Analyze job (mode: text, pdf, or url)
POST /api/search Search for jobs matching the current profile

Configuration

  • Profile Storage: Your profile is saved to profile.json and automatically loaded on startup
  • Server: Runs on 127.0.0.1:5003 (localhost only)
  • Job Search: Powered by Remotive API — free, no API key required. Searches remote USA-eligible jobs and filters results to ≥75% match score.

Screenshots

image

License

MIT

About

AI-assisted job analysis tool that parses resumes and job postings, evaluates skill fit, and provides actionable apply/no-apply recommendations using strategic prompting and structured LLM outputs.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages