Guide Updated Sep 2026 10 min read

LinkedIn Recruiter ATS Integration: Data Sharing Guide

A field-by-field guide to LinkedIn Recruiter ATS integration: exactly what data Recruiter System Connect syncs, in which direction, and under which RSC tier.

The short answer

Through Recruiter System Connect (RSC), LinkedIn's ATS integration tier, the customer's own candidate, application, and job data syncs up to LinkedIn Recruiter, and only a limited profile returns to the ATS. That return is either a basic stub profile from a One-Click Export or a stub profile with email and phone after a member consents on an InMail reply. There is no open profile search or bulk export, so builders design around two-legged OAuth, per-endpoint throttles, and deletion obligations from day one.

Key takeaways

  • RSC is a two-way sync of the customer's own recruiting data, not a sourcing or profile-search API.
  • RSC ships in two tiers: RSC 1.0, and RSC+ which adds requisition-stage sync, application evaluations, resume attachments, and Connected Projects.
  • LinkedIn returns two profile shapes: a One-Click Export stub with no contact data, and a consent-gated InMail stub that can include email and phone.
  • Member consent gates the contact details in an InMail stub, so you cannot assume any candidate is contactable.
  • Throttle limits are per endpoint, deletion covers nine entity types, and exported data makes your customer an independent controller.
1.2B LinkedIn members Microsoft FY2025 Annual Report
2 RSC tiers (RSC 1.0 and RSC+)
9 deletable data entities
0 open profile-search APIs for third parties
1

What data does LinkedIn Recruiter share with an ATS?

Before you commit to a LinkedIn Recruiter ATS integration, you need one thing settled: exactly what member and candidate data LinkedIn will hand your product, in which direction it moves, and what it will never expose. The answer is narrower than most roadmaps assume. LinkedIn does not offer an open Recruiter API for third-party builders, a point covered in detail in our LinkedIn Recruiter API guide. What it offers to sync LinkedIn with an ATS is Recruiter System Connect (RSC), and RSC is a sync layer, not a candidate database you can query.

The short version: the customer's own candidate, application, and job data flows up from the ATS to LinkedIn, and only a limited profile flows back down. That returning profile takes one of two shapes, a basic stub from a One-Click Export or a fuller stub with email and phone after a member consents on an InMail reply, and nothing more. This post breaks that down field by field, shows which RSC tier exposes what, and ends with a two-way sync checklist.

With more than 1.2 billion members reported in Microsoft's fiscal year 2025 annual report, filed with the U.S. Securities and Exchange Commission, LinkedIn is the data set every recruiting product wants to build on. That scale is exactly why access is so tightly controlled. RSC lets an approved ATS and the customer's own Recruiter seat stay in step. It does not turn LinkedIn's graph into something you can search or export in bulk. Microsoft's FY2025 annual report is where that membership figure is stated.

2

The RSC data model, field by field

Read RSC as a data contract and it splits into three buckets: data that goes up from your ATS, data that comes back down from LinkedIn, and data that LinkedIn withholds entirely. The table below maps each flow to the fields it carries and the RSC tier that exposes it. Where a row is withheld, that is the work your product has to do itself.

Data Direction RSC tier Fields exposed (or store locally)
Candidates and applications ATS to LinkedIn RSC 1.0 First and last name, the candidate's unique ID in the ATS, candidate email (used to match your candidate to a LinkedIn member), application source, and disposition reason
Application stages and interview feedback ATS to LinkedIn RSC 1.0 Pipeline stage changes and interview feedback, so Recruiter reflects where a candidate sits in your process
Job requisition stages ATS to LinkedIn RSC+ Requisition stages that mirror your hiring pipeline status inside LinkedIn
Resume attachments ATS to LinkedIn RSC+ Candidate resumes and attachments for applicant evaluation
One-Click Export stub profile LinkedIn to ATS RSC 1.0 First and last name, headline, current employer, location (location name and country code), profile URL, member ID, plus the recruiter's export note. No email or phone.
InMail stub profile LinkedIn to ATS RSC 1.0 First and last name, headline, location, position (title and company), profile URL, and, only if the member consents, email and phone
Application evaluations LinkedIn to ATS RSC+ Evaluation results produced with LinkedIn Hiring Assistant, written back to your ATS
Open profile search or bulk export Withheld Neither None. There is no profile-search endpoint and no bulk export, so build and store this yourself

The data you push up is the customer's own data. It powers the In-ATS Indicator and Rediscovered Candidates, so a recruiter sees which people are already in their pipeline. The data that comes back is the point most builders get wrong. LinkedIn returns a profile in only two situations, and the two are not the same. A One-Click Export hands back a basic stub with no contact details. An InMail stub profile is fuller, and can include the member's email and phone, but only when that member replies to the InMail and consents to share their contact information. If they decline, no InMail stub is stored at all. There is no way to read arbitrary profiles at scale.

