# Changelog of French Companies · Search & SIREN Enrich (`corent1robert/recherche-entreprises-scraper`) Actor

- **URL**: https://apify.com/corent1robert/recherche-entreprises-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/corent1robert/recherche-entreprises-scraper.md

## Changelog

All notable changes to this Actor are documented in this file.

**Store version** follows **MAJOR.MINOR** in `.actor/actor.json` (Apify convention). `package.json` uses semver independently.

### \[2.31] - 2026-08-28

#### Added

- **Actor Standby:** HTTP lookup `GET`/`POST /lookup` — one SIREN or up to **5** SIRENs. Optional `includeLastBodaccEvent`. Console **Start** (search URL / SIREN list) is unchanged.
- OpenAPI spec for the Standby tab (`web_server_openapi.json`)

### \[2.30] - 2026-08-19

#### Changed

- Charge-then-export: `$0` budget or remaining PPE `0` does not write dataset rows.
- Store categories: `LEAD_GENERATION`, `BUSINESS` (Automation / Developer Tools never first).
- Store snippet + README: company-register suite (UK Companies House, Germany Handelsregister).

### \[2.29] - 2026-08-19

#### Changed

- **Free plan cap:** 20 companies per run (`APIFY_USER_IS_PAYING`). Status: `Free plan: 20 companies. Upgrade for bulk.`
- Anonymous Try-without-account runs disabled (`isAnonymouslyRunnable: false`).

### \[2.28] - 2026-08-18

#### Added

- **12 published tasks** (sectors, SIREN+BODACC, PME headcount, director age, 2024 cohort).

### \[2.27] - 2026-08-17

#### Added

- **4 published tasks** (Pappers SAS, SIREN enrich, new-co, PME CRM).

#### Changed

- `generatedBy` moved under `meta`; `defaultRunOptions.timeoutSecs` (was ignored `timeout`).
- Conditional **SIREN** field: no Console prefill (Search URL mode must not look pre-filtered).
- README Examples table.

### \[2.26] - 2026-06-12

#### Fixed

- **Console Test prefill** — Apify merges all schema prefills into one input (`mode: searchUrl` + empty `searchUrls` + sample SIRENs). Auto-resolve mode from provided data; sample Pappers URL in `searchUrls` prefill.
- **maxResults race** — reserve billing slots under mutex before async finalize so parallel shards cannot exceed the global cap (smoke: Societe.com 20× `ftJlegal`).

#### Added

- GitHub Actions CI: unit tests + smoke (Pappers, gouv, Societe.com 20 shards).

### \[2.25] - 2026-06-12

#### Fixed

- **maxResults** — global cap across all search shards (Societe.com multi-`ftJlegal`, region/date expansion). Prevents billing 5×N shards when buyer sets `maxResults: 5`.

### \[2.24] - 2026-06-12

#### Added

- **Societe.com Search URLs** — parse `ftJlegal`, `ftAstatus`, `champs`/`q`, department and NAF params; multi legal-form URLs shard into parallel API queries (one `nature_juridique` each).

### \[2.23] - 2026-06-12

#### Changed

- **PPE** — single Store event `apify-default-dataset-item` (*Company retrieved*); tiered Bronze→Gold pricing documented in README. Removed experimental actor-start / `company-retrieved` split.
- **Billing code** — back to default-dataset push (automatic PPE charge).

### \[2.22] - 2026-06-12

#### Fixed

- **PPE billing** — `pushCompanyRecord` falls back to legacy `apify-default-dataset-item` until Console monetization lists `company-retrieved`.

### \[2.21] - 2026-06-12

#### Changed

- **PPE** — `apify-actor-start` ($0.05) + `company-retrieved` ($0.00499/row); legacy dataset item event set to $0.
- **SEO** — Store `seoTitle`: *French Company SIREN Enrich · Pappers URL Export | Apify*.
- **README** — fill-rate table recalibrated from production run `HqGPGUFVIsjqahMMR` (5 170 SIRENs).

### \[2.20] - 2026-06-12

#### Changed

- **PPE label** — billing event renamed to *Company retrieved* (SIREN row, not SIRET establishment).
- **Console** — director filter toggles pre-filled **on** to match default outreach behaviour.
- **Output schema** — direct links to **CRM export** and **Agent export** dataset views.
- **`.apifyignore`** — exclude `node_modules/` from upload bundle.

### \[2.19] - 2026-06-12

#### Changed

- **Console UX** — removed **Preset mode** dropdown; use optional filters directly. Filter recipes in README. API `preset` / `presetMode` still supported for scripted runs.

### \[2.18] - 2026-06-12

#### Changed

- **Console filters** — reordered optional fields: director rules and size exclusion first, creation dates and headcount next, director age last, BODACC at the bottom.

### \[2.17] - 2026-06-12

#### Changed

- **Console UX** — removed **Export profile** input; every row is stored with full register fields + helper links + English agent aliases. Use Dataset views (**CRM export**, **Agent export**) when downloading.

