.claude/skills/streekarchief-midden-holland/SKILL.md
Search indexed person records at Streekarchief Midden-Holland (samh.nl) via the Memorix Genealogy REST API. No browser automation needed — returns structured JSON in ~50ms per query. Based in Gouda, covers municipalities: Gouda, Haastrecht, Schoonhoven, Waddinxveen, Noord-Waddinxveen, Moerkapelle, Moordrecht, Ammerstol, Broek, Vlist, and surrounding areas in the Midden-Holland region of South Holland. 3M+ person records with DTB (doop/trouw/begraven), BS (geboorte/huwelijk/overlijden), and Inschrijvingaktes. 36 Knijf results found, including Gijsbert de Knijf records in Gouda and van der Knijf in Waddinxveen. Scans available for most records. Triggers on: "search Gouda archive", "Streekarchief Midden-Holland", "SAMH", "Haastrecht records", "Schoonhoven records", "/streekarchief-midden-holland", or any genealogy research in the Gouda/Midden-Holland area. No login required. Parallelizable — run multiple queries simultaneously.
npx skillsauth add rdeknijf/ai-genealogy-kit streekarchief-midden-holland-optimizedInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Search 3M+ indexed person records from the regional archive of Midden-Holland via the Memorix Genealogy REST API. Returns structured JSON directly — no browser automation needed.
No login required. No authentication beyond the public API key.
3,061,801 person records. Municipalities: Gouda, Haastrecht, Schoonhoven, Waddinxveen, Noord-Waddinxveen, Moerkapelle, Moordrecht, Ammerstol, Broek c.a., Vlist, and surrounding areas.
Knijf records: 36 results — de Knijf in Gouda/Haastrecht, van der Knijf in Noord-Waddinxveen/Broek/Moerkapelle, Knijf in Gouda/Schoonhoven/ Waddinxveen/Vlist.
https://webservices.memorix.nl/genealogy/99a56f3a-da0b-11e9-9805-d77cd3614b0e (public, embedded in page)curl -s 'https://webservices.memorix.nl/genealogy/person?apiKey=99a56f3a-da0b-11e9-9805-d77cd3614b0e&q=Knijf&rows=25'
Response structure:
{
"metadata": {
"pagination": { "total": 36, "rows": 25, "currentPage": 1, "pages": 2 }
},
"person": [
{
"id": "UUID",
"deed_id": "UUID",
"register_id": "UUID",
"metadata": {
"voornaam": "Gijsbert",
"achternaam": "Knijf",
"geslachtsnaam": "Knijf",
"tussenvoegsel": "de",
"type_title": "Vader",
"plaats": "Gouda",
"datum": "1873-11-13",
"deed_type_title": "Overlijdensakte",
"register_naam": "...",
"register_gemeente": "Gouda",
"person_display_name": "Gijsbert de Knijf",
"has_assets": "deed"
}
}
]
}
Use fq (filter query) with Solr-style field:value syntax.
Search by surname and first name:
curl -s 'https://webservices.memorix.nl/genealogy/person?apiKey=99a56f3a-da0b-11e9-9805-d77cd3614b0e&q=*:*&fq=search_t_geslachtsnaam:%22Knijf%22+AND+search_t_voornaam:%22Gijsbert%22&rows=25'
Available search fields for fq:
| Field | Description | Example |
|-------|-------------|---------|
| search_t_geslachtsnaam | Surname | "Knijf" |
| search_t_voornaam | First name | "Gijsbert" |
| search_t_tussenvoegsel | Prefix | "de" |
| search_t_patroniem | Patronymic | "jansz" |
Filter by deed type:
curl -s 'https://webservices.memorix.nl/genealogy/person?apiKey=99a56f3a-da0b-11e9-9805-d77cd3614b0e&q=Knijf&fq=search_s_deed_type_title:%22Geboorteakte%22&rows=25'
Filter by municipality:
curl -s 'https://webservices.memorix.nl/genealogy/person?apiKey=99a56f3a-da0b-11e9-9805-d77cd3614b0e&q=Knijf&fq=search_s_register_gemeente:%22Gouda%22&rows=25'
Available facet filter fields:
| Field | Description | Example values |
|-------|-------------|---------------|
| search_s_deed_type_title | Record type | "Doopakte", "Geboorteakte", "Huwelijksakte", "Overlijdensakte", "Inschrijvingaktes" |
| search_s_register_gemeente | Municipality | "Gouda", "Haastrecht", "Schoonhoven", "Waddinxveen", "Moordrecht" |
| search_s_plaats | Place | Same as gemeente plus sub-locations |
| search_s_type_title | Role in record | "Vader", "Moeder", "Overledene", "Kind", "Bruid", "Bruidegom", "Getuige" |
&page=2&rows=100
&sort=order_i_datum+desc # newest first
&sort=order_i_datum+asc # oldest first
&sort=order_s_geslachtsnaam+asc # alphabetical by surname
curl -s 'https://webservices.memorix.nl/genealogy/deed/{deed_id}?apiKey=99a56f3a-da0b-11e9-9805-d77cd3614b0e'
Response includes metadata and asset[] with scan image URLs (IIIF).
curl -s 'https://webservices.memorix.nl/genealogy/person?apiKey=99a56f3a-da0b-11e9-9805-d77cd3614b0e&q=*:*&fq=deed_id:%22{deed_id}%22&rows=25'
Deed details include asset[] with IIIF Image API URLs:
| Size | URL pattern |
|------|-------------|
| Thumbnail | {iiifUrl}full/!100,100/0/default.jpg |
| Medium | {iiifUrl}full/!250,250/0/default.jpg |
| Large | {iiifUrl}full/!640,480/0/default.jpg |
| Full size | {iiifUrl}full/max/0/default.jpg |
Search results:
https://samh.nl/bronnen/genealogie/persons?ss={"q":"Knijf"}
Single deed:
https://samh.nl/bronnen/genealogie/deeds/{deed_id}?person={person_id}
The archive also has (browser-only):
| Endpoint | Description |
|----------|-------------|
| GET /person | Search persons |
| GET /person/{id} | Get single person |
| GET /deed/{id} | Get deed (record) with assets |
| GET /register/{id} | Get register details |
| GET /config | Get field/facet configuration |
| Source | Use for | |--------|---------| | Streekarchief Midden-Holland | Gouda, Haastrecht, Schoonhoven, Waddinxveen, Moerkapelle area | | RHC Rijnstreek | Woerden, Bodegraven, Lopik, Montfoort, Oudewater | | Erfgoed Leiden | Leiden, Ter Aar, Nieuwkoop, Hillegom | | Gemeentearchief Alphen | Alphen aan den Rijn, Aarlanderveen, Benthuizen | | Het Utrechts Archief | Utrecht province (Woerden overlaps with RHC Rijnstreek) |
If the API is unavailable or the API key has been rotated, fall back to
Playwright at https://samh.nl/bronnen/genealogie/persons.
To find the current API key:
curl -sL 'https://www.samh.nl/bronnen/genealogie' | grep -oP 'data-api-key="\K[^"]+'
## Streekarchief Midden-Holland Result — [record type]
**Person:** [name]
**Role:** [role]
**Event:** [type], [date] in [place]
**Father:** [name]
**Mother:** [name]
**Archive ref:** [reference]
**Scan available:** Yes/No
**Web link:** [website URL]
**Confidence:** Tier B — official archive record from Streekarchief Midden-Holland
tools
Search Dutch civil registry records (births, marriages, deaths) on WieWasWie.nl via direct JSON API calls, with Open Archives API as a secondary source and Playwright browser automation as fallback. Use this skill whenever you need to look up or verify a person in Dutch civil records, check a birth/marriage/death date against official archives, or find parents/spouses from indexed Burgerlijke Stand records. Triggers on: "look up on wiewaswie", "check the birth record", "find the marriage certificate", "verify this date in the civil registry", "/wiewaswie", or any request to search Dutch genealogical records for a specific person. Also use when comparing GEDCOM data against official sources or when a Tier B verification is needed.
development
Search the VOC Opvarenden database for Dutch East India Company crew records (1699-1794). Uses the Nationaal Archief HUB3 API — 853,785 indexed entries with rich detail: name, origin, rank, ship, fate (died/returned/deserted), service dates, VOC chamber, and links to original scans. Use this skill when: "search VOC records", "VOC crew", "VOC opvarenden", "sailed to Batavia", "Dutch East India Company", "VOC soldier", "VOC sailor", "/voc-opvarenden", or when looking for ancestors who may have sailed with the VOC. Also use when checking Daniel Pieterse Knijf (1704, Woerden) or any Knijf/Knijff VOC connections. No login required.
tools
Generate a scan verification page for the user to review AI-extracted genealogy findings against actual document scans. The user clicks through records, confirms or rejects each one, and confirmed records become Tier A evidence in FINDINGS.md. Use this skill when: "verify scans", "show me what needs verifying", "review pending scans", "scan verification", "/verify-scans", or when the user wants to upgrade research findings from Tier C/D to Tier A by visually confirming document scans. Also use after a research session that produced scan-backed findings that need human confirmation.
testing
Create annotated genealogy narrative PDFs with Typst — engaging family stories with academic footnotes, historical images, and beautiful typography. Use this skill when: "write a story about the X line", "create a story for Y", "make a PDF about this family", "/story", "story for my parents", or any request to produce a narrative document about a family line or ancestor. Also trigger when the user wants to turn research findings into a presentable document for family members. Language defaults to Dutch unless specified otherwise.