# Changelog of Arbeitsagentur Job Scraper \[💰$0.45] — German Federal Jobs (`blackfalcondata/arbeitsagentur-jobs-feed`) Actor

- **URL**: https://apify.com/blackfalcondata/arbeitsagentur-jobs-feed/changelog.md
- **Full Actor documentation**: https://apify.com/blackfalcondata/arbeitsagentur-jobs-feed.md

## Changelog

### 1.1.3 — 2026-07-02

#### Changed

- Incremental mode now forgets jobs that have been gone for more than ~2 months,
  so its change-tracking state stays small over very long-running schedules instead
  of growing without bound. Reposts are still detected within that window; a job that
  reappears after it is simply treated as new.

### 1.1.2 — 2026-07-02

#### Fixed

- **Incremental mode could run out of memory while saving its change-tracking
  state** once that state had grown large over many runs. The run stopped before
  finishing (and had to be restarted manually), and because the state never saved,
  each restart returned — and charged for — the same jobs again. The change-tracking
  state is now much smaller, so incremental runs complete reliably and only return
  new or changed jobs on repeat runs.

#### Changed

- Expired-job records emitted by incremental mode (`emitExpired`) no longer repeat
  the full job description; they keep all other fields (title, employer, location,
  salary, dates, URL).

### 1.1.1 — 2026-06-20

#### Fixed

- **Incremental mode failed instantly (`ABA-4002`) when run from Apify Store.**
  The run-to-run state store was opened via a client path that Store users (who
  run under limited permissions) cannot use, so the run was denied before
  scraping started. The state store now opens via the run-scoped client (works
  for every user), and any state-store problem degrades to a full result set
  with a warning instead of failing the run.

### 1.1.0 — 2026-06-03

#### Removed

- The optional `includeContact` enrichment path and its output fields
  (`contactName`, `contactEmail`, `contactPhone`, `employerAddress`, `applyUrl`,
  `applyMethod`). Application emails and phone numbers remain available via the
  `extractedEmails` and `extractedPhones` fields (see Fixed below).

#### Fixed

- `extractedEmails` now reliably surfaces emails found in the job description —
  previously it could return an empty list even when an email was present.

#### Added

- `disabilityOnly` filter — only listings suitable for people with disabilities.
- `careerChange` filter — only listings suitable for career changers (Quereinsteiger).
- `sortBy` — result ordering: relevance (default), date, or distance.

### 0.1.x — 2026-04-14

- Added: `descriptionHtml`, `descriptionMarkdown` output fields (triple-format descriptions for RAG/LLM pipelines)
- Added: `contentHash` output field (SHA-256 hash of content-identifying fields)

### 0.1.x — 2026-04-14

- Added: cross-run repost detection (`isRepost`, `repostOfId`, `repostDetectedAt`)
- Added: `skipReposts` input to exclude detected reposts from output

### 1.0.39 — 2026-03-20

#### Added

- Contact enrichment — email, phone, contact person name, application URL and method
- Employer social media links (LinkedIn, XING, Instagram, Facebook, YouTube)
- Employer general contact information
- Incremental mode — only new or modified jobs since last run
- Smart employer name resolution — brand names like "BMW", "telekom", "Bosch" resolved automatically
- Compact output mode for AI-agent and MCP workflows (~80% smaller payload)
- Description truncation (`descriptionMaxLength`) for context window control
- MCP-ready via Apify's MCP server — documented usage with Cursor, VS Code, Claude Desktop

#### Improved

- Smarter employer name resolution
- More output fields and input parameters

### 1.0.14 — 2026-03-19

#### Added

- Full job descriptions and employer profiles with `includeDetails` option
- Federal state (Bundesland) filter — all 16 German states
- Employer company profiles: description, website, size, benefits, founding year
- Geocoordinates (latitude/longitude) on all listings
- 6 work type filters: full-time, part-time, home office, mini job, shift work
- Job type filter: employment, apprenticeship, internship, self-employment
- Employer name filter
- Recency filter (published within last N days)
- Radius search (km around location)
- Automatic deduplication across paginated results

#### Fixed

- Disability-friendly field now correctly reads source data
- Listing count claim corrected to match verified data
- Salary field clarified as type classification, not monetary amount

### 1.0.0 — 2026-03-19

#### Added

- Initial release
- Search across 1M+ German job listings
- Up to 43 output fields per listing
- 13 input filters
