Dashboard

Research dashboards

Pin research cards to a dashboard, share it by link, and pull any card into Airtable, Google Sheets, Make, n8n or Zapier as CSV or JSON.

A dashboard holds research cards: tables, rankings, trends and headline numbers that a research answer produced. Each card keeps its query and refreshes when the dashboard is opened, or one of its URLs below is fetched, and the values are older than six hours; or when someone presses Refresh (once every 15 minutes per dashboard). A fetch that finds stale values returns them and starts the refresh, so the next fetch is current. Dashboards live under Dashboards in the dashboard; a research agent's page shows its own.

Who can do what

  • Members of a workspace see its dashboards and download any card as CSV.
  • Owners and admins pin cards, arrange and resize them, refresh, and share.
  • Sharing by link makes a read-only copy at jobspipe.dev/d/<id> that anyone with the link can open. Stop sharing and the link dies.

Download a card

Every card has a download icon. Tables come out with the signal column first and one row per item; rankings, shares and trends come out as label and value columns. Cells that start with =, +, - or @ are prefixed with an apostrophe so a spreadsheet shows them as text instead of running them.

Pull a card by URL

Each card also has a URL that returns the same values, for sheets and automation tools that fetch on a schedule.

For a shared dashboard the URL needs no key. Take the share link https://jobspipe.dev/d/<shareId>; the dashboard's JSON at https://api.jobspipe.dev/v1/research/dashboards/shared/<shareId> lists every card with its placement_id. Then:

https://api.jobspipe.dev/v1/research/dashboards/shared/<shareId>/cards/<placementId>/export.csv
https://api.jobspipe.dev/v1/research/dashboards/shared/<shareId>/cards/<placementId>/export.json

For a dashboard that is not shared, use a workspace API key and the dashboard id:

curl -H "Authorization: Bearer $JOBSPIPE_API_KEY" \
  "https://api.jobspipe.dev/api/research/dashboards/<dashboardId>/cards/<placementId>/export.csv"

The JSON form is { "title", "kind", "refreshed_at", "columns": [...], "rows": [[...], ...] }. Both forms carry only the card's values, never its query. Pulling a URL costs no credits.

Google Sheets

In a cell: =IMPORTDATA("https://api.jobspipe.dev/v1/research/dashboards/shared/<shareId>/cards/<placementId>/export.csv"). Sheets refreshes it about once an hour.

Airtable

Airtable's CSV import is manual, so use an automation tool to upsert rows on a schedule:

  • Make: HTTP module → Get a file on the CSV URL, Parse CSV, then Airtable Upsert a record matched on the Website or Company column.
  • n8n: HTTP Request → Extract from File (CSV) → Airtable node, operation Upsert, matching column Website. Our n8n node covers the jobs API; this step only needs the HTTP node.
  • Zapier: Webhooks by Zapier GET on the JSON URL gives the whole table in one step; use a Code step to turn rows into one item per row before the Airtable action, or prefer Make or n8n, which loop over rows natively.

A signals table carries a Week of column, so matching on Website (or Company) plus Week of stacks week over week, while matching on Website alone keeps one current row per firm.

Other tools

Anything that can fetch a URL on a schedule works the same way: Excel Get Data from Web, Retool, Power Automate, or a script. Prefer the shared-dashboard URL where a tool cannot send headers; keep the API-key form for tools that can.

On this page