### \[2.16] - 2026-06-12

#### Changed

- **Console UX** — **Mode** stays `searchUrl` / `sirens`; job shortcuts moved to a separate **Preset mode** dropdown (`none`, `new_sas_12m`, `pme_prospection`, `kyb_extract`). Legacy API: `preset` field and old `mode` job values still work.

### \[2.15] - 2026-06-12

#### Changed

- **Job presets are modes** — reverted in 2.16; kept for version history only.

### \[2.14] - 2026-06-12

#### Changed

- **README** — documents job presets (no auto Search URL), BODACC toggle, 2-section Console layout, and updated FAQ.

### \[2.13] - 2026-06-12

#### Added

- **Job presets** — `preset`: `new_sas_12m`, `pme_prospection`, `kyb_extract` pre-fill filters and export profile. **Search URLs are still required** for sector/region scope; presets never auto-generate Pappers links.

#### Changed

- **BODACC performance** — lookups run **outside** the search dedupe mutex so parallel shards can fetch BODACC concurrently (up to 3 workers, 2.5 req/s).
- **BODACC run log** — `[bodacc] Phase — N lookups in Xs · hits · none · errors`.

### \[2.12] - 2026-06-12

#### Changed

- **Console input** — collapsed from **5 sections to 2**: **Your data** (mode, URLs, SIRENs, max, export profile) and **Optional filters & enrichments** (dates, size, employees, directors, BODACC toggle).

### \[2.11] - 2026-06-12

#### Added

- **BODACC last legal signal** — optional `includeLastBodaccEvent` adds the most recent official announcement per company from [bodacc.fr](https://www.bodacc.fr) (public gazette, no API key).
- **Output fields** — `derniere_annonce_date`, `derniere_annonce_type`, `derniere_annonce_type_code`, `derniere_annonce_libelle`, `derniere_annonce_url`, `derniere_annonce_id`.
- **Agent profile** — `last_legal_event_date`, `last_legal_event_type`, `last_legal_event_notice`, `last_legal_event_url`; `summary` mentions the last legal event when present.
- **CRM profile** — date, type, notice label, and BODACC link columns for spreadsheet workflows.

#### Changed

- Runs with BODACC enabled log lookup stats at the end (`with announcement` / `none` / `errors`).

### \[2.10] - 2026-06-12

#### Added

- **Agent export profile** — `exportProfile: "agent"`: English field names optimized for **LLM / Apify MCP / OpenAI tools**.
- **`summary`** — one-line English context per row (company, status, activity, city, director, age).
- **Agent columns** — `company_id`, `company_name`, `legal_name`, `status`, `created_at`, `company_age_years`, `legal_form`, `activity_code`, `activity_label`, `size_category`, `employee_band`, address fields, `director_name`, `director_role`, `director_age`, `revenue_eur`, `net_result_eur`, `financial_year`, `pappers_url`, `annuaire_url`, `maps_url`, `linkedin_search_url`.
- **Dataset view** — **Agent export (LLM / MCP)** tab in the Console.

#### Changed

- Local **`output.csv`** respects **`agent`** profile columns (same as **CRM** shaping).

### \[2.9] - 2026-06-12

#### Added

- **CRM export profile** — `exportProfile`: `full` (default) or `crm` for a lean outreach spreadsheet.
- **Helper columns** (always added before shaping): `dirigeant_1_age`, `company_age_years`, `statut_entreprise`, `pappers_url`, `data_gouv_url`, `google_maps_url`, `linkedin_search_url`.
- **Dataset view** — **CRM export** tab in the Console with prospection columns and quick links.

#### Changed

- Local `output.csv` includes helper columns in **Full** mode; **CRM** mode writes CRM columns only.

### \[2.8] - 2026-06-12

#### Added

- **Console filters** — `effectifsMin` / `effectifsMax` (headcount band overlap), merged with Pappers URL `effectifs_min` / `max` by intersection.
- **Creation date pickers** — `dateCreationMin` / `dateCreationMax` use Apify **datepicker** in the Console.

#### Changed

- **Console input simplified** — two modes only: **Search URL** (default) and **SIREN list**.
- **Three input sections** — **Your data**, **Refine results (optional)**, **Director filters — prospecting (optional)**.
- **Store copy** — description and README no longer mention city-radius search.

#### Removed (Console)

- **Near a city** mode (`nearPoint`, `nearCity`, `radiusKm`, `nearActivityCode`, `nearActiveOnly`) — still available **API-only** for existing integrations; use a Pappers URL with `ville=` instead.
- **`maxCompanyAgeYears`** — use `dateCreationMin` / `dateCreationMax` instead (**API-only** backward compatibility retained in code).

#### Technical (unchanged behaviour)

- Search URL parsing (Pappers + data.gouv), SIREN enrich with auto Apify Proxy from 50 IDs, pay-per-event billing, regional date sharding, post-filters on directors and company size.