3

RSC 1.0 vs RSC+: which tier exposes what

RSC is not one product. It ships in two tiers, and the tier a customer has decides how much of the table above you can actually use. RSC+ is a superset of RSC 1.0, and RSC 1.0 must be active before RSC+ can be enabled.

RSC 1.0 is the core sync. It covers the six features most integrations start with: Rediscovered Candidates, the In-ATS Indicator, One-Click Export, the Enhanced Profile Widget, InMail history retrieval, and stub profiles returned after an InMail response. If your roadmap only needs to keep an ATS and a Recruiter seat in step, this tier is the whole story.

RSC+ extends that with four additions: syncing job requisition stages so LinkedIn reflects your pipeline status, retrieving application evaluations produced with LinkedIn Hiring Assistant, uploading and syncing resume attachments, and Connected Projects, which link a LinkedIn Recruiter hiring project directly to an ATS job requisition so every applicant sits in one combined pipeline. These RSC+ features require an amended API agreement, so treat them as a separate approval, not a config flag.

4

How the data flows into an ATS or CRM

Knowing the data model, here is how it actually moves. RSC requests use two-legged OAuth, the client-credentials flow, executed on behalf of each customer with that customer's own client ID and secret, organization URN, and contract URN. Your application authenticates as itself for each customer rather than acting on an individual recruiter's login.

LinkedIn breaks the integration into five development modules, which map cleanly onto the flow of data:

  • Module 1, configure customer applications and ATS integrations. Onboard each customer and persist their credentials and URNs.
  • Module 2, sync data from ATS to LinkedIn. Push candidates, applications, and notes up so they surface in Recruiter.
  • Module 3, retrieve data from LinkedIn. Receive push notifications to your callback URL, for example when a One-Click Export happens, then retrieve the data.
  • Module 4, sync ACLs. Define who can access which data inside the Recruiter account.
  • Module 5, data deletion. Use the entity deletion APIs to remove records.

Two architectural points follow. First, retrieval is event-driven. Module 3 is a push to your callback URL, not an endpoint you poll on demand, so design for callbacks rather than expecting to query LinkedIn when you feel like it. When an export fires, the push carries a request ID that you exchange for the exported candidate, and that request ID expires in 24 hours, so your retrieval job cannot lag a day behind. Second, RSC assumes a Job Posting integration already exists, so you build that foundation first. The mechanics of receiving that data into an ATS, OAuth flows, webhooks versus polling, and normalizing schemas across systems, are covered in our ATS integration API guide.

5

The member-data governance rules to design around

The data flowing through RSC is personal data about real people, and LinkedIn wraps it in rules you have to build for, not bolt on later. Three of them shape your architecture directly.

Contact sharing is consent-gated. A member decides whether to share their contact details when they reply to an InMail, and if they decline, no InMail stub profile is stored for them. Your integration cannot assume every profile is contactable, so handle the no-consent case as a normal outcome rather than an error.

Exported data makes the customer an independent controller. Once a stub profile is exported into the ATS through One-Click Export, the customer controls that copy independently of LinkedIn. In practical terms, the ATS carries its own obligations for that data under the EU General Data Protection Regulation, Regulation (EU) 2016/679, including lawful basis, storage limitation, and the right to erasure. You can read the regulation itself at EUR-Lex.

Deletion is a first-class part of the API. Module 5 exposes entity deletion APIs across nine record types: candidates, candidate notes, applications, application notes, application interview feedback, application stages, job requisitions, job requisition stages, and attachments. That list is itself a useful map of what RSC holds. Deletion also runs in the other direction. If an exported member deletes their LinkedIn account, they can reactivate within 21 days, after which LinkedIn purges the account and lists it on a closed-candidates endpoint. Partners are expected to poll that endpoint at least once every 30 days and tell the customer they may need to delete those records if they no longer have a legal basis to keep them.

6

Rate limits and policy constraints

Two more constraints belong in the design, not the post-launch retro. The first is throttling. RSC and its Middleware endpoints publish per-endpoint limits, most expressed as requests per day in UTC, with the applications endpoint adding a per-minute record cap and the export API using a monthly per-seat cap instead. The important nuance is that limits are per endpoint, so do not design against a single global number.

Endpoint Documented limit
Applications sync 1,000,000 requests per day (UTC), 10,000 records per minute
Exported candidates 100,000 requests per day (UTC)
Closed (purged) candidates 100,000 requests per day (UTC)
InMail stub profiles 100,000 requests per day (UTC)
One-Click Export 300 calls per Recruiter seat per month

Daily limits reset at midnight UTC, and exceeding any of them returns an HTTP 429. Look up each endpoint you use, note that the One-Click Export cap is monthly and per seat rather than daily, and build in backoff for the 429 case.

