Skip to main content

Connect Recruiterflow to Power BI

Connect Recruiterflow to Microsoft Power BI using your API key to build custom reports on candidates, jobs, stage movements, and deals.

Written by Adarsh N

Pull your Recruiterflow data into Microsoft Power BI to build custom dashboards and reports — covering candidates, jobs, stage movements, and deals.

What you'll need

  • A Recruiterflow account with admin access

  • Microsoft Power BI Desktop installed

Step 1: Get your Recruiterflow API key

  1. Find the Power BI section and copy your authentication (API) key.

Keep this key handy — you'll paste it into Power BI in the next step.

Step 2: Create a data query in Power BI

  1. In Power BI Desktop, click Get Data in the toolbar and select Blank Query. This opens the query editor.

  1. In the query editor, paste the function below. This example fetches candidate data — replace INSERT KEY with your API key from Step 1.

= (current_page) =>
let
  apiKey = "INSERT KEY",
  headers = [#"powerbi-api-key" = apiKey],
  baseUrl = "https://recruiterflow.com/api/integrations/feed/power-bi",
  relativePath = "candidates",
  queryParameters = [
    items_per_page = "100",
    current_page = Number.ToText(current_page)
  ],
  Source = Json.Document(Web.Contents(baseUrl, [
    RelativePath = relativePath,
    Query = queryParameters,
    Headers = headers
  ]))
in
  Source

  1. To test the connection, enter 1 in the current_page field and invoke the function. You should see your candidate records load.

Each page returns up to 100 records. To pull all pages automatically, add the pagination function in the next step.

Step 3: Add pagination to pull all records

Rather than invoking the function page by page, add a second blank query with this pagination function. It loops through all pages automatically and loads the full dataset into your data model.

  1. Click New Source → Blank Query to open another query editor.

  1. Paste the pagination function below:

= List.Generate(
    () => [current_page = 1, candidate = FnGetCandidates(current_page)],
    each not List.IsEmpty([candidate][data]),
    each [current_page = [current_page] + 1, candidate = FnGetCandidates(current_page)],
    each [candidate]
)

This function references FnGetCandidates — the name of the query you created in Step 2. Rename your Step 2 query to match if needed.

Available endpoints

Replace candidates in the relativePath to pull other data types:

  • candidates — candidate and contact records

  • jobs — job records

  • stage-movements — every stage change across all jobs

  • deals — deal pipeline data

  • placements — placement/hiring records

All endpoints support items_per_page (max 100) and current_page as query parameters.

Data fields reference

Below are the fields available from each endpoint.

Candidates & Contacts: id, first-name, last-name, email, phone-number, current-designation, current-organization, location, city, state, country, postal-code, street-address-1, street-address-2, source-name, tags, added-time, added-by-name, added-by-email, lead-owner-name, lead-owner-email, last-contacted, last-contact-type, last-engaged, last-engagement-type, latest-activity-time, submission-times, linkedin-profile, github-profile, twitter-profile, facebook-profile, angellist-profile, behance-profile, dribbble-profile, xing-profile, img-link, do-not-email, company-block-status, candidate.Jobs, education-details, custom-fields

Jobs: id, name, title, department, employment-type, number-of-openings, skills, client-company-name, created-by-name, created-by-email, last-opened, candidate-sourced, candidate-applied, candidate-hired, custom-fields

Stage Movement: prospect-id, first-name, last-name, from-stage-name, to-stage-name, stage-moved-by-name, added-time, added-by-name, added-by-email, lead-owner-name, lead-owner-email, client-company-name, source-name, current-designation, current-organization, location, city, state, country, linkedin-profile, twitter-profile, facebook-profile, github-profile, angellist-profile, behance-profile, dribbble-profile, xing-profile

Deals: id, name, deal-amount, amount-currency, deal-owner-name, client-company-name, current-stage-name, closed-date

Things to know

  • The API key is account-level — treat it like a password and don't share it publicly.

  • Each page returns a maximum of 100 records. Use the pagination function for full data pulls.

  • Data is pulled live from Recruiterflow each time you refresh in Power BI — there's no cached copy.

  • Custom fields are included in the custom-fields key for candidates, contacts, and jobs.

Did this answer your question?