All websites

04 / Case study

Shoper Kariera / 2022

Shoper Careers — job offers HR publishes without a developer

The careers site of Poland’s largest e-commerce platform, built in Webflow from a Figma design. HR publishes offers on its own, and the number of open roles in the navigation and the city filter update by themselves.

Role
Build and development / with the marketing team
Year
2022
Scope
  • Figma to Webflow
  • Webflow CMS
  • Serverless function
  • Offer filter
  • Animation
  • GTM
Disciplines
  • Webflow
  • Webflow API
  • Vercel
  • JavaScript
  • GSAP
  • GTM
Visit site
The kariera.shoper.pl home page: “Build the future of e-commerce with us”

The brief

Shoper needed a careers site that its HR team runs on its own: add an offer, publish it, and never wait for a developer. The design was ready in Figma, and the offers were to live in the Webflow CMS.

I built the site in Webflow together with the marketing team. Two things needed work beyond Webflow itself: the number of open roles next to “Job offers” in the navigation, on every page, and a filter by city with the number of offers next to each.

The number of offers in the navigation

The careers site navigation with the number of offers next to “Job offers”
The number of open roles next to the link to offers, on every page.

The Webflow API knows how many offers there are, but it needs an access token. A token does not belong in the site’s code, where anyone could read it.

So a small function on Vercel sits between the site and Webflow. It keeps the token on the server, asks the API for the offers collection and returns the count. A script on the site puts it into the navigation.

Diagram: the site asks a function on Vercel, which asks the Webflow API for the offers with its token and sends back only the count
The token stays on the server; the site gets only the number.

HR publishes an offer in Webflow, and the number in the navigation changes on every page. The function has been running without a break since January 2024.

A filter by city

On the list of offers, each city shows its number of open roles. Cities without offers drop out of the filter on their own, so a candidate never lands on an empty list.

The list of job offers with a city filter; Kraków selected, with 7 offers
A filter by city, with the number of offers next to each.

The chosen city goes into the page address (?lokalizacja=Kraków). That way the city tiles on the home page lead straight to a filtered list, and a filtered link can be sent to someone. The filter buttons expose their state to screen readers (aria-pressed) and work with a keyboard.

The “Find your place” section with city tiles: Kraków, Szczecin, Poznań, Bydgoszcz, Remote
The city tiles open the list of offers already filtered.

Animation and analytics

Highlighted words in headings get a hand-drawn underline, and the section about the team scrolls its text in step with the photos (GSAP ScrollTrigger). I set up analytics in Google Tag Manager with the marketing team.

The result

The site has been live since 2022. HR adds and closes roles on its own, and the number of offers in the navigation and in the filter follows them, without a developer.

“He brought our UX/UI designs to life with great attention to detail, ensuring responsiveness and consistency across all website elements.” Product Design Owner, Shoper

Questions

  • Can the team add offers on its own?

    Yes. An offer is an item in the Webflow CMS. Once published, it shows up in the list, in the filter and in the number in the navigation.

  • Is the Webflow token safe?

    Yes. Only the function on the server knows it. The site only ever gets the result.

Tell me what you need.

Reply within 24 h

What is it about?

Please enter your name.

Please enter a valid email address.

Please write a message (min. 10 characters).

Add details: company, timeline, budget
Budget optional

Form data is used only to reply to your message. Privacy policy

SR / Terminal

Tab completes · ↑↓ history · Esc closes