How kareemmas3ud/hirewire works
HireWire connects a Chrome extension to a Flask service: candidates upload a resume, inspect a job posting, and receive a match analysis and tailored letter. The service persists resumes and applications and also powers a web command center for managing the application pipeline, profile, and letters. The README documents these capabilities; sampled excerpts confirm the extension scrape/upload/analyze calls, analysis-service behavior, and SQLite access. Dashboard route wiring and some backend details are only partially sampled, so uncertain links are omitted.
Main entry points: app.py Flask API · popup.js Extension Popup · dashboard.html Application Dashboard · detail.html Application Detail
Components 15
Chrome Extension
- Extension Popup
extension/popup.js - Job Scraper
extension/content.js
Backend Services
- Flask API
backend/app.py - Resume Ingestion
backend/app.py - Job Analysis
backend/services/ai_service.py - Heuristic Fallback
backend/services/ai_service.py
Web Command Center
- Application Dashboard
backend/templates/dashboard.html - Application Detail
backend/templates/detail.html - Resume Manager
backend/templates/resume.html - Web Layout
backend/templates/layout.html
Persistence
- Database Access
backend/database.py - SQLite Data
backend/schema.sql
Other components
- Candidate
- Job Listing
- Google Gemini
Connections 25
- Candidate → Extension Popup: uses
- Job Listing → Job Scraper: provides page
- Extension Popup → Job Scraper: requests scrape
- Extension Popup → Flask API: uploads resume
- Flask API → Resume Ingestion: handles upload
- Resume Ingestion → Database Access: saves resume
- Extension Popup → Flask API: submits job
- Flask API → Job Analysis: requests analysis
- Job Analysis → Google Gemini: analyzes with
- Job Analysis → Heuristic Fallback: falls back
- Flask API → Database Access: reads and saves
- Database Access → SQLite Data: queries and updates
- Flask API → Extension Popup: returns results
- Flask API → Application Dashboard: renders dashboard
- Flask API → Application Detail: renders detail
- Flask API → Resume Manager: renders resume page
- Candidate → Application Dashboard: manages applications
- Candidate → Application Detail: edits application
- Candidate → Resume Manager: manages resume
- Application Dashboard → Flask API: requests dashboard
- Application Detail → Flask API: submits edits
- Resume Manager → Flask API: submits resume
- Web Layout → Application Dashboard: frames page
- Web Layout → Application Detail: frames page
- Web Layout → Resume Manager: frames page