I scrape 91 job websites in Azerbaijan. Every day. Three times a day. Automatically.
Some of these sites are polished corporate career pages with clean JSON APIs. Some are WordPress blogs where job listings are just paragraphs with phone numbers pasted in. Some are Next.js SPAs that render everything client-side, and some are government portals that look like they were built in 2008 — because they were.
I've been doing this for months now, building BirJob — Azerbaijan's job aggregator. As of today, the platform has 8,600+ active vacancies from 77 live sources, with roughly 700 new jobs appearing every weekday. The total database has crossed 9,400 jobs and counting.
Here's what that data actually looks like — and what it tells you about Azerbaijan's job market that you won't find anywhere else.
Where the Jobs Actually Come From
Not all job sites are created equal. Here's the breakdown of active vacancies by source, straight from BirJob's database:
| Source | Active Jobs | Share |
|---|---|---|
| Glorri | 840 | 9.7% |
| HelloJob | 565 | 6.5% |
| Vakansiya.biz | 503 | 5.8% |
| Smartjob | 490 | 5.7% |
| Busy | 424 | 4.9% |
| Staffy | 407 | 4.7% |
| Deloitte | 300 | 3.5% |
| jobu.az | 277 | 3.2% |
| azjob.az | 254 | 2.9% |
| work.az | 252 | 2.9% |
The top 10 sources account for about 50% of all active jobs. The other 50% is spread across 67 smaller sources — company career pages, niche boards, government portals, and industry-specific sites.
What surprised me: no single source dominates. If you're only checking HelloJob, you're seeing 6.5% of what's available. If you're only on Glorri, it's under 10%. The Azerbaijani job market is fragmented across dozens of platforms, and that fragmentation is exactly why BirJob exists.
Who's Actually Hiring
This is the data I find most interesting — because it tells you where the jobs are, not where people think they are.
The top 15 employers by active job count:
| # | Company | Active Vacancies |
|---|---|---|
| 1 | Deloitte Azerbaijan | 300 |
| 2 | Andersen | 262 |
| 3 | Kapital Bank | 219 |
| 4 | Kontakt Home | 144 |
| 5 | ABB (Azerbaijan) | 117 |
| 6 | Landau Education Group | 98 |
| 7 | CBAR (Central Bank) | 61 |
| 8 | Orion | 59 |
| 9 | Unibank | 57 |
| 10 | İnnovasiya və Rəqəmsal İnkişaf Agentliyi | 56 |
| 11 | Prime Cotton | 54 |
| 12 | Mətanət A | 47 |
| 13 | Xalq Bank | 46 |
| 14 | Azersun Holding | 45 |
| 15 | AzəriMed | 42 |
Several things jump out:
Banking dominates. Kapital Bank, ABB, CBAR, Unibank, Xalq Bank, PASHA Bank, Express Bank — the financial sector is Azerbaijan's largest employer in white-collar jobs, and it's not even close. If you have finance, audit, or IT skills, the banks are where the volume is.
Two international consulting/tech firms top the list. Deloitte and Andersen together have 562 active vacancies — more than any two Azerbaijani companies combined. These are global firms with Baku offices, and they're hiring aggressively.
Retail is a major employer. Kontakt Home (144 vacancies) is a consumer electronics chain. Baku Electronics (33) is another. These aren't glamorous tech jobs — they're store managers, sales associates, logistics coordinators. But they're real jobs at real companies, and they're hiring.
Government is present. The Central Bank (CBAR), the Innovation and Digital Development Agency (İDDA), the Ministry of Economy, and Baku Metro all have significant hiring. Government jobs in Azerbaijan often go unadvertised on private job boards — BirJob scrapes their career pages directly.
The Rhythm of the Market
One thing you can only see with aggregated data: the Azerbaijani job market has a weekly pulse.
On weekdays, BirJob picks up 700–750 new job posts per day. On weekends, that drops to 110–165. Friday afternoon postings are lower than Monday mornings. Companies post jobs during business hours, HR departments take weekends off, and the data shows it clearly.
The implication for job seekers: check on Monday and Tuesday mornings. That's when the fresh batch lands. By Wednesday, the best positions already have dozens of applications. By Friday, the window is closing.
How the Scraping Actually Works
I've written about the technical infrastructure before, but here's the short version for the data-curious:
Every scraper is a single Python file. One class, one website, one method that returns a pandas DataFrame with three columns: company, vacancy, apply_link. That's it. The simplicity is the point.
The scrapers run inside Docker on GitHub Actions, triggered three times daily at 10:00, 13:00, and 17:00 Baku time. Each run takes about 4–8 minutes. The results get upserted into a PostgreSQL database — new jobs are inserted, existing jobs are updated with a fresh last_seen_at timestamp, and jobs that disappear from their source get soft-deleted (marked is_active = false).
Of the 91 scrapers I've built, 77 are currently active. The other 14 are disabled for various reasons: sites that went offline, Cloudflare blocks on GitHub Actions IPs, GraphQL APIs with undocumented query formats, and a few that are just painfully slow (one Playwright-based scraper takes 140+ seconds to timeout).
Every scraper is wrapped in a @scraper_error_handler decorator that catches everything. If HelloJob goes down at 2pm, the other 76 scrapers keep running. The morning I added that decorator was the last morning I got a 3am error notification.
The Websites That Don't Want to Be Scraped
Not every site plays nice, and that's a story in itself.
Cloudflare blocks are the most common problem. Several sites — boss.az, djinni, workly.az, jobing.az — use Cloudflare's anti-bot protection, which flags GitHub Actions IPs and returns 403 or 530 errors. I can sometimes get around this with rotating user agents and careful request timing, but some sites are just too aggressive.
JavaScript-rendered SPAs are the second challenge. Some corporate career pages (BP Azerbaijan, for example) are 100% client-side JavaScript with no server-rendered content and no discoverable API. The only way to scrape them is with a headless browser (Playwright), which is slow, expensive in CI minutes, and fragile.
The cleverest trick I use: many Next.js sites bake all their server-rendered data into a <script id="__NEXT_DATA__"> tag. Parsing that JSON gives you everything without launching a browser. It's the lazy person's way to scrape a Next.js site, and it works beautifully.
The most painful site to scrape: work.az. Most jobs there are posted by an aggregator account called "Vakansiyalar." The company name isn't in the listing — it's buried in the job description, sometimes in HTML tags, sometimes in plain text, sometimes extractable only from the application email domain. I wrote a 5-step enrichment pipeline that checks the SEO tag, parses the HTML description, tries regex patterns on the text, extracts from the application URL, and as a last resort, checks parentheses in the title. It works about 85% of the time.
What the Zero-Result Searches Tell Us
BirJob logs every search query and its result count. The most valuable query I run on this data:
SELECT query, COUNT(*) AS frequency
FROM search_logs
WHERE results_count = 0
GROUP BY query
ORDER BY frequency DESC;
This tells me what people want but can't find. It's effectively a demand signal that no other job board has, because no other job board aggregates all sources.
When a company name appears repeatedly with zero results, that's my next scraper to build. When a job title keeps showing up empty, that's a gap in the market — employers aren't posting that role, but candidates are looking for it. That tension between supply and demand is visible nowhere else.
I won't share the specific queries (that's competitive intelligence), but I'll say this: the gap between what job seekers search for and what employers post is wider than most people think. There are entire categories of work — particularly in tech and creative fields — where demand from candidates far outstrips supply from employers.
What This Data Tells Us About Azerbaijan's Economy
If you step back from the individual numbers, a few macro patterns emerge:
The banking sector is the backbone of white-collar employment. Seven of the top 25 employers are banks. Azerbaijan's financial sector has been investing heavily in digital transformation — mobile banking, fintech partnerships, internal AI tools — and that investment shows up as hiring.
International firms see opportunity here. Deloitte and Andersen aren't posting 500+ jobs in Azerbaijan out of charity. They're expanding because there's demand for consulting, outsourcing, and professional services. Baku is positioning itself as a regional hub, and the hiring data reflects that.
Government digitalization is real. The Innovation and Digital Development Agency (İDDA) has 56 active vacancies. The Central Bank has 61. The Ministry of Economy has 36. These aren't just token postings — the government is genuinely building digital infrastructure and needs talent to do it.
The job market is more diverse than the oil narrative suggests. Education (Landau, Piramida), healthcare (AzəriMed), retail (Kontakt Home, Baku Electronics), manufacturing (Prime Cotton, Azersun) — the non-oil economy is hiring broadly. Oil and gas companies don't even appear in the top 25. The diversification story isn't just political talking points — it shows up in the hiring data.
The Honest Limitations
I want to be transparent about what this data doesn't tell you:
- Salary data is mostly absent. Azerbaijani job postings rarely include salary ranges. This is a cultural norm, not a scraping limitation. Until employers start posting salaries, I can't analyze compensation trends.
- Some sources overlap. A company might post the same job on HelloJob, Vakansiya.biz, and their own website. BirJob deduplicates by apply_link URL, but if the links differ, the same position appears multiple times. The real number of unique open positions is probably 15–20% lower than the raw count.
- Not every job in Azerbaijan is online. Many positions — especially in construction, agriculture, and small businesses — are filled through personal networks, never appearing on any website. This data represents the formal, digital job market.
- The database is young. BirJob's data goes back to mid-March 2026. I can't yet show year-over-year trends or seasonal patterns. Give me six months and I'll have something much richer to share.
What I Actually Think
After scraping the entire Azerbaijani job market daily for months, here's what I believe:
Azerbaijan's job market is more active than people realize. 700+ new postings per weekday across 77 sources. That's not a stagnant market. That's a market where thousands of hiring decisions are being made every week.
The fragmentation is the problem, not the supply. Jobs exist. They're just scattered across dozens of websites, company career pages, and Telegram channels. No individual platform has more than 10% of the total. BirJob exists because this fragmentation makes job searching needlessly painful.
Data beats intuition. Before I had this data, I would have guessed that oil companies dominate hiring. They don't. I would have guessed that government jobs are rare online. They're not. I would have guessed HelloJob is the biggest source. It's not even close to #1. The data consistently contradicts conventional wisdom.
The market will become more transparent. As more companies post to more platforms, and as aggregators like BirJob make the full picture visible, both job seekers and employers will benefit from better information. That's the whole point.
If You're Job Searching in Azerbaijan
Three things this data says you should do:
- Don't stick to one site. No single platform has more than 10% of available jobs. Use an aggregator, or check at least 5–6 sources regularly.
- Apply on Mondays. New jobs pile up over the weekend and hit the boards Monday morning. By mid-week, the best positions already have dozens of applicants.
- Look at corporate career pages directly. Major employers like Kapital Bank, ABB, PASHA Bank, and CBAR post on their own websites before (or instead of) listing on job boards. BirJob scrapes these, but if you're targeting specific companies, bookmark their careers pages.
One Last Thing
I started BirJob because I was tired of checking seven tabs to find one job. Nine thousand scraped jobs later, I'm more convinced than ever that the problem was real — and the solution is just data, aggregated honestly and presented clearly.
The scrapers will keep running. The database will keep growing. And every month, the picture of Azerbaijan's job market will get sharper.
If you have questions about this data or want to see specific breakdowns, reach out. The whole point of building this was to make the job market more transparent. Keeping the data to myself would defeat the purpose.
I'm Ismat, and I build BirJob — Azerbaijan's job aggregator. All data in this article comes from BirJob's live database as of March 2026. If this was useful, you can support the platform at birjob.com/support.