The second constraint is contractual. Access to RSC is restricted to LinkedIn-approved developers, who must sign an API agreement with data restrictions before building, and pass a per-module certification. That agreement, not a technical control, is the real boundary on how LinkedIn data may be reused. Design your data handling to those restrictions from day one rather than assuming exported data is yours to repurpose. The wider question of what LinkedIn's terms allow you to automate is covered in our LinkedIn Recruiter automation guide.

7

A two-way sync checklist

Put the pieces together and a compliant two-way sync has a clear shape. Use this checklist as the skeleton for the integration:

  • Push candidates, applications, stage changes, notes, and interview feedback up through the Middleware endpoints.
  • Register a callback URL and handle the export push, retrieving each exported candidate before its request ID expires in 24 hours.
  • Pull One-Click Export stubs and InMail stub profiles, and store only what each member consented to share.
  • Wire Module 5 deletion for all nine entity types so a customer can erase candidates, notes, applications, stages, requisitions, and attachments.
  • Poll the closed-candidates endpoint at least once every 30 days and flag members who deleted their LinkedIn account.
  • Add backoff for per-endpoint HTTP 429s and treat each endpoint's limit separately.
  • Build the open search, ranking, and structured candidate data RSC never returns from the data you already hold.

Follow that shape and the sync is honest about what LinkedIn shares and what it withholds. What it withholds is exactly the open search and ranking most builders wanted, because RSC was never built to provide them.

That gap is where a parsing and matching layer earns its place. The structured candidate data and ranking most builders wanted from LinkedIn can be produced from the resumes, applications, and job descriptions already flowing through your product. That is what RecruitAI Suite provides as APIs you call from your own product. The Resume Parser API turns PDF and DOCX files into clean structured JSON, the Candidate Matching API scores and ranks candidates against a job with semantic matching instead of keyword search, and the Data Enrichment API fills the gaps LinkedIn will not export. ATS and CRM teams can see how these fit together on the ATS vendors page.

If you are deciding how to route around LinkedIn's data-sharing limits, the fastest way to know is to run the APIs against your own data. You can book a demo for API access and a walkthrough, or browse the full product list to see what each API returns.

Frequently Asked Questions

What data does LinkedIn Recruiter share with an ATS?

Through Recruiter System Connect (RSC), the customer's own candidate, application, and job data syncs from the ATS up to LinkedIn Recruiter, and only a limited profile returns to the ATS. That return is either a basic stub profile from a One-Click Export or a stub profile with email and phone after a member consents on an InMail reply. There is no open profile search or bulk export.

What is the difference between RSC 1.0 and RSC+?

RSC ships in two tiers. RSC 1.0 covers the core sync: rediscovered candidates, the in-ATS indicator, one-click export, the enhanced profile widget, InMail history, and stub profiles after an InMail response. RSC+ is a superset that adds job requisition stage sync, application evaluations, resume attachment sync, and Connected Projects. RSC 1.0 must be active to enable RSC+, and RSC+ features require an amended API agreement.

Does LinkedIn share a candidate's email or phone with the ATS?

Only through a consent-gated InMail stub profile. When a recruiter InMails a member, the member is asked whether to share contact details. If they consent, an InMail stub profile including email and phone can be retrieved. A One-Click Export stub profile never includes email or phone.

Does RSC let me search or bulk-export LinkedIn profiles?

No. Recruiter System Connect is a two-way sync between an approved ATS and the customer's own Recruiter seat. It has no open profile-search endpoint and no bulk-export capability. The only profile data it returns is a limited stub profile tied to an InMail response or a One-Click Export.

How does RSC handle candidate data deletion and GDPR?

RSC exposes entity deletion APIs so the customer's ATS can trigger deletion of nine record types, including candidates, notes, applications, application stages, interview feedback, job requisitions, and attachments. Partners must also poll a closed-candidates endpoint at least every 30 days to catch members who deleted their LinkedIn account. Data exported to the ATS makes the customer an independent controller of that copy, so the ATS carries its own obligations under the EU General Data Protection Regulation, Regulation (EU) 2016/679.

What are the LinkedIn RSC API rate limits?

Limits are per endpoint. The applications-sync endpoint is documented at 1,000,000 requests per day (UTC) and 10,000 records per minute, while the exported-candidates and InMail stub endpoints are documented at 100,000 requests per day each. The One-Click Export API is capped at 300 calls per Recruiter seat per month. Daily limits reset at midnight UTC and exceeding one returns an HTTP 429, so look up each endpoint individually and plan for backoff.

Build faster with RecruitAI Suite

Production-ready resume parsing, JD parsing, and candidate matching APIs for HR-tech teams. Book a demo and get API access.