Yes, I’d be happy to find a time.
Use case · ATS publishers
Build Powerful ATS Communication Features with API
Help recruiters search, enrich, and message candidates across supported LinkedIn, email, WhatsApp, and calendar connections without leaving your ATS.
Project-scoped connection pathThanks for the context — let’s continue.
Thanks for the context — let’s continue.
Illustrative ATS workspace with project-scoped connected accounts.
Recruiting workflow
Search, Enrich and Message Candidates from Your ATS
Give recruiters a continuous path from candidate discovery to a scheduled interview while your product keeps the customer record and communication state together.
Candidate search
Bring supported search and profile context into the role workflow.
- Role-aware filters
- Saved candidate context
Profile enrichment
Turn captured profile references into structured candidate records.
- Professional context
- Traceable source data
Direct messaging
Start a conversation from the candidate profile using a connected account.
- Channel choice
- Delivery visibility
Recruiter communication
Unify Email, LinkedIn and WhatsApp Messaging for Recruiters
Keep candidate conversations in one recruiting workspace. Recruiters can see the channel, full thread, delivery state, and next action beside the candidate profile.
- One candidate timeline across supported channels
- Reply without switching products
- Keep account health visible
Yes, I’d be happy to find a time.
Thanks for the context — let’s continue.
Thanks for the context — let’s continue.
Interview scheduling
Integrated Calendar Sync for Seamless Interview Scheduling
Offer available times, create the event, and return the booking state to the hiring workflow so recruiters and candidates share one confirmed next step.
- Coordinate Google and Microsoft calendars
- Keep timezone and attendee context visible
- Attach the event to the candidate record
MonTueWedThuFriSatSun
Recruiting profile
LinkedIn API Features Developed for Recruiting
Surface approved professional-network actions inside the ATS with clear entitlement and account-state boundaries.
- Candidate profile context
- Connection and message workflows
- Observable account recovery
- Professional email
- [email protected]
- Company
- TechCorp · Software
- Experience
- 12 years · Engineering leadership
- Skills
- System designAI platformsTeam building
Candidate engagement
Build Automated Candidate Communication for Your ATS
Design repeatable candidate sequences that combine supported messages, email follow-ups, and scheduling while stopping when a candidate replies.
- Develop seamless candidate experiences
- Customize precise automated sequences
- Track every step in the ATS
- 1Connection requestImmediately
- 2Follow-up messageWait 2 days
- 3Email follow-upWait 3 days
- 4Meeting reminderWait 2 days
Responsible automation
Monitor Activity Limits for Your ATS Integration
Show sending pace, account health, and attention states before a workflow is restricted. Operational feedback stays in the product instead of becoming a hidden integration failure.
- Activity and delivery trends
- Account-specific attention state
- Actionable recovery guidance
Connection actionsHealthy
Message deliveryHealthy
Profile readsReview
Your extension captures. Your API enriches.
Turn Captured Candidate Context into an Enriched ATS Record
Accept the source reference from your product, resolve the permitted data, and return structured fields that recruiters can review before acting.
- Preserve source and consent context
- Normalize candidate fields
- Keep enrichment results reviewable
- Professional email
- [email protected]
- Company
- TechCorp · Software
- Experience
- 12 years · Engineering leadership
- Skills
- System designAI platformsTeam building
Developer start
Start Building in Minutes
Create a project, connect a test account, subscribe to the candidate events you need, and render the normalized response inside your ATS.
- Project-scoped API key
- Hosted connection flow
- Webhook verification
const account = await moira.accounts.connect({ provider: "linkedin", projectId: "project_recruiting", scopes: ["messages:read"],});await moira.webhooks.verify(account.event);Unified operations
One dashboard for all your integrations
Manage connected accounts, authentication state, and delivery health from one view while recruiters stay focused on the hiring workflow.
Explore the APIOne operating layer
A clear path from connected account to product outcome.
Use one project boundary for connection setup, supported actions, realtime evidence, and customer-controlled recovery.
Trust by design
Built-In Security and Compliance
Protect connected-account operations with project isolation, encrypted credentials, audit-ready events, and explicit provider boundaries.
Frequently asked questions
FAQs
Practical answers for product teams planning a connected communication workflow.
What channels can I integrate into my ATS?
The public provider catalogue shows the maintained connection families. Availability is checked when the customer connects an account.
Can users connect their own accounts?
Yes. Hosted connection flows keep provider credentials outside the ATS and return a project-scoped connected-account reference.
How do multi-channel candidate sequences work?
Your product defines the steps and stopping rules, while Moira returns supported delivery, reply, and account-state events.
How is candidate data protected?
Use least-privilege project keys, explicit retention controls, and the provider-specific consent and policy boundary shown during connection.
Quick start
Let’s integrate your ATS in days, not months.
Start with one candidate workflow, connect a test account, and expand only after the operational path is visible.
Build now