Portfolio project ยท Python / AI / Cloud
AI-Powered Job Search Agent
A Python application designed to retrieve job opportunities, compare descriptions against an applicant's resume and preferences using an LLM, and produce a ranked, explainable HTML report.
Project Overview
The agent will accept a PDF or DOCX resume and job-search preferences, collect job listings from supported sources, normalize and deduplicate the results, evaluate fit using a large language model, and create a report containing scores, explanations, gaps, and links to apply.
Delivery approach: Phase 1 is a locally executed MVP. Phase 2 evaluates AWS and GCP and targets a cloud-hosted release. Dates below are targets, not completed claims.
Proposed Solution Architecture
Architecture shown is the target workflow. Cloud hosting and LLM scoring are not yet claimed as implemented.
LLM-based job fit evaluation
Planned evaluation includes required skills, relevant experience, responsibilities, seniority, preferred qualifications, and career alignment. Scores will be accompanied by evidence and missing qualifications. Hard constraints such as location or work arrangement will be assessed separately.
Cloud architecture โ Phase 2
An architecture spike will compare AWS and GCP on deployment simplicity, operating cost, security, logging, secrets management, and suitability for a small Python application. The decision and deployment design will be documented in an architecture decision record (ADR).
Technical Feasibility Spikes
| Investigation | Finding | Disposition |
|---|---|---|
| Dice MCP | Initial test successfully returned 10 job postings. | Spike complete Candidate source |
| Adzuna API | Initial API retrieval succeeded, including searches for Nashville and Atlanta. | Spike complete Candidate source |
| ZipRecruiter MCP | Initial integration encountered error -32603 / HTTP 429. | Spike complete Deferred |
| LLM scoring | Prompt design, structured responses, quality and cost to be evaluated. | Planned |
| AWS vs. GCP | Hosting and operational architecture comparison. | Planned |
Architecture decisions are tracked in ADR-001; cloud hosting will receive a separate decision record.
Work Status
Completed
- Initial Dice MCP feasibility test
- Initial Adzuna API feasibility test
- ZipRecruiter MCP investigation and deferral
- Initial architecture decision documentation (ADR-001). ADRs and other documentation are found in the GitHub repository
In Progress
- Normalized job model design
- Source adapters and data validation
- Local MVP architecture and implementation planning
Planned
- Resume extraction and LLM fit evaluation
- Deduplication and ranked HTML report
- Local MVP testing and release
- Cloud architecture spike, deployment, and operational testing
Delivery Principles
- Separate verified results from planned capabilities
- Document tradeoffs and test findings
- Keep code and setup instructions reproducible
- Protect resume data, secrets, and API credentials
Development Roadmap & Milestones
| Target date | Deliverable | Acceptance / evidence |
|---|---|---|
| Oct 13โ16 | Job model, adapters, normalization | Dice and Adzuna represented in a shared Python model |
| Oct 17โ19 | Resume parsing and AI matching prototype | Structured LLM assessments with scores, evidence and gaps |
| Oct 20โ21 | Ranked HTML report | Local end-to-end report with application URLs |
| Oct 22 | Local integration testing | Test results, fixes and error-handling checks |
| Oct 23 | Phase 1 โ Local MVP v0.1 | Validated local run; reserve 2โ3 hours for README, setup guide, sample output and release notes |
| Oct 24โ25 | Cloud evaluation and ADR | AWS/GCP tradeoffs, architecture diagram and selected approach |
| Oct 26โ27 | Cloud implementation | Packaged app deployed to development environment |
| Oct 28 | Cloud testing | Integration, secrets, logging, security and defects checked |
| Oct 29 | Documentation and portfolio update | Reserve 3โ4 hours for deployment guide, ADRs, diagram, lessons learned, README and site log |
| Oct 30 | Phase 2 โ Cloud release v0.2 | Final validation, release notes, GitHub release and portfolio closeout |
Development Log
This log records observed progress; the roadmap above contains future targets. Update entries as milestones are verified.
| Date | Update | Status |
|---|---|---|
| Oct 4โ10, 2026 | Initial job-source feasibility work: Dice and Adzuna returned results; ZipRecruiter deferred after errors. ADR-001 prepared. | Completed |
| Oct 13, 2026 | Job model and adapter development scheduled to begin. | In progress / verify |
| Oct 16, 2026 | Job normalization checkpoint. | Planned |
| Oct 19, 2026 | First end-to-end LLM matching checkpoint. | Planned |
| Oct 23, 2026 | Local MVP and documentation. | Planned |
| Oct 29, 2026 | Technical documentation and portfolio update. | Planned |
| Oct 30, 2026 | Cloud release and closeout. | Planned |
Source Code & Documentation
The public GitHub repository contains the source code, README, setup instructions, architecture decisions, and release documentation updated as the project progresses.
View GitHub repository: github.com/atenciop/job-search-agent
Download source: GitHub's Code โ Download ZIP
Parts of this portfolio content were developed with assistance from AI and reviewed for accuracy.