diff --git a/gimme_job/adapters/gilariver.py b/gimme_job/adapters/gilariver.py index ecc08ef..62832b9 100644 --- a/gimme_job/adapters/gilariver.py +++ b/gimme_job/adapters/gilariver.py @@ -60,14 +60,19 @@ class GilaRiverAdapter(ManifestDrivenAdapter): if not self._matches_keywords(title): continue - # Subtitle: "Location | Category | Status - Employment Type" + # Subtitle: "Location | Category | Active - Employment Type" parts = [p.strip() for p in item["subtitle"].split("|")] location = parts[0] if parts else None + # "Active - Full Time" → "Full Time" + employment_type = None + if len(parts) >= 3 and " - " in parts[2]: + employment_type = parts[2].split(" - ", 1)[-1].strip() or None cards.append(RawJobCard( title=title, company="Gila River Health Care", location=location or None, + employment_type=employment_type, posted_text=item["posted"] or None, url=item["url"] or None, )) diff --git a/gimme_job/adapters/hrsa.py b/gimme_job/adapters/hrsa.py index 10192d6..abdfadb 100644 --- a/gimme_job/adapters/hrsa.py +++ b/gimme_job/adapters/hrsa.py @@ -75,8 +75,11 @@ class HRSAConnectorAdapter(ManifestDrivenAdapter): const cell1 = cells[0]; const cell2 = cells[1]; - const c1kids = cell1 ? Array.from(cell1.children) : []; - // c1kids[0] = list (title link + specialty) + // Filter out
elements — they appear between spans and shift indices + const c1kids = cell1 + ? Array.from(cell1.children).filter(el => el.tagName !== 'BR') + : []; + // c1kids[0] = ul (title link + specialty) // c1kids[1] = "Job" // c1kids[2] = employment type (Full-Time / Part-Time) // c1kids[3] = site/company name diff --git a/sites/usajobs.yaml b/sites/usajobs.yaml index ab6396e..596cc55 100644 --- a/sites/usajobs.yaml +++ b/sites/usajobs.yaml @@ -41,6 +41,12 @@ extract: location: text: - "div:nth-child(2) div:first-child p:nth-child(3)" + salary_text: + text: + - "div:nth-child(2) div:nth-child(2) p:nth-child(1)" + employment_type: + text: + - "div:nth-child(2) div:nth-child(2) p:nth-child(2)" posted_text: text: - ".italic"