
İŞKUR Jobs
io.github.mohammad-abbasi-shPublished by GitHub account mohammad-abbasi-shv0.1.0Updated Nov 14, 2026
Unofficial read-only MCP server for İŞKUR — open job listings, details, provinces, announcements.
Overview
Unofficial read-only MCP server that lets an assistant search İŞKUR's public Turkish job listings, read job details, list provinces and fetch announcements.
- What you can do
- Search open job listings by keyword, city, date range, work type and education, with paging
- List jobs posted in the last 24 hours, optionally for one city
- Read one listing's detail: description, skills, occupation, experience and education levels
- List the 81 Turkish provinces with code and name
- Read İŞKUR's official announcements and check whether the job portal is reachable
- When to use it
- Useful when you want an assistant to look up Turkish public employment listings, compare openings in a given province, or summarize İŞKUR announcements without browsing the site by hand.
- Requirements
- Runs locally over stdio as a Python package (uvx or pip install, needs uv or Python with mcp<2 and curl-cffi). No account, API key or environment variable is declared. Needs internet access to esube.iskur.gov.tr and www.iskur.gov.tr.
Installation
In SourceWeft
- Open İŞKUR Jobs in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
iskur-mcp 🇹🇷
mcp-name: io.github.mohammad-abbasi-sh/iskur-mcp
Unofficial read-only MCP server for İŞKUR (iskur.gov.tr) — Türkiye İş Kurumu, the Turkish Employment Agency. Search the public open-job listings from the esube portal (keyword, city, date range, work type, education, pagination), get one job's detail (description, required skills, occupation, experience, education), list the 81 provinces, and read İŞKUR's official announcements.
Built by Mohammad Abbasi as part of the "Turkey MCP factory" (Sepehr-style pipeline). Not affiliated with İŞKUR or Türkiye İş Kurumu.
Note: employer names are hidden behind login on the site and are never returned; the detail page carries no deadline or city — those come from the search results. The search is a WebForms postback and is slow (~40s), so prefer page 1 and narrow filters.
For AI agents
Add to your MCP client config (stdio):
Or run locally: python -m iskur_mcp.server (needs mcp<2, curl-cffi).
Tools
Example output (iskur_search_jobs / "garson", İstanbul, 2026-11-13):
How it works
Job search lives on esube.iskur.gov.tr (/Istihdam/AcikIsIlanAra.aspx, classic ASP.NET WebForms): GET the form for session cookies + the __VIEWSTATE family, then POST with __EVENTTARGET=ctl04$ctlAcikIsPageCommand$CommandItem_Search. Results render in the grid table ctl04_ctlGridAcikIslerListeDetail, 15 rows per page; each row has a PopupJobDetails('<jobno>','Özel','0') title link, spans for sector / period / work type, Label9 (open positions), ctlCalismaYeriDL ("İl Geneli Başvuru (Çalışma Yeri: İSTANBUL / SARIYER)"), ctlSonBasvuruTarihi (deadline) and ctlSonBasvuruDL ("17 Gün Kaldı"); "Toplam Kayıt: 63" is the total and the pager jumps via txtCurrentPage + btnChangeCurrentPage. Job detail is a plain GET (AcikIsIlanDetay.aspx?uiID=...&isyeriTuru=Özel, ~2s, no cookies): ctlGenelSartlar (description), ctlGenelSartlar2 (skills), ctlMeslekLabel (occupation) + experience spans, ctlOgrenimAsgari / ctlOgrenimAzami (education). Announcements are a plain GET of www.iskur.gov.tr/duyurular/ (<li class="clearfix"> with a <div class="date"> and a /duyurular/... link). Transport uses Chrome TLS impersonation (curl-cffi, chrome120 with rotation); the search postback gets a 180s timeout and one retry with a fresh session; requests are spaced ~0.8s apart; everything is read-only.
Install
Tests
Offline tests run on recorded fixtures (real pages fetched 2026-11-13); live tests hit esube.iskur.gov.tr and www.iskur.gov.tr (the search postback is slow, ~40s per call — live tests take ~3 minutes). Tests green at build time (see repo for counts) plus an MCP stdio smoke test.
Roadmap
- Occupation (meslek) autocomplete search (the form's
ctlMeslekfield) - Kamu (public-sector) listings via the sector radio
- TYP / İŞKUR Gençlik programme listings (IstIupArama / TypArama)
License
MIT — see LICENSE.
Built by Mohammad Abbasi — Almanibama · mabbasi.ir
Source: README.md at commit f5886b1
Tools
0Version history
1- v0.1.0LatestNov 14, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